|This article needs additional citations for verification. (August 2013)|
|Developer||Technical Systems Consultants (TSC)|
|Written in||Assembly language|
|Platforms||Motorola 6809 family|
It was released for DMA-capable 8" floppy, extended memory addressing hardware (software controlled 4KiB paging of up to 768 KiB RAM), Motorola 6809 based computers. Examples included machines from SWTPC, GIMIX and Goupil (France). On SWTPC machines, UniFLEX also supported a 20 MB, 14" hard drive (OEM'd from Century Data Systems) in 1979. Later on, it also supported larger 14" drives (up to 80 MB), 8" hard drives, and 5-1/4" floppies. In 1982 other machines also supported the first widely available 5-1/4" hard disks using the ST506 interface such as the 5 MB BASF 6182 and the removable SyQuest SQ306RD of the same capacity.
Due to the limited address space of the 6809 (64 kB) and hardware limitations, the main memory space for the UniFLEX kernel as well as for any running process had to be smaller than 56 kB (code + data). This was achieved by writing the kernel and most user space code entirely in assembly language, and by removing a few classic Unix features, such as group permissions for files. Otherwise, UniFLEX was very similar to Unix Version 7, though some command names were slightly different. There was no technical reason for the renaming apart from achieving some level of command-level compatibility with its single-user sibling FLEX. By simply restoring the Unix style names, a considerable degree of "Unix Look & Feel" could be established, though due to memory limitations the command line interpreter (shell) was less capable than the Bourne Shell known from Unix Version 7. Memory management included swapping to a dedicated portion of the system disk (even on floppies) but only whole processes could be swapped in and out, not individual pages. This caused swapping to be a very big hit on system responsiveness, so memory had to be sized appropriately. However UniFLEX was an extremely memory-efficient operating system. Machines with less than a megabyte of RAM serving a dozen of asynchronous terminals were not uncommon and worked surprisingly well.
TSC never bundled a C compiler with UniFLEX for the 6809, though they produced one. But in the early 1980s a C language implementation became available as a 3rd party products (the "McCosh" and "Introl" compilers). Using such a C compiler could establish source-level compatibility with Unix Version 7, i.e., a number of Unix tools and applications could be ported to UniFLEX - if size allowed: Unix on a PDP-11 limited executables to 64 kB of code and another 64 kB of data, while the UniFLEX limitation was approximately 56 kB for both, code and data together.
In the mid 1980s a successor version for the Motorola 68000 was announced. Though it removed the pressing space limitations, it was not commercially successful because it had to compete with source-code ports of original Unix.
The source code for UniFLEX and supporting software is available on the Internet.
-  SWTPC S/09 Dynamic Address Translation