Hacker News new | past | comments | ask | show | jobs | submit login

Can anyone here corroborate that there are better alternatives to operating systems than the Unix-likes? Maybe anyone that agrees with Rob Pike's view on this in particular? All I seem to hear is that Unix-y OSs are great, but I don't hear much about any potential alternatives. So I'm curious about them.



What Rob Pike is refering to is of course Plan 9 and its derivatives (say Inferno). Whether you want to consider them Unix-likes or not is your choice (many HNers will say it's more Unix than Unix).

If you look for desktop alternatives to Unix, OSes to look at are BeOS (an open source clone is developed under the name HaikuOS) and the Windows NT kernel (don't hurt me: the Windows NT kernel is IMHO far more elegant than, say Linux or Mach. What is crappy is especially the WinAPI; please look deep below the surface: Here Windows gets nice).

The reason why you won't find many desktop/server alternatives to Unix can be read here: http://herpolhode.com/rob/utah2000.pdf Thus lots of OS reserach is either focused on embedded stuff or virtualization instead of desktop or server.

Accepting this, especially have a look at the L4 kernel family (a family of very small and fast microkernels). If you like highly secure designs, you'll probably like seL4, the first formally verfied kernel. Also QNX is worth a look (QNX is Unix, accepted; nevertheless a very elegant kernel design).



In the context of the NT kernel, I supoose ReactOS.org might warrant a look (I don't really know how closely (or not) the kernel design matches NT beyond being compatible with drivers...).


I'm not sure what huge technical advantage the BeOS model offers over contemporary Unix-likes in this day and age, other than its file system support for extended attributes, which are a controversial topic and nonetheless still used by things like XFS.

I'd also like some clarification on what you think is good about the NT kernel. It seems far too entangled with other cruft that forms the Windows stack.

That said, I'd also like to mention the Hurd. At this point, it's really a fragile ad-hoc reimplementation of 9P file servers on top of a modded Mach, but such a model was still quite daring for general purpose computing back during the Hurd's original window of opportunity (1989-1995, or so). Probably would have advanced the state of modern OS at least a bit, if it weren't for managerial incompetence.

It's still a Unix at heart, though, despite many important extensions.


> I'm not sure what huge technical advantage the BeOS model offers over contemporary Unix-likes in this day and age, other than its file system support for extended attributes, which are a controversial topic and nonetheless still used by things like XFS.

BeOS was very optimized for multimedia, which is an interesting property I think. Also the GUI library used multithreading from beginning. This surely isn't interesting for servers, but for desktop computers.

> I'd also like some clarification on what you think is good about the NT kernel. It seems far too entangled with other cruft that forms the Windows stack.

For a lack of time for explanations I will only give one example: How to do fast asynchronous I/O (You know: Asynchronous IO: The hot thing that node.js is about ;-) ;-) ). Under FreeBSD/Linux asynchronous I/O is just synchronous non-blocking I/O (FreeBSD needed to implement kqueue to even allow this in a fast way; the Linux developers implemented epoll (which is incompatible to kqueue :-( )). Under Windows NT it is an easy problem that has been solved (from beginning?). See

> http://sssslide.com/speakerdeck.com/trent/pyparallel-how-we-...

for details.


> BeOS was very optimized for multimedia, which is an interesting property I think. Also the GUI library used multithreading from beginning. This surely isn't interesting for servers, but for desktop computers.

BeOS claimed to be optimized for multimedia, but that does not mean that it was. I remember, that I was able to have fluid DivX (3.11) playback on PII-300 running Windows and Linux, but not on BeOS.

What BeOS did have is DirectShow-like media architecture, using nodes and pipelines. But at the time, it was not an effective architecture.

(And yes, the BeOS engineers never managed to support VESA GTF in their display drivers, meaning that the picture on my monitor was always shifted compared to other OSes).


DivX?

Back when BeOS was still on sale, Windows latest versions were Windows 2000 and Windows 98, with XP around the corner.

I never remember using DivX on those systems.


Yes, DivX.

The original hacked codec appeared in 1998. It got boost in popularity when the movie The Matrix came out (1999).

This happened in Windows 98 timeframe. Windows 2000 was in early beta, not yet on sale and XP was unheard of yet. The current linux were Redhat 5, 5.1 and 6; BeOS 4 and 4.5.


Actually I think I was still only using Real back then, but cannot really remember.

I would need to go dig into my Zip floppies collection, a few thousand kilometers away from my current location.


Ha, BeOS, whenever I watch one of these https://www.youtube.com/results?search_query=beos+demo I feel as amazed as sad.


They're of course not a desktop option at all, but there's also some very interesting work happening with unikernels, which are really only recently a viable option now that Xen can present a unified hardware layer, instead of the endless treadmill of specific drivers. I've been getting into OpenMirage [1] quite a bit recently, largely due to the energy of the team [2], but also looked a bit at HalVM [3]. I definitely recommend [2] for anyone interested in plausible ideas of what the one of the next generations of VM/apps might look like.

[1] http://www.openmirage.org/ [2] https://www.youtube.com/watch?v=UjonFD-2ATo or http://www.se-radio.net/2014/05/episode-204-anil-madhavapedd... (audio only) [3] https://github.com/GaloisInc/HaLVM


While I agree with you regarding Windows.

In respect to the WinAPI, OS/2 API shares part of the pain. And Xlib is way worse.

I am looking forward to WinRT fixing some of the WinAPI issues.


Yes, while UNIX was being developed there were these crazy guys at Xerox PARC created what has become, partially, the idea of modern computing.

A Lisp based workstation (Interlisp-D), a Smalltalk based workstation and a workstation with the first GC enabled systems programming language Mesa/Cedar.

The said systems offered a REPL interaction with the operating system that UNIX to the day still can't match. With powerful concepts of UI workflows, which OLE on Windows or the ill faited Taligent are based on.

They also had the first IDEs, unit testing, AST code transformations and live debugging capabilities.

Some of the Mesa/Cedar ideas were re-used by Niklaus Wirth on his Oberon and Lilith OS research, and corresponding derivatives.

OS/2 offered a OO based UI, and the OS component model (SOM) was way better than COM, allowing for inheritance of implementation and meta-classes.

Amiga UI could have multiple resolutions at the same time, thanks to its chipsets chew more graphics than X-Windows can dream of. Additional it had a concept of libraries where developers could extend the OS and existing applications via plugins. Suddenly application X would be able to work with new file formats.

Risc OS also had quite a nice set of features, but I will let someone else jump in on that one.


I often wish we could rewind to 1990 and start OS development again from there, using the ideas of AmigaOS, RiscOS, TOS etc.


> I don't hear much about any potential alternatives. So I'm curious about them.

Pike was talking about Plan 9. It was created by the research group that developed Unix as a more modern successor to Unix. From Wikipedia: "Plan 9 from Bell Labs was originally developed by members of the Computing Science Research Center at Bell Labs, the same group that originally developed UNIX and C. The Plan 9 team was initially led by Rob Pike, Ken Thompson, Dave Presotto and Phil Winterbottom, with support from Dennis Ritchie as head of the Computing Techniques Research Department. Over the years, many notable developers have contributed to the project including Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup and Bruce Ellis."


He wasn't just talking about Plan 9. Rob was part of the generation that built Unix, and at that time operating systems research was an exciting frontier of new developments. Today, and at the time this talk was given, operating systems research is a stagnant, niche pursuit.


Today, and at the time this talk was given, operating systems research is a stagnant, niche pursuit.

All that effort has shifted over to the browser and the web as a platform on every device. What's the point of putting such a large effort into a complicated, multi-tasking and multi-user desktop operating system if it spends 90% of its time running a browser for one user?


Well, operating systems are used for more than just end user workstations. Servers are a one example.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: