Live data from Hacker News

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

citeseerx.ist.psu.edu

131–140 of 208 posts

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

#131

Earlier quoted context omitted.

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

Not sure what you’re talking about. ObjC runtime is fairly small. The basics of what you need for ObjC is just objc_msgSend, which is basically a fancy hash lookup written in assembly language. If you want ObjC on a microcontroller, you’d want to port this function to your target architecture. There are a few other components you “need” but objc_msgSend is the key one.

You’d probably also want some form of malloc(), but that’s completely optional. There’s nothing in Objective C that says you have to allocate memory dynamically, or that you have to do it with malloc.

ObjC runtime has grown somewhat to include more features, but you don’t need all those runtime features if you want to run your code on a microcontroller. Just like you don’t need glibc if you want to run C. There is more than one runtime for Objective C you can choose, just like there is more than one runtime for C.

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

#132

I've been playing with Unikernels for Go server deployment - so far so good. I'm not sure if this counts as "no OS" - as I understand it (and I'm not sure I do) the Unikernel core provides the calls that the Go runtime is expecting. But the central idea that the server system can only run one program makes a lot of sense to me. Obviously it won't work for a desktop, but then the whole idea that desktops and servers r…

I've been expecting the unikernel approach to catch on more too - although not the "no OS" it can be pretty stripped down compared to a regular OS. Now that unikernels are starting to gain more traction in the DOD I expect this will continue.

Somehow I would state that serverless and PaaS for managed languages are where unikernels are going.

In those cases 99% of the time you really don't care what runs underneath the language runtime.

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

#133

"an operating system is a collection of things that don’t fit inside a language; there shouldn’t be one" I've wondered the same thing about databases. Just like an OS, a database has to manage data on disk and figure out when to cache it. The files & folders metaphor is arguably a relic of pre-computer times--instead of searching through folders, it is easier to search and sort based on particular attributes, somethi…

I can imagine a hybrid file system where a hierarchical structure is used for several levels, before bottoming out in a directory of databases. Ideally this would be accessible/searchable by DB index from all levels of the directory hierarchy. I'm sure something like this has been implemented of which I am ignorant.

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

#134
post #9

I can't help but think about what happened with graphics APIs - the older ones (DX9, OpenGL) held your hand more, and the new ones are super bare metal and not written for the faint of heart. I think most would agree this is better though; for an application developer you can simply use a much higher level library built on top, and for the library/engine developer you have a lot more power and control. The old APIs w…

>True low level control is kind of a pain, but the OS libraries are not particularly pleasant or high level enough either Wait. In that case, library developers or OSS projects can fill the gap. What am I missing here? QT comes to mind. A high level library for GUI programming. Also, the modern .NET stack. I always thought the popularity of Electron is because GUI programming is insanely easy on it, and if you have a…

Electron is popular because it makes cross-platform desktop apps easier, or because developers have existing JavaScript code that they want to share between a desktop app and a web app.

I would say that if you just wanted to spit out a Windows application, and you already knew the technologies, WPF or Winforms would probably be better (despite the fact that WinUI is the new hot stuff).

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

#135
post #128

Earlier quoted context omitted.

I've been expecting the unikernel approach to catch on more too - although not the "no OS" it can be pretty stripped down compared to a regular OS. Now that unikernels are starting to gain more traction in the DOD I expect this will continue.

I've worked with Unikernels for a couple of years. They are great, but they are very, very pure and this can be limiting. Say I have an web API written in Go. For some reason I need to do some openssl stuff before I start up my main program. In a container I can just wrap my program in a little shell script which generates/signs a cert before starting the API. Such a simple task. It is gonna be a lot harder with a Go…

You can have best of both worlds with container OSes like Bottlerocket.

In any case, in you have a web API written in Java then you can connect advanced monitoring tools like JDK Flight Recorder and directly affect the system via JMX beans.

So it is more a matter of tooling maturity than anything else.

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

#136

Earlier quoted context omitted.

Isn't what you just described Fuschia?

>Isn't what you just described Fuschia? It would be, if I could get it to run my PC. Same with Genode. Of course at this point nobody expects HURD to come back to life.

There are other microkernels to chose from, like QNX or INTEGRITY OS.

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

#138

Earlier quoted context omitted.

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

for "microcontroller class" whats the perofrmance level your looking at, something akin to a 68030 or so?

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

#139

Earlier quoted context omitted.

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

Not sure what you’re talking about. ObjC runtime is fairly small. The basics of what you need for ObjC is just objc_msgSend, which is basically a fancy hash lookup written in assembly language. If you want ObjC on a microcontroller, you’d want to port this function to your target architecture. There are a few other components you “need” but objc_msgSend is the key one. You’d probably also want some form of malloc(),…

It's probably exactly that runtime...desk devs have forgot that embedded is tiny, megs not gigs of memory, so not one but 2-3 orders of magnitude smaller.

You can have all the 'simple' calls you like but if you need to malloc half a gig of ram just to get started...that is heavy and bloated.

Also you say 'architecture' but unless you are talking a battery hungry cellphone you are probably talking 16 or 32 bit proc not 64, which means potentially massive increase in the size of code to be generated since you lose certain instruction sets. I don't know realistically what Obj C uses in the osx cpu architecture but I'm almost certain it's not going to be as simple as just retargeting your compiler...

Not saying it can't be done but take even the new arm laptops from Apple - that's a significant hardware investment on top of a bunch of software tricks, not just a casual retargetting that can be portably moved to other low power systems.

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

#140
post #69

Earlier quoted context omitted.

Making the top left pixel red just isn't something you should be doing in a GUI environment anyway, it doesn't make any sense. For something like that you should probably be dropping to a full-screen mode like most graphics heavy games anyway, in which case it's pretty easy on modern OSes. The desktop GUI is just one subsystem in a modern OS, and you don't have to use it if you don't want to. If you do use it then th…

> Making the top left pixel red just isn't something you should be doing in a GUI environment anyway, it doesn't make any sense. Never cheated in Minesweeper, I presume?

One of the versions had the high scores saved in ini file (3.1? 95?). My dad was amazed I solved large one in 15s. Then he found it. Then I learned about the read-only attribute.
Post reply on HN