Messages in this thread |  | | From | System Development <> | Subject | os9 and linux | Date | Wed, 12 Jun 1996 11:20:37 -0500 (CDT) |
| |
I would like to congratulate the developers of linux on the spectacular job that they have done. In my opinion, linux is worth far more than any commercial unix.
Since the kernel list has been discussing future trends in the development of linux, i would like to discuss an operating system that has impressed me greatly. although it is fundamentally different from linux, i would like to hear what you guys think of it, if you have had experience with it, etc. I am talking about Microware's Real Time OS-9 Operating System. It has some unique design strategies. Although many are fundamentally different from Linux, they may give you some ideas.
When I started working with computers, I used an os-9 l2 based coco 3 (6809). OS-9 impressed me a great deal. My system had 512k of memory, no hard drive, and ran at 2 MHZ. Despite the limited resources, OS-9 was a multi-tasking multi-user system, running a basic windowing system. Relative to modern systems, os-9/6809 was slow, but not as slow as you might think. OS-9 accomplished this through a very intelligent design strategy. OS-9 was similar to unix in several ways, but by no means compatible. The universal unix solution is the file. Devices are referenced as files, the /proc file system, etc. In OS-9 the basic solution was the memory module. The operating system was designed as a hierarchy of interacting modules. Through a sophisticated organization scheme, OS-9 was designed for extraordinary performance and functionality on minimal hardware. OS-9 setup a basic division of labor: kernel - manager - driver - descriptor. All io was performed through a descriptor. Even files were accessed relative to a filesystem descriptor. Here are a couple of command line examples:
echo test1 > /p # redirect to the printer echo test2 > /d2/sys/file # redirect to drive /d2, directory sys, file file echo test3 > /w5 # redirect to window 5 echo test4 > /t1 # redirect to serial port 1, my modem echo test5 > /sys/file # redirect to file on default defive, shortcut echo test6 > file # redirect to file in currect dir, shortcut
Each of these ios reference a device descriptor(implicitly or explicitly). Each descriptor was a data module of about 500 or so bytes, containing device default parameters. Each desc contained a reference to a driver, which which fell under certain io managers. IO Managers included sequential char file(SCF), pipe managers, and random block file (RBF). The managers acted as an interface between the io portion of the kernel and low level device drivers. Application programs were also in the form of module(s). Once an application module was loaded it could be executed any number of times in seperate address spaces. The system kept an in-memory module directory. It contained info about every module in the system, running or not. Each module had a link count associated with it. When the link count dropped to zero, it was unloaded and memory was freed. Microware has done much in the last decade since level 2 was released. They have os-9 running on 680x0, intel 386+, and i believe ppc. It goes by other names, such as os-9000 and os68k. They now have support for tcp/ip, nfs, xwindows, and more. It has remained real-time, microkernel oriented, and highly-priced. I was impressed when Linux began to support modules, although this is very different from the tao of os-9. I realize that the design strategy b/t linux and os-9 is soo different, little could be crossed between the two. However, with all the talk of reorganizing the linux drivers in a logical fasion, i felt that os-9 design philosophy might be interesting to some.
|  |