Difference between revisions of "Talk:XENIX"

From Computer History Wiki
Jump to: navigation, search
(Capitalization: new section)
(History Errors: and Intel spills the beans, i.e. Microsofts C compiler made 32-bit intigers incompatible with the 80287, until the 80387 was available.)
Line 154: Line 154:
 
== Capitalization ==
 
== Capitalization ==
  
All the contemporary uSloth material pictured in various sources always spells it with caps - "XENIX". Which is a problem, because various practicioners using it back then spelled it 'Xenix', and that form is common/usual now. I'm not going to fix anything, but places that use "XENIX" are correct, so it's probably best not to 'fix' them. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:42, 24 November 2022 (CET)
+
All the contemporary uSloth material pictured in various sources always spells it with caps - "XENIX". Which is a problem, because various practitioners using it back then spelled it 'Xenix', and that form is common/usual now. I'm not going to fix anything, but places that use "XENIX" are correct, so it's probably best not to 'fix' them. [[User:Jnc|Jnc]] ([[User talk:Jnc|talk]]) 14:42, 24 November 2022 (CET)
 +
 
 +
== History Errors ==
 +
I have found a lot of history, most of which the definitive sources are just plain wrong:
 +
 
 +
"V7 (7/79) also gave rise to several Unix ports: the 32-bit implementations as well as XENIX2, a Microsoft-Santa Cruz Operation collaboration, which was the first Unix implementation for the Intel 8086 chip (XENIX1 was based on V6). V7 also gave rise to Unix for the Z8000 and 68000 chips." -P Salus. pg 168. "A Quarter Century of UNIX."
 +
 
 +
https://wiki.tuhs.org/lib/exe/fetch.php?media=publications:qcu.pdf
 +
 
 +
Unix version 7, was the first 32bit implementation on a VAX, and Bill Joy added virtual memory over the Christmas break.
 +
It is unknown whether that HCR or Microsoft ever got a hold of the Tape-2 from Ken Thompson.
 +
 
 +
XENIX2? Xenix-11 was the HCR port that Microsoft paid for them to do, to get both UNIX running on their PDP-11, and to add as much pollute and dilute ( their first attempt ), of BSD, and not much more than that and a name change. The Santa Cruz connection came later, first as consultants, then a whipping boys for all the poor work by MS.
 +
 
 +
The first implementation on the Intel 8086 chip, ( not the 8088 ), was by Intel.
 +
Xenix-1(286)(1984) was after Xenix-11 (PDP-11), the 68000 ports were to RS TRS-80 Model 16, Sirtek M68000 card, The IBM 9000, and Sun-2s, ( Microsoft Internal use ), The Apple Lisa 2 and Fortune 32:16. ( the manuals were little more than V7 line printer pages, with little to reflect the actual underlying changes. ). The Z8000 port was so rare, that no archive exists, although there were announcements, there was no documented shipping/running/manual.
 +
 
 +
The list of Xenix ports:
 +
Unix System 7
 +
1978~1981 Vaporware - used internally on PDP-11s for email, and to try and get the portable C compiler to output Intel Binaries.
 +
It exists as a brochure, and maybe a mag tape at CHM? but until its read, its unknown. I would bet its only the HCR port with the name change.
 +
 
 +
1981 Xenix-11 was announced, but since the VAX already had UNIX, no one was interested,
 +
except for one tiny vendor who, instead of getting Xenix-11 from Microsoft, got it from HCR.
 +
 
 +
Everything Happened at once, in 1984. Intel shipped, Radio Shack shipped,
 +
 
 +
Next up was Unix System III,
 +
which was for Xenix-1, and Xenix-3, 3.2, 3.5 ( This was for the 68000 chips, and the Intel-SBC-286)
 +
 
 +
For the Fortune 31:16: "Fortune Operating System (FOR: PRO) is blsed on UNIX version 7.8, with
 +
additional utilities fran the tJn1versity of california at Berkeley 4.1
 +
UNIX, and the Bell Laboratories UNIX systan 3. " http://bitsavers.org/pdf/fortuneSystems/service/1001240-05_Fortune_32-16_Field_Service_Manual_Apr1987.pdf
 +
 
 +
Which the description sounds exactly line Xenix-1
 +
 
 +
then Unix System V, which was the 286, and 8088 port for the IBM AT and the IBM PC,
 +
with SCO's name on it, which was the basis for IBM Xenix 1.0,
 +
 
 +
and then followed by Unix System V.2
 +
Which was the basis for IBM Xenix 2.0, and SCO System V Xenix 3.2.3.
 +
 
 +
"Is Unix big-endian or little endian?
 +
In the SAS System, the following platforms are considered big endian: IBM mainframe, HP-UX, AIX, Solaris, and Macintosh. The following platforms are considered little endian: VAX/VMS, AXP/VMS, Digital UNIX, Intel ABI, OS/2, and Windows."
 +
However... Intel spilled the beans about Intel's compiler:
 +
 
 +
"Xenix 286 Installation and Configuration - Release notes: Nov-84
 +
"The original C compiler supported by XENIX 86 and XENIX 286 was developed by Dennis Ritchie at Bell Laboratories.
 +
It was originally designed in 1973 around the PDP 11/44 architecture.
 +
In the late 1970's and early 1980's, the compiler was modified to support Intel's iAPX 8086 microprocessor.
 +
With the first release of this compiler, Microsoft Corporation chose to support the same 32-bit ordering supported under the Ritchie compiler.
 +
Meanwhile, with the design of the 8087 Fast Floating Point microprocessor, Intel also standardized a 32-bit ordering for the iAPX 8086 architecture.
 +
Intel, however, chose the same byte ordering that Digital Equipment Corporation selected for its VAX family of computers.
 +
Consequently, Microsoft 32-bit ordering is incompatible with the Intel 8087, 287, and 386 processors' 32-bit ordering."
 +
 
 +
""For the iAPX 8087 and 287 components to correctly interpret long values, the C
 +
compiler must perform a sequence of manipulations. For example, in order to provide
 +
support for the 8087 math component, the compiler generates instructions to swap the
 +
low word (bytes 0 and 1) with the high word (bytes 2 and 3). The 8087 then is able to
 +
operate on the representation it expects. Once the 8087 has completed an operation on
 +
a 32-bit value, the two words are swapped back.
 +
In 1983, Microsoft and Intel were involved in the design of two strategically important
 +
projects. Microsoft was developing a new state-of-the-art compiler construction tool
 +
and a new C compiler for XENIX 286. At the same time, Intel began a project to
 +
support the Universal Development Interface (UDI) and translators ..,for XENIX 286.
 +
During the development period, the two companies discovered the incompatibility. After
 +
careful analysis, they decided that Microsoft would make the data representation of
 +
32-bit values compatible with the Intel architecture."
 +
 
 +
Microsoft-C was little-endian and Intel was big-endian or really,
 +
The DEC VAX was Byte order 3412 ( i.e. Word 2, followed by word 1), and intel was 1234 ( word 1 followed by word 2) , but Microsoft's C compiler for Xenix was 3412, until at least June of 1986, when the 386 came out, which most unfortunately, hampers the performance of Xenix on the i80286 and the i8086, and the i8088. On the Motorola, there is a barrel shifter which can change the byte ordering in 2 cycles, so Motorola, never cared about the byte ordering.

Revision as of 09:37, 20 April 2023

Recent updates

Notes: I listed the languages in alphabetical order, except for 'C' as this is always a given for UNIX/xenix/linux/GNU systems.

I will research and add the release dates for as much as I can find.

I added links for references, I added architectures, and I will add a list of both distribution repositories, and running emulators and VMs. ( one click runs. )

How would Microsoft have gotten the first version of XENIX to run on a PDP-11, i.e. what was their development machine/OS? PDP-11/RSTS-e? I am wildly guessing, as besides the Zilog 8k, this architecture PDP-11, which seems to be a specialty around here, I have never used. ForOldHack‎ (talk) 22:02, 9 March 2019 (CET)

There's a lot of PDP-11 hardware stuff documented, because I have a particular interest in them - I used them extensively at the start of my career. DEC software is not covered much, as we didn't use it - just Unix, which I have been covering.
I have no idea what uSloth would have used for a PDP-11 port - did they really do one? They'd have needed a C compiler, and that would have been a lot of work (unless they used an existing one - maybe they brought up V7 on a PDP-11)? Jnc (talk) 15:25, 10 March 2019 (CET)
They used a PDP-11 for a vast amount of their development, because the POS known as DOS could not do it, and they had a cross compiler on the PDP-11 for x68.
"1981: MS's Bob Greenberg ports PDP-11 v7 (from HCR or AT&T?) to Codata Z8000" http://www.softpanorama.org/People/Torvalds/Finland_period/xenix_microsoft_shortlived_love_affair_with_unix.shtml
The history was unconceiling itself rather slowly, in leaps and bounds
Apprently they used a PDP-11 to develop Xenix, and then soon switched to it, and used it for everything until they kluged together NT server, and even then ... I bet they still have a few things running in emulation... ForOldHack‎ (talk) 07:45, 11 March 2019‎

Here is a bunch of version information: "Having previously appointed myself SCO Director of Acronyms

http://www.cruzio.com/sco/ and keeper of the mysterious OSR5 BTLD naming conventions, I'll now declare myself MOSCOVA (Minister Of SCO Version Archaeology) and prepare a list of the last known versions of various dead SCO products, and the secret incantations necessary to determine if one really has that version. Please consider this a chain letter and forward it to any likely conspirators with useful information. The last person in the chain gets stuck with turning this into a TA.

Version info:

SCO has many ways of identifying products and displaying version information. Some of them actually agree. 1. Read the disk, tape or cd label. 2. tar tvf /dev/install | grep "#rel" 3. swconfig 4. grep "^#rel=" /etc/perms/* 5. uname -a (old Xenix 286 only) 6. uname -X | grep -y "rel" (OS only)

I suggest: cd /etc/perms grep "^#rel=" * | tr ":" "\011" and: swconfig to get a shopping list.

If you have floppy images that are not easily identified, try:

strings image_file | grep "rel=" to extract the "custom" info line. If the image is compressed, run: zcat imagefile.Z | strings | grep "rel="

There are also various names for the same products. For example:

xnx296a, UFN and prd=xos are all the same. Obtaining serial number information, and identifying cd roms without proper labels, will be covered separately.

XENIX 286 ONLY

Name Last Version Incantation

SCO Xenix 286 2.3.2 uname -a DevSys 286 2.2.1 grep "^#rel=" /etc/perms/devsys CGI 286 grep "^#rel=" /etc/perms/cgi Text Processing System grep "^#rel=" /etc/perms/text Eroff 2.0 VP/IX 286 MultiView 286 Man Pages Games 2.2.2 grep "^#rel=" /etc/perms/games Fox (dbase 2 clone)

MSBASIC 5.41 Appears on startup screen. MultiPlan 3.00N MS Word 3.0

XENIX 386 ONLY

SCO Xenix 386 2.3.4 uname -X | grep -y "rel" Tandy Xenix 386 Unisys Xenix 386 DevSys 386 2.3.0 grep "^#rel=" /etc/perms/devsys Text Processing Sys Man Pages 2.2.0 ???? grep "^#rel=" /etc/perms/man Games TCP/IP 1.2.0 grep "^#rel=" /etc/perms/tcprt Streams runtime 1.0.0c grep "^#rel=" /etc/perms/streamsrt Xenix-Net UniPATH SNA-3270 Xsight for Xenix 2.0.0 Xsight for DOS 2.0.0 Xsight 386 complete 5.0.0 SCO Office Portfolio 2.0.1 SCO Manager 2.1 Multiview Runtime 1.6 ???? SCO Professional 2.1 grep "^#rel=" /etc/perms/pro SCO Lyrix 6.1 Integra 1.1.1 Foxbase+ 2.1.2 Appears on startup screen. HCR/SCO C++ 3.0.0 SCO C++ 3.1.0 SCO Accell VP/IX 1.2.0 grep "^#rel=" /etc/perms/vpix MS Word 3.0 ImageBuilder MasterPlan Statistician Eroff 3.0 MS C 3.0 MS Basic Interpreter 5.41 Appears on startup. MS Basic Compiler MS Pascal Compiler MS Fortran Compiler 3.0 LPI-Fortran 3.20.00 LPI-Basic LPI-Cobol LPI-Pascal LPI-PL/I LPI-RPG II LPI-Debug SCO PHIGS 1.0.0

== UNIX (ODT) ONLY SCO Open Desktop SCO Unix 3.2v4.2 uname -X | grep -y "rel" TCP/IP 1.2.1 LLI 3.4.0 DevSys 3.2.4.2 TCP/IP Dev Sys 1.2.1 Games 3.2.2 NFS Sys 1.1.1d NFS Dev Sys 1.1.1c Xsight 386 4.0.0 Xsight 386 Dev 4.0.0

Third Party

JTAPE for Xenix 386 2.55 grep "^#rel=" /etc/perms/jt JTAPE for Unix 3.2 2.6 grep "^#rel=" /etc/perms/jt (No JTAPE available for 286 or OSR5)."

Humor

"where it still languishes today." This will remain as homage to the spirit of this wiki. ForOldHack‎ (talk) 07:40, 11 March 2019‎

Capitalization

All the contemporary uSloth material pictured in various sources always spells it with caps - "XENIX". Which is a problem, because various practitioners using it back then spelled it 'Xenix', and that form is common/usual now. I'm not going to fix anything, but places that use "XENIX" are correct, so it's probably best not to 'fix' them. Jnc (talk) 14:42, 24 November 2022 (CET)

History Errors

I have found a lot of history, most of which the definitive sources are just plain wrong:

"V7 (7/79) also gave rise to several Unix ports: the 32-bit implementations as well as XENIX2, a Microsoft-Santa Cruz Operation collaboration, which was the first Unix implementation for the Intel 8086 chip (XENIX1 was based on V6). V7 also gave rise to Unix for the Z8000 and 68000 chips." -P Salus. pg 168. "A Quarter Century of UNIX."

https://wiki.tuhs.org/lib/exe/fetch.php?media=publications:qcu.pdf

Unix version 7, was the first 32bit implementation on a VAX, and Bill Joy added virtual memory over the Christmas break. It is unknown whether that HCR or Microsoft ever got a hold of the Tape-2 from Ken Thompson.

XENIX2? Xenix-11 was the HCR port that Microsoft paid for them to do, to get both UNIX running on their PDP-11, and to add as much pollute and dilute ( their first attempt ), of BSD, and not much more than that and a name change. The Santa Cruz connection came later, first as consultants, then a whipping boys for all the poor work by MS.

The first implementation on the Intel 8086 chip, ( not the 8088 ), was by Intel. Xenix-1(286)(1984) was after Xenix-11 (PDP-11), the 68000 ports were to RS TRS-80 Model 16, Sirtek M68000 card, The IBM 9000, and Sun-2s, ( Microsoft Internal use ), The Apple Lisa 2 and Fortune 32:16. ( the manuals were little more than V7 line printer pages, with little to reflect the actual underlying changes. ). The Z8000 port was so rare, that no archive exists, although there were announcements, there was no documented shipping/running/manual.

The list of Xenix ports: Unix System 7 1978~1981 Vaporware - used internally on PDP-11s for email, and to try and get the portable C compiler to output Intel Binaries. It exists as a brochure, and maybe a mag tape at CHM? but until its read, its unknown. I would bet its only the HCR port with the name change.

1981 Xenix-11 was announced, but since the VAX already had UNIX, no one was interested, except for one tiny vendor who, instead of getting Xenix-11 from Microsoft, got it from HCR.

Everything Happened at once, in 1984. Intel shipped, Radio Shack shipped,

Next up was Unix System III, which was for Xenix-1, and Xenix-3, 3.2, 3.5 ( This was for the 68000 chips, and the Intel-SBC-286)

For the Fortune 31:16: "Fortune Operating System (FOR: PRO) is blsed on UNIX version 7.8, with additional utilities fran the tJn1versity of california at Berkeley 4.1 UNIX, and the Bell Laboratories UNIX systan 3. " http://bitsavers.org/pdf/fortuneSystems/service/1001240-05_Fortune_32-16_Field_Service_Manual_Apr1987.pdf

Which the description sounds exactly line Xenix-1

then Unix System V, which was the 286, and 8088 port for the IBM AT and the IBM PC, with SCO's name on it, which was the basis for IBM Xenix 1.0,

and then followed by Unix System V.2 Which was the basis for IBM Xenix 2.0, and SCO System V Xenix 3.2.3.

"Is Unix big-endian or little endian? In the SAS System, the following platforms are considered big endian: IBM mainframe, HP-UX, AIX, Solaris, and Macintosh. The following platforms are considered little endian: VAX/VMS, AXP/VMS, Digital UNIX, Intel ABI, OS/2, and Windows." However... Intel spilled the beans about Intel's compiler:

"Xenix 286 Installation and Configuration - Release notes: Nov-84 "The original C compiler supported by XENIX 86 and XENIX 286 was developed by Dennis Ritchie at Bell Laboratories. It was originally designed in 1973 around the PDP 11/44 architecture. In the late 1970's and early 1980's, the compiler was modified to support Intel's iAPX 8086 microprocessor. With the first release of this compiler, Microsoft Corporation chose to support the same 32-bit ordering supported under the Ritchie compiler. Meanwhile, with the design of the 8087 Fast Floating Point microprocessor, Intel also standardized a 32-bit ordering for the iAPX 8086 architecture. Intel, however, chose the same byte ordering that Digital Equipment Corporation selected for its VAX family of computers. Consequently, Microsoft 32-bit ordering is incompatible with the Intel 8087, 287, and 386 processors' 32-bit ordering."

""For the iAPX 8087 and 287 components to correctly interpret long values, the C compiler must perform a sequence of manipulations. For example, in order to provide support for the 8087 math component, the compiler generates instructions to swap the low word (bytes 0 and 1) with the high word (bytes 2 and 3). The 8087 then is able to operate on the representation it expects. Once the 8087 has completed an operation on a 32-bit value, the two words are swapped back. In 1983, Microsoft and Intel were involved in the design of two strategically important projects. Microsoft was developing a new state-of-the-art compiler construction tool and a new C compiler for XENIX 286. At the same time, Intel began a project to support the Universal Development Interface (UDI) and translators ..,for XENIX 286. During the development period, the two companies discovered the incompatibility. After careful analysis, they decided that Microsoft would make the data representation of 32-bit values compatible with the Intel architecture."

Microsoft-C was little-endian and Intel was big-endian or really, The DEC VAX was Byte order 3412 ( i.e. Word 2, followed by word 1), and intel was 1234 ( word 1 followed by word 2) , but Microsoft's C compiler for Xenix was 3412, until at least June of 1986, when the 386 came out, which most unfortunately, hampers the performance of Xenix on the i80286 and the i8086, and the i8088. On the Motorola, there is a barrel shifter which can change the byte ordering in 2 cycles, so Motorola, never cared about the byte ordering.