Live data from Hacker News

The operating system: should there be one? (2013) [pdf]

citeseerx.ist.psu.edu

41–50 of 208 posts

Re: The operating system: should there be one? (2013) [pdf]

#41

I would love more collaboration between operating systems. There should be more layers with standard interfaces. For example BIOS used to be a driver layer back in the day, providing simple API to underlying OS. This concept should be expanded. I don't see no reason for every OS to rewrite those drivers again and again. There should be some standard for common device APIs, like disks, keyboards, mouses, GPU and so on…

Standard protocols between hardware and operating system drivers are the way to go, then you get to implement drivers for each hardware class (mouse, disk, keyboard etc) once and use all new hardware, instead of having the hardware vendor need to write new proprietary blobs for every new piece of hardware and every OS.

For example I read on LWN that hardware vendors are starting to look at Linux virtio for hardware agnostic protocols.

https://lwn.net/Articles/805235/

Re: The operating system: should there be one? (2013) [pdf]

#42
post #11

Unix generally has the correct basis for the design. I agree that a filesystem as we know it in unix-like systems is a set of objects (directories) and files. Would it not be preferable to retain this simple interface and instead conceive of interaction between programs and threads not as a stream of distinct objects in memory, but rather as a data tree within each program's control which can be exposed as input or o…

>Unix generally has the correct basis for the design.

I can't disagree with this more, Unix is broken in so many ways and its designs continuously cause me pain. I would not describe a modern Linux or BSD as "simple", maybe the core of it is, but to actually build a modern OS there are so many layers on top of it. And when you do that, the crumminess of the foundation really starts to stand out.

Re: The operating system: should there be one? (2013) [pdf]

#43
post #20

Earlier quoted context omitted.

I think the problem with the unix model is that there isn't a rich enough array of types -- everything is just a stream of bytes and the closest thing you have to lists and records are strings with spaces and newlines. It was revolutionary in the 70s but compared to what you can do with something like powershell (which has its own issues) it's just not a rich or easy to use model anymore.

Simplicity is a good baseline. In Unix systems, off the cuff scripting works really well for live human interaction. Complexity, particularly NOT-self-documenting complexity, becomes a nightmare. Imagine instead that each program controls a special area under /proc/(pid)/ which behave like tmpfs to that program: named interfaces are subdirectories, messages are files. Reflection of supported interfaces becomes easy.…

> Imagine instead that each program controls a special area under /proc/(pid)/ which behave like tmpfs to that program: named interfaces are subdirectories, messages are files.

This is basically how Plan 9 works (or so I’ve heard).

Re: The operating system: should there be one? (2013) [pdf]

#44
post #14

Earlier quoted context omitted.

Nah, Android, macOS and Windows are doing just fine, it is the classical UNIX desktop that cannot get their act together. The existing issues aren't technical, rather political, like the WinRT crusade that ended up bombing and now we have plenty of GUI toolkits to chose from on Windows. Swift, Java, Kotlin and the .NET languages are more than high level enough.

> the classical UNIX desktop CDE? That hasn't existed for decades.

CDE exists, is open source and has had commits only a month ago:

https://sourceforge.net/projects/cdesktopenv/ https://sourceforge.net/p/cdesktopenv/activity/ https://sourceforge.net/p/cdesktopenv/code/ci/master/log/

Re: The operating system: should there be one? (2013) [pdf]

#45
I've had some experience with running applications without an operating system. First and foremost I like the simplicity. Instead of having state distributed between the kernel and the application all the state is in your application. No longer having this dance where an application and the kernel interacts there is only one place where state is kept.

This can lead to some spectacular results for things like TCP. Having the ability to serialize a TCP connection and sending it over the network means you're able to transfer a TCP connection from one host to another, even with SSL on top.

Now, this can be done with a POSIX kernel as well, as long as you move the networking from the kernel into the application. But if you're doing this you're eroding away the benefits of the kernel, basically turning your OS into a bootloader. Same thing with scheduling.

Another benefit is that, at least on compiled languages, code that isn't used isn't there. So the linker can strip away everything that is never called.

This still feels like utopia. The average development environment is pretty complex and ripping out and replacing all the layers below your language runtime is too much effort.

Re: The operating system: should there be one? (2013) [pdf]

#46
post #36

Earlier quoted context omitted.

My point is that "classical UNIX desktop" doesn't exist. (Hell, even UNIX itself doesn't exist anymore. Linux and FreeBSD is its own thing now.)

It sure does exist, a large majority of Linux and FreeBSD users pretend they are still living in the 80's with vt100 and an improved twm. As proven by https://news.ycombinator.com/item?id=28437173 making to the first page today.

How do you find time for work? I see your comments shitting on everything that's not Windows pretty much everywhere.

Re: The operating system: should there be one? (2013) [pdf]

#47
post #44

Earlier quoted context omitted.

> the classical UNIX desktop CDE? That hasn't existed for decades.

CDE exists, is open source and has had commits only a month ago: https://sourceforge.net/projects/cdesktopenv/ https://sourceforge.net/p/cdesktopenv/activity/ https://sourceforge.net/p/cdesktopenv/code/ci/master/log/

If you actually look at the commits, it's mostly fixing the build and tweaking it to work on modern platforms. My personal opinion after trying it, I would not suggest use of Motif or CDE for anything besides nostalgia, it has some serious usability issues. But if you enjoy it, more power to you.

Re: The operating system: should there be one? (2013) [pdf]

#48

Earlier quoted context omitted.

Could you expand on this more? I don't know a lot about GUI programming, but I'd be interested in learning what the current failings are within the desktop space.

Specifically for Linux, there is no ubiquitous standard with decent performance and a predictable look such as win32 or Cocoa. Instead, developers rely on toolkits such as Qt or GTK to ensure compatibility, which are usually either bloated or ugly.

If you think that Qt is more bloated than Cocoa I don't know what to say. That objc runtime is so heavy and slow, good luck making it run on microcontrollers

Re: The operating system: should there be one? (2013) [pdf]

#49

Earlier quoted context omitted.

I would be soooo happy if OSes were just absorbed by databases. The file system is just a heirarchal key value store: genius! Let's make it untyped so you have to parse everything manually just to interpret it: not so great. Yes I'm saying the Unix file system is a worse mongodb. Please at least give me a postgres or something.

I enjoyed this post, but I'm struggling to wrap my head around what relations you'd have in this OS. Sym links become foreign keys?

Just a record pointing to another ID? I mean no need to enforce FK constraint for symlink. For hard links - yes, an FK like concept?
Post reply on HN