Or have we reached a point where OS's aren't that interesting any more?
* - Other than Windows, that is.
Or have we reached a point where OS's aren't that interesting any more?
* - Other than Windows, that is.
I'm not sure whether or not to call it Unix-based, though. It certainly isn't based on any known Unix code-wise: it's not even written in C. But it does retain a Unix-like command line, and you can even get much of the GNU toolset for it.
Quoting the first comment..."something not Unix-based".
> it's not even written in C
It was. The internals were entirely written in C. C++ was for application developers.Take a look at Plan 9, for example. Plan 9 (which is not Unix), was meant to be the 'next iteration' of Unix, taking the Unix philosophy to the next level. http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
The reason Plan 9 failed to catch on, despite being strictly better, is because it didn't provide a significant enough improvement.
With non-Unix OSes, you not only face the challenge of providing not just an improvement, but a significant improvement, but you also face the challenge of providing a complete toolset[0] that people have come to expect. Plan 9 mostly failed in this regard, despite not even deviating that much from Unix. I can't imagine how much work it would be to do the same 'from scratch'.
[0]Let's not forget that the reason GNU tools (particularly gcc) caught on was precisely because they were able to provide this complete toolchain.
The arguments you give are spot on, I would only add the need for backwards compatibility, or at least the possibility of maintaining the huge and ever increasing volume of mission-critical systems running Unix (Banking systems, the financial world, the Internet, ...).
However, while it's true that Plan9 failed to catch on, a lot of its ideas have been backported to Unix (/proc anyone?). I think that there's something there. Unix can be improved. But no one is going to look at your improvements if it breaks their existing systems.
But that won't be enough, because of all the extensions to POSIX. So you really need a Linux compatibility layer (which we see that FreeBSD, for example, already has).
So, if you want to make a better UNIX, no matter how good your idea is - you have to implement Linux as well, in addition to all your great ideas. At that point, maybe your time would be better spent working on Linux directly.
It's certainly not seriously hard from a technical perspective, it's relatively easy to design a superior system.
What is trickier is building momentum for a new operating system. Your only real option (unless you have tons of cash like Microsoft or Apple) is to first focus on a niche and build from there. The new OS has to clearly be the best at something, even if it's just one thing, so that usage and software can build.
From a more technical perspective, there are a number of things that Unix isn't great at. I'm confining myself here to commonalities between OSX (a BSD) and Linux, as I'm not an OS expert...
* characters for everything
* file abstraction doesn't really work 100% as an abstraction.
* based around C
* huge barrier between code and data.
* abysmal permissions model (read/write/execute/sticky/etc)... SELinux and facls slightly fix this, at the cost of UX.
* monolithic kernel
* interface designed for teletype machines, not graphic displays.
* textual interface mixes control and data planes
* limited APIs for threading/fibers/etc.
There is an old and somewhat out of date book called the Unix Haters Handbook. It's worth a read.
Plan 9 needs to be thought of as a "Unix evolution", not a different OS.
For a perspective on what would be different and possibly better, you will need to look at z/OS, Windows NT, QNX, L4, Wind River, Mac OS <= 9, Genera, and a few of the other more lesser known operating systems.
"Here is my metaphor: your book is a pudding stuffed with apposite observations, many well-conceived. Like excrement, it contains enough undigested nuggets of nutrition to sustain life for some. But it is not a tasty pie: it reeks too much of contempt and of envy."
I was impressed when I discovered z/OS uses a JIT based environment for all user space applications, in a way similar to what Microsoft was trying with Vista, or Google with Android, before the NDK came into the picture.
Having had contact with UNIX when Linux was just a thought for Linus, I surely think there are many more types of operating systems to explore.
UNIX is nice, but not the best of all.
Who knows how things would have turned out to be if Apple had gone BeOS instead of NextStep.
That said, I'm guessing most of the authors of it are today running Unix-derived systems.
I think that since Unix was already decades ahead of any other operating system in the 70s and 80s, we're not seeing any real growth.
I still have yet to see NT be as reliable as a Linux, BSD, or OS X install from 10 years ago.
Contrary to the hacked installations of Linux and BSD or the continuous beach balls of death from Mac OS X around 10-15 years ago.
Open-source Unix has for decades been one of the most contiguous, cohesive, and consistently packaged software experiences in all of computer history.
I don't really get your point here.
BSDs took a little more work, but were relatively friendly to install and worked on a wide variety of hardware around that time as well.
With NT4 they moved graphics drivers into the kernel, and these were crashing often. NT3.5 was stable in this regard, although dog slow.
They also added the I/O fastpath in NT4, to combat dog slowness -- and as a result of not thinking hard enough about that, killed the ability to unload storage drivers, which actually mattered to me.
And that's just the design decisions - the implementatin was also abysmal; there were remote exploits published daily in those days, and only half of them were through IE (which had no reason to be bundled into the OS except for MS world domination plans, but as it was and was unremovable, it was a convenient attack vector.
And don't get me started on concurrency bugs that I reported to MS on NT4 and as of Server 2003 were not yet fixed.
Well, I was doing multi-platform C development across all major commercial UNIX vendors and NT on those days, what about you?
> With NT4 they moved graphics drivers into the kernel, and these were crashing often. NT3.5 was stable in this regard, although dog slow.
At least they did work, not the same could be said about Linux and BSD distributions with their open source drivers 10 years ago.
> And that's just the design decisions - the implementatin was also abysmal; there were remote exploits published daily in those days, and only half of them were through IE (which had no reason to be bundled into the OS except for MS world domination plans, but as it was and was unremovable, it was a convenient attack vector.
Windows problems with security were no different than any other desktop operating system before it.
As for being the beloved target for hacking, it happens with every system they see value into cracking, as the increase in mobile malware shows.
> And don't get me started on concurrency bugs that I reported to MS on NT4 and as of Server 2003 were not yet fixed.
Are every single bug fixes you report to open source projects fixed?
HP-UX and AIX for me, and NT (my colleagues also worked on Netware, but I wasn't involved with it). My experiences are different than yours: we had near-daily BSODs and the system was generally regarded as a bit of a joke.
We worked closely with MS back then (late '90s) and I met some of the kernel team, who told me about the farce of pushing GDI into the kernel - the worst mistake they ever made in terms of stability, though usability-wise it was great. The Windows UI was silky smooth on the limited hardware of the time.
But yeah, in my experience NT defenders were few and far between back then.
Various Unixes, NT and NetWare 4-6. NetWare was, by far, the ugliest. But NT was really, really bad.
> At least they did work, not the same could be said about Linux and BSD distributions with their open source drivers 10 years ago.
I've been running a Linux desktop on and off since 1994, (last used anything else in 2005) and never had a problem getting X to work. And it wasn't until my latest Lenovo on Ubuntu 10.10 that I had a single crash because of a display driver.
> Windows problems with security were no different than any other desktop operating system before it.
Except NT4 was supposedly a server OS. It was bearable as a desktop OS thanks to moving GDI into the kernel, but just barely.
> As for being the beloved target for hacking, it happens with every system they see value into cracking, as the increase in mobile malware shows.
This is so wrong I won't even try to correct you.
> Are every single bug fixes you report to open source projects fixed?
About 10 for each one I report to a closed source project, and that's been the experience of everyone I know.