Tuesday, January 01, 2013

We Need More Operating Systems

Pure opinion post here. I have never been a big fan of the operating system mono culture. In my first job out of college I worked for a company that developed applications for three different operating systems – OS/8, RSTS/E and RT-11. They had some similarities to be sure as both were developed by the same company. They had some differences as well. On one of them the default editor used the command “d” for display. On the other the command “d” meant delete. Yes that made life interesting. Internally there were a lot of other differences as you might imagine.
Later I went to work for Digital Equipment, the company that wrote the RSTS/E and RT-11 operating systems where I soon became somewhat fluent in RSX-11M, TRAX, TOPS-10, TOPS-20 and VAX/VMS. The hardware architectures involved 12 bit, 16 bit, 32 bit and 36 bit words. I became somewhat familiar with assembly languages for all of them. It was a wonderful time. I also ran into UNIX for the first time. It was almost as good as the worst of the other 8 operating systems I worked with. Sigh. I never expected it to last. Shows how good my predictive skills are.
Other companies were also working on their own operating systems. IBM had several. HP had several. Data General had several. And so did other companies you have probably never heard of. A lot was going on in operating systems. Software including the OS was a differentiator.
I remember one funny story that may or may not be  true. I’ll leave out the name of the company since they are no longer in the computer business. A technical person was giving a presentation on some new computer hardware to a potential customer. Several times questions where asked and the reply was “we’ll talk about that when we talk about software.” At the end of the hardware presentation one of the listeners said “that is amazing. I don’t know why everyone doesn’t buy your computers.” A voice from the back of the room said “we’ll talk about that when we talk about software.” It was a different time.
Today, for most people, on personal computers there is a choice between Windows and some flavor of UNIX with a pretty shell over it. Mac OS or Linux or FreeBSD and the like are based on UNIX. There is not much incentive to create a new operating system. After all you would have to compete with an OS that is firmly entrenched on 85-90% of desktop systems on one hand and a free operating system on the other. Most people take the easy way out and build on top of Linux.
In hand held devices there is also a choice between Windows derived OS and UNIX derived OS but several smaller systems are developed based on other OS families. Wikiepedia has a comparison of mobile OS that includes information on OS families. There seems to be more innovation going on there especially with the user interface and with modifications needed to support the more limited hardware capabilities of handheld devices.
This this set of differences is frustrating for app developers I believe it is good for over all innovation in operating systems. Ultimately I believe that consumers are better off when companies have to compete on both better software as well as better hardware. For the near term I see most OS innovation happening in the mobile space. Some of it will migrate to desktop systems as touch interfaces are already. Some will not.
I expect some innovative OS research is being done in universities. I hope so anyway. How much of it will wind up in real systems is anyone’s guess though. With the operating system becoming less and less important for most average users there isn’t the same incentive for companies to adopt new technology these days. Well unless it saves battery life or electricity.

11 comments:

Will said...

I could well imagine some very cut-down special purpose OS being developed (if it has not already happend) to sit behind cloud computing services (think AppEngine rathe than EC2), where *nix is, frankly, overkill.

Alfred Thompson said...

While there is only one comment here as I post this there are 25+ comments at http://news.ycombinator.com/item?id=4992845 Many of them are pretty interesting and advance the conversation.

Unknown said...

I've actually thought the opposite of this. I feel like the OS is becoming less and less relevant. I'm all for there being more operating systems for the sake of competition, but I doubt they would be commercially successful.

I run Linux at work and a Mac at home, and, aside from occasionally trying to poke around in /proc on my Mac, the only difference I see is that the window decorations look different. Even when I fire up a Windows VM, the only obvious differences as an end-user are the UI and the fact that the filesystem isn't designed to abstract away physical disks. And with my developer hat on, the high-level languages I work with abstract almost all of the details away, so that I really don't care what OS I'm on.

The special-purpose OS bit is an interesting comment; I'm seeing the JeOS concept become somewhat popular, but it's usually stripped-down Linux. I think part of the reason not many people are going further is that hardware (especially memory) is just so cheap that there's not much of an advantage to try to shrink things down further.

Tikhon Jelvis said...

The very cut-down, special-purpose OS already exists in a certain sense: you can write code to run directly on a hypervisor like Xen or (I believe) ESX.

I am aware of two projects for the former: HalVM and Mirage. As a bonus, these allow you to write your code in sane, high-level languages without sacrificing much performance.

I was talking to somebody from VMWare recently, and they mentioned that ESX supports something similar. I don't know the specifics, but I think there were some issues (which may no be resolved): you had to use C++ with POSIX headers, not all of which were implemented. So you would only get runtime problems if you tried to use an unimplemented API call.

Personally, I would rather stick to nice languages and open-source, so I'm content with using Xen (which is what EC2 runs on, coincidentally), but if you want to use VMWare for whatever reason, that's an option too.

Unknown said...

There are plenty of other operating systems out there.

ReactOS

Haiku

AROS

But they are not yet ready for prime-time yet. Still in alpha or beta test. Anyone want to help them out?

Daniel Wozniak said...

I agree 100% that more competition in this space will ultimatly lead to better choices for comsumers. As you pointed out though, what on earth would drive someone to start from scratch at this point? If I had to venture a guess, I'd imagine the next main streem operating system will come from the open source space. It will driven out of a few peoples need to persue something new, different, interesing.

Thats my take, thanks for sharing.

Daniel Wozniak

Anonymous said...

I disagree. I worked for Sperry Univac in the 70's. One of the reasons for their downfall was the proliferation of operating systems: NCOS, Exec 8, OS/4, OS/3, VS/9, 494s, 418s, OS/7, CADE, etc. All written in Assembler. Developed and supported by a group spread too thin and wide to achieve excellence. Condemned to reinvent the wheel, badly.

As a small developer, I can't even afford to support OS/X and Windows. If I did, I would have to double my costs, for at best a 5% increase in sales.

Anonymous said...

SparrowOS is a non-networked, x86_64 operating system that is unique!

Dorai Thodla said...

I came here via a link in Hacker News. There is instant kinship since I learned everything I know about computers by working on PDP-11 and many of its operating systems. But I spent a lot of time on RSTS/E and RSX-11M.

As for operating systems, I think we will see more innovations on top of the Kernels. A well defined Programming Interface is important for developers to have stable core of their apps running on multiple platforms.

I think we will have more operating systems as these mobile devices start getting used for things other than making phone calls, personal apps and games. Or we may see a small core with different layers as these processors get into several devices.

It is an interesting space to watch. Thanks for starting the conversation.

Diego said...

I'm sure an operating system could benefit from the ideas that come from the functional programming paradigm, such as using lazy evaluation and side effects control.

I Just checked in Haskell's hackage webpage, and there's a project named Manatee in the Operative System category: http://hackage.haskell.org/packages/archive/pkg-list.html

Anonymous said...

I'm not sure it's lazy to build over Linux as opposed to realistic. It opens up support to a whole load of hardware that it would take immense resources to match.

The slightly higher effort approach is to produce compatibility to make use of other drivers.

But there's plenty of space for innovation in the layers above the kernel.