There is a lot more to the Motorola 680X0-compatible hardware and software technology owned by Edge Computer Corp than has so far been announced by Olivetti with its new Linea Duo line. Olivetti is simply offering the Edge processors as super-powerful 68020 compatible Unix boxes, but here Geoff Conrad lifts the lid on the Edge software technology to reveal that the operating environment available to Olivetti under its agreements with Edge could enable it to run a whole string of operating systems concurrently with Unix on the Edge machines – in very much the same way as ICL runs George 3 or TME concurrently with VME on the 2900 and Series 39.
While the hardware designers at Edge Computer Corp, now in the Phoenix, Arizona suburbs, have been hard at work perfecting the new Edge 2000 systems, the software developers have spent the last year creating Symetrix, a software architecture claimed to allow Pick and Unix to run with equal efficiency on the same machine. And the system will later allow other operating systems to be added with no degradation, and will also include transaction processing extensions such as a fault tolerant file system. Symetrix was designed to run on the Edge 1000 and 2000 computers and is adaptable to other systems based on the Motorola 680X0 family. With more work it could be ported to other processor instruction sets. ICL’s CME Users have long wanted a system that would allow two or more operating systems to run concurrently on the same machine, to take advantage of applications and services that are only available on some systems. But up to now, save only for ICL’s ingenious CME Concurrent Machine Environments facility for running 1900 24-bit and 2900 32-bit operating systems and code concurrently on the same processor – where there are even two separate instruction sets co-resident, only one operating system has been able to run native, supervising the other and trapping and translating all the system calls it makes to the machine. This invariably causes the performance to suffer, sometimes dramatically for some applications. With Symetrix, each operating system runs native and has full control of the machine while it is running. Both operating systems reside in the supervisor memory space and a small hypervisor switches contexts to allow either system complete control of the processor. To switch contexts, the hypervisor saves the contents of all registers and then loads the values for the other operating system. The basic time slice is four milliseconds: as with ICL’s CME, the operator can set the number of ticks for each operating system depending on the mix of jobs and users. But the system also continuously monitors and dynamically balances the load if either operating system goes idle – if all the jobs are finished before the time slice is over the hypervisor switches to the other operating system. The system has a common file and input output service based on Unix because of its extensive device drivers and networking file access features; it also has facilities to enable processes in one environment to communicate with processes in the other. In version 1 these facilities are fairly basic but in version 2, to be available early this year, there will be more and more powerful features. (Symetrix version 1 is a combination of System V, release 2 and Pick Systems Pick Open Architecture, version 1.2. Versions with MS-DOS and other operating systems are in the pipeline.) Version 1 uses the Unix daemon and the Pick phantom processes for communications. When a Pick program wants to access data from a Unix file the daemon takes the request and performs the file access. Similarly, the Pick phantom accesses Pick functions such as its powerful relational database for a Unix program. The Pick side also has access to the Unix device drivers in the common input-output service level. Standard Pick input-output calls are issued by the programs, but the Pick device drivers have been replaced by virtual device drivers that intercept the calls and reinterpret them as Unix calls before sending them to the
input-output service. The input-output service also has some transaction processing extensions purchased from EnMasse Computer Corp, which made Unix based transaction processing machines using dozens of processors, but is now a dormant shell. These include a fault-tolerant file system using mirrored disks, enhanced terminal handling for a large amount of transaction processing terminals, and a transaction management system with transaction logging to reconstruct and restore partial transactions. Mirrored disks are supported in version 1, intelligent terminal handling will be in version 2 while the full transaction management will be available by mid-1988. Pipes Version 2 will have three kinds of interprocess communications for a tighter coupling between the operating systems, as well as more advanced file sharing. The first way is through named pipes, the Unix interprocess communications feature that has been extended to Pick. A Pick application, for example, could use a named pipe to transfer data to a Unix X25 packet switching network server and on over the network. And a Unix application might use a Pick select operation to access Pick’s outstanding relational database management system, which would return the data to the application via a pipe. So the pipes allow any two processes on either side to communicate as well as allowing the two sides to share their file handling, input-output and communications services. The second way is through use of shared memory: Pick applications will get an interface to Unix’s shared memory facilities. This would allow one program dynamically to gather data from programs running on both sides. The third way is through the semaphore from Unix System V, which is a software mechanism that co-ordinates processes that need to co-operate. And all these facilities can be made transparent to the user. The Unix and Pick programs in an application can be installed under the shell and invoked from a customised menu without the user knowing or caring what is running under what.