8 ms·
“Unix and Windows are very, very similar and they should be bashed in unison”
- trav4225 11y agoThe value of a particular approach to OS design depends upon what it's used for. This post seems to me to be making a number of assumptions in this regard and I found myself thinking "that doesn't apply to me" about much of what it states about UNIX. Not a criticism per se, just stating that this definitely seems to be from a specific POV. Having said that, I must say that a few claims are made that are head-scratchers to me, e.g. that UNIX is a "single-user system", and that an OS should be something that one can "learn programming" from.
- trav4225 11y agoAlso, doesn't xmonad (which I happen to use) count as a "programmable GUI"?
- vezzy-fnord 11y agoNot really. Oberon is an example of a programmable GUI, for one.
- trav4225 11y agoInteresting. I am a bit confused though as to how xmonad could not be considered programmable. I'm curious -- what does it lack in your opinion?
- vezzy-fnord 11y agoIt's still just a WIMP interface. It might be a more flexible one since it's tiling, and it might support a larger number of configuration options than most. An actual programmable GUI is one where there is no distinction between what is referenced at initialization and what is bound at runtime. You're actually live scripting the interface's own structures and moreover potentially concocting intricate programs out of the on-screen text that can be typed at any arbitrary offset, and is interpreted as a programming construct. Clicking on a piece of text can serve as an entry point or continuation for performing some form of computation, as it can point to anything, including the internal state of a system object. You could read people rabble, or you could just try Oberon, Bluebottle OS or similar systems.
- delish 11y agoJust to rabble in agreement, one recompiles xmonad (typically with mod-q), where recompiling means loading one's entire xmonad.hs file. "Reloading a file," especially when that file is typically solely used for xmonad resources (and not for any object the user desires) is not nearly as programmable as a Smalltalk or an Oberon.
- trav4225 11y agoGotcha. Understood.
- kragen 11y agoxmonad is a window manager, not a GUI. You use it to move windows of a GUI around and resize them. The GUI is what happens inside those windows.
- trav4225 11y agoI see your point and don't disagree. Using these semantics then, this is all user-layer stuff, and even less of an argument against "UNIX" itself. :)
- tedunangst 11y agoThis quote seems to sum it all up: By your own admission, you "use" it, which makes you a "user", and as we all know, all users are clueless, therefore you are in no position to judge whether it is "usable". That's logic! -- Tweedledum
- deleted 11y ago[deleted]
- igravious 11y agoWhat a quaint and flimsy ranty troll, Written 'ere the web got old, In those days nobody'd call you out, When you started spewing through your spout.
- Bud 11y ago[dated 2008]
- everyone 11y agoFair enough, everything is flawed. But what should we use instead? TempleOS?
- omginternets 11y ago>TempleOS? I dunno, meddling in the affairs of the One True God seems like the sin of pride to me. I shudder to think of the implications of serving porn on a TempleOS server; that's asking for an IRL segmentation fault.
- luckydude 11y agoAs an old guy, I'm rather unimpressed with this sort of bashing. Yeah, Ward made the first wiki. Kudos for that, he deserves it. But if you are going to bash unix, Ritchie, plan 9, and windows all one page, I'd like it if you had a concrete proposal for a better answer. And saying unix and windows are the same, really? I've supported a fairly complex SCM on windows, linux, macos, all the other unices, for 18 years. I don't find unix to be the same as windows but maybe that's just me.
- vezzy-fnord 11y agoI'd like it if you had a concrete proposal for a better answer. http://c2.com/cgi/wiki?BlueAbyss http://c2.com/cgi/wiki?BlueAbyss Old spec: http://c2.com/cgi/wiki?BlueAbyssFramework http://c2.com/cgi/wiki?BlueAbyssFramework (By the way, it's Richard Kulisz who is saying all of this. Ward Cunningham has nothing to do with it.)
- luckydude 11y agoThanks for setting me straight. So after reading that stuff I'm still not impressed. Might be me, I worked on SunOS and we did "objects" for the VFS layer. It was like a class with all virtual methods. Worked well. Full on object oriented stuff in an OS seems weird to me. But I'm not an OO person, I like really simple stuff, SunOS made that work, I hacked vi so that when you tagged on VOP_OPEN it knew that there was ufs_open and nfs_open and tmpfs_open and you could walk all of them, but it was very simplistic. And as such it actually worked. I like stuff that works, proven in the field, proven in the development space, we can ship this and can support it. I may be well behind the times but what I read didn't make me want to go work on it, it made me skeptical about it actually working in real life. I'd be happy if someone proved me wrong, it sounds cool. When is it shipping?
- tedunangst 11y agoYeah, but see, vfs doesn't count because... Uh, it uses macros, or something. Hell, even the user land side is "OO". The same set of syscalls work on files, sockets (IPv4 and IPv6), pipes, etc. "needs more OO" is a pretty nebulous complaint about an OS.
- jfb 11y agoI'm not at all convinced that Smalltalk-80 was the apotheosis of computing environments; both Windows and Unix are, cockroach like, exceedingly good at staying alive. Neither is fun to use, but nobody's put selective pressure on "fun to use" since, oh, maybe the introduction of the Multifinder.
- codelitt 11y agoI actually find Unix and Windows to be very fundamentally different. Particularly where he talks about security. Unix security concepts are built into the system architecture whereas in Windows they are implemented as features on top of the OS. A perfect example that he calls out, ACL. Some does exist in the architecture of Windows, but it is only a half hearted implementation. Modularity is another example of something that is fundamental both in the architecture AND the philosophy of Unix, but very far behind in Windows where many applications such as a browser exploit can tie into the kernel space. The communities and philosophies are also something I breezed over, but I think they are a non-trivial part of an operating system.
- asveikau 11y ago> Unix security concepts are built into the system architecture whereas in Windows they are implemented as features on top of the OS. A perfect example that he calls out, ACL. Some does exist in the architecture of Windows, but it is only a half hearted implementation. I think you have the layering completely the opposite way. NT has security descriptors on everything that has a name. Then above there is Win32, originally bolted on top of NT as a compatibility mode among others, which is historically an API for not very security conscious systems. And most Windows programs out there don't care about the security features. So it's more like the higher layers suck in this regard.
- codelitt 11y agoI absolutely may have the layers the wrong way. My working knowledge of Windows is very limited compared to Unix and I may not have fully understood how Windows is put together.
- TazeTSchnitzel 11y ago> Unix security concepts are built into the system architecture whereas in Windows they are implemented as features on top of the OS. A perfect example that he calls out, ACL. Some does exist in the architecture of Windows, but it is only a half hearted implementation. Huh? The fundamentals of Windows NT (the object manager, the registry and NTFS) all have ACLs.
- rsync 11y agoI like thinking about operating systems, and I am sympathetic to the notion that things could be better than UNIX, but there's some real gibberish in this article. "Both have flat, useless WIMP GUIs;" ... this has nothing at all to do with UNIX - you don't need a GUI at all in UNIX (which is great) and there are MANY non-WIMP operating environments available - many of which are serious, sophisticated, current offerings. "Neither has a programmable GUI." False. ion3, for instance, which is one of the many available non-WIMP environments I mentioned above, is completely programmable with lua. I am sure there are 100 other examples. "Neither is versioned, both are irreversibly destructive." Hard to say exactly what is being pointed out here, but I think it's related to filesystems and going backwards ... and ZFS provides that just fine with snapshots. In fact, even UFS2 has filesystem snapshots. Available on FreeBSD, Solaris, and many others ... including Linux. "Neither takes account of any modern research" ... again, previously mentioned ZFS ... that's as modern as it gets. netgraph in FreeBSD also comes to mind as something genuinely inventive, unique and modern. "You can't learn programming from either Unix or Windows." Inasmuch as I would consider the UNIX shell as part of UNIX, you absolutely can learn to program. Further, inasmuch as DOS batch files are part of Windows, you can learn to program there as well. I certainly did. When was this written ?
- igravious 11y agoIn the 90's, don't know when exactly. I remember when this site was active :) Showing my age. Back when wikis were new and /. was the nerd forum of choice. Ah those heady times. But seriously, this pre-dates ZFS for sure and ion3 I don't know about.
- x0054 11y agoI am not sure when it was written, but it references "WimpIsBroken" article on the same page. That article has been updated to also bash Windows 8 design. So, if not written, then it must have been at least updated somewhat recently. So I am guessing the author still agrees with all of his points of view.
- bcantrill 11y agoI'm having a hard time dating this rant (despite its historical importance, I can't seem to convince WikiWikiWeb to cough up a page history), but I would guess that it's from ~1996. If so, it is a time capsule that represents the stagnant OS thinking in the mid-1990s: the belief was that Unix was dead (!), that Windows was going to be everywhere (!!) -- or that both of these systems were essentially useless and what we _actually_ needed was radical surgery like object-oriented operating systems or microkernels or exokernels or orthogonal persistence (or all of the above!). If it needs to be said, this time was a terrible atmosphere in which to aspire to OS kernel development, a suffering that I expanded on (at far too much length!) in a recent BSD Now.[1] I do not miss the mid-1990s at all, and even now, I find that this ill-informed screed fills me more with resurrected anger than it does any sense of vindication or nostalgia... [1] http://www.bsdnow.tv/episodes/2015_08_19-ubuntu_slaughters_kittens http://www.bsdnow.tv/episodes/2015_08_19-ubuntu_slaughters_k...
- vezzy-fnord 11y agowhat we _actually_ needed was radical surgery like object-oriented operating systems or microkernels or exokernels or orthogonal persistence (or all of the above!) Do we not? I watched your interview, but I don't recall you saying anything about research ideas. You even made a jab against Spring which rubbed me the wrong way. An orthogonally persistent microkernel-based operating system, even another Unix, would be great. Which is why I'm looking at MINIX 3 and Hurd as interests. The latter has its anachronisms, but it's still a step forward.
- nextos 11y agoI think we need a functional userland (like nix) and a microkernel (like minix), at least. Sadly we will get a userland full of container-ized apps (via systemd) and a monolithic kernel (still linux). Worse is better.
- igravious 11y agoWe've had the microkernel versus monolithic kernel debate _over_ and _over_. I'm not against research but I've yet to see a convincing argument that microkernels are better. If you decouple the logical bits of the kernel from each other all you'll get is greater impedance and message passing overhead. And for what? A "clean" architecture? Sometimes perfect is the enemy of the good, and I think that applies in this case. We've also got the tools to make monolithic kernel development scale now. Basically, I'll believe it when I see it.
- jmspring 11y agoI agree a fair amount with the bashing. And I recall historical commentary similar. That said, the two hangups for me on windows are - 254 character path limit no posix compliance (lack of a shim library even) -- there used to be a posix compliant set of libs that were optional under NT That said, outside the scope of the rant, Windows has been really good at keeping backwards compatibility. (See issue w/ 254 char path limit).
- vacri 11y ago> Neither is usable by someone who isn't thoroughly familiar with their limitations and weird little idioms. vs > You can't learn programming from either Unix or Windows. Really? Reading this article is an exercise in Poe's Law.
- Eiriksmal 11y ago> You can't learn programming from either Unix or Windows. You can learn it from other applications and from tons of books, but you can't learn it from the OS. I grew up in an era of Windows 3.1+, so I'm probably showing my youth when I ask, how can you learn to program from an OS? Is this akin to compiling your own kernel from scratch and being forced to tinker with the kernel modules to get Linux 2.x to run on your 2015 laptop..?
- adamnemecek 11y agoI think that they are talking about discoverability. They are probably comparing it with Xerox Alto or similar.
- drdaeman 11y agoZX Spectrum 48k had a BASIC interpreter as its primary OS. When the computer was powered on the first thing user would see was a REPL (128k version introduced a GUI menu with a few shortcuts). Although users weren't required to, they literally invited to learn some programming. Not that this was "user-friendly" in modern sense, but also don't think anyone had issues with this.
- JdeBP 11y agoTo amplify that point: A lot of what were then often called home computers bootstrapped into a BASIC interpreter. To pick just a few: the Oric, the BBC Micro A/B, the Master, the Electron, the Commodore PET, the VIC-20, the TI 99/4A, and the QL The Jupiter Ace bootstrapped into Forth. None of these were akin to learning to program with the first step being the giant leap from zero to compiling one's own kernel. That is not because they didn't have kernels. Several did, coming with actual operating system kernels that underlaid the interpreter. QL SuperBASIC, for one example, was an applications program running on a multi-process multi-tasking single-user handle-based I/O operating system named QDOS. The learning to program had as its first steps the rather lower bar of the 2 or 3 line program that printed a string, or asked the user for input, or drew a coloured triangle on the screen ...
- ISL 11y ago"Neither have been designed well, both are the products of random evolutionary pressures." As is every living being.
- gizi 11y agoWhat alternative does he propose? I don't see any. Furthermore, why doesn't he propose/create practical, incremental improvements? In the meanwhile, I am just going to stay compatible with all the miracles and all the horrors of the past! ;-)
- nerdy 11y agoI propose TempleOS for this author.
- tsotha 11y agoThis rant brings to mind Stroustrup's observation about there being only two kinds of languages: the ones people complain about and the ones nobody uses. What is BEOS's market penetration?