Live data from Hacker News

Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

cs.columbia.edu

41–50 of 52 posts

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#41
post #29

Earlier quoted context omitted.

> On the other hand a binary-based object-oriented approach can give better performance and make it easier to parse data please, no. OOP approach means that my process needs to know how to communicate with other processes via very specific protocols, which aren't very well defined (any process could describe its type of object). This is the exact opposite of flexibility. The usefullness of tools like grep or sed woul…

> OOP approach means that my process needs to know how to communicate with other processes via very specific protocols, which aren't very well defined (any process could describe its type of object). That's why we have IDL -- interface description language for RPC calls. An IDL-to-X (usually C) compiler generates the necessary glue so that anybody can talk to the program in question. IDL is also the basis of MS COM,…

> So you teach grep to take an IDL file, invoke an IDL compiler and dynamically load the parser for the protocol in question. Also, if the broker were a standardized, perhaps in-kernel component (dbus, kdbus), you could attach "idlgrep" to any process to trace its calls.

So you introduce a huge load of accidental complexity because the text interface has some perceived inefficiency? I'll choose simplicity and accessibility over this mess anytime.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#42

Earlier quoted context omitted.

Microsoft PowerShell does this, and it's pretty neat. Of course it's less popular than bash so now they're bringing bash and text-based pipes onto Windows! Ergh.

Bash + coreutils is powerful. Putting that on windows is a very good thing. The "performance increase" is irrelevant compared to the ease of use, available documentation (man pages), interoperability, and maturity.

the biggest problem with bash on windows is that it has poor interop between Windows tools (to the point of almost no interop). In that sense, cygwin is already better than the recent Microsoft offering.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#43
post #33
post #29

Earlier quoted context omitted.

> OOP approach means that my process needs to know how to communicate with other processes via very specific protocols, which aren't very well defined (any process could describe its type of object). That's why we have IDL -- interface description language for RPC calls. An IDL-to-X (usually C) compiler generates the necessary glue so that anybody can talk to the program in question. IDL is also the basis of MS COM,…

Heh, you will only be able to openly advocate IDL once the last CORBA programmer is dead. We've been down that route. It didn't work.

It is called REST and micro-services nowadays.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#44
post #36

Earlier quoted context omitted.

Yes and no. They both have the resources (money, engineers) to do alot in-house, and the market share that vendors will support them specifically. They can't not do this, they are under the same commercial pressure as other OS vendors. If you want proof, just look at the systemd fiasco. Red Hat's way or the highway.

> If you want proof, just look at the systemd fiasco. Red Hat's way or the highway. What kind of proof is this? systemd is the new standard across all major distros (except for stuff like Gentoo or Slackware, which is irrelevant in the targeted enterprise market anyway). And in the process, systemd steam-rolled over lots and lots of bizarre inconsistencies between distros. If that's Red Hat's version of EEE, I'm very…

Fair enough, but let's not pretend we're in Unix-land anymore.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#45
post #30
post #5

Earlier quoted context omitted.

The good old days, you mean. Long may they continue. On a more serious note, this is not happening because POSIX is bad or irrelevant but because people a) don't know about it and b) even if they did, reinventing the wheel is more fun.

As far as I can tell, POSIX was an attempt to codify existing practice amongst Unix vendors, picking the best of the most widely supported features, as opposed to actually trying to come up with a good standard. From reading UHH, one might almost be tempted to say that the only thing worse than POSIX was leaving things up to the vendors. Either way, POSIX seems to have dealt with a lot of interop issues, but it has f…

> did people ever voluntarily use csh?

Yes, for an interactive shell, back when the choice was between csh that had command-line history and sh that didn't.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#46
post #29

Earlier quoted context omitted.

> OOP approach means that my process needs to know how to communicate with other processes via very specific protocols, which aren't very well defined (any process could describe its type of object). That's why we have IDL -- interface description language for RPC calls. An IDL-to-X (usually C) compiler generates the necessary glue so that anybody can talk to the program in question. IDL is also the basis of MS COM,…

> So you teach grep to take an IDL file, invoke an IDL compiler and dynamically load the parser for the protocol in question. Also, if the broker were a standardized, perhaps in-kernel component (dbus, kdbus), you could attach "idlgrep" to any process to trace its calls. So you introduce a huge load of accidental complexity because the text interface has some perceived inefficiency? I'll choose simplicity and accessi…

Ok, now i am confused. On the one hand you rail against complexity, while on the other you favor systemd.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#47

Earlier quoted context omitted.

> So you teach grep to take an IDL file, invoke an IDL compiler and dynamically load the parser for the protocol in question. Also, if the broker were a standardized, perhaps in-kernel component (dbus, kdbus), you could attach "idlgrep" to any process to trace its calls. So you introduce a huge load of accidental complexity because the text interface has some perceived inefficiency? I'll choose simplicity and accessi…

Ok, now i am confused. On the one hand you rail against complexity, while on the other you favor systemd.

Yes, systemd is complex. But much of its complexity is justified. I rail against unnecessary complexity.

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#48
post #15

Earlier quoted context omitted.

What does binary vs text have to do with object orientation?

It doesn't, but it gets around the extra overhead you get with the added metadata. OO on its own is slower to parse than plain text, but binary is faster to parse than plain text. If you combine the both can you get the best of both words, something that's both reliable and fast.

I see that binary might be interesting. But why add OO to the mix? There are other worlds to mix the best from.

As one silly example, you can consider Google's protocol buffers. They are not particularly OO-y. (I have great sympathies for functional languages, but I don't think they offer too much insight into how to format your data files. And neither does OO?)

Re: Posix Abstractions in Modern Operating Systems: The Old, the New, the Missing [pdf]

#50
post #17

Earlier quoted context omitted.

It is already invented by ASCII.

No it's not. ASCII doesn't give you enough metadata to permit for efficient and reliable parsing of data, you can do a lot better without using ASCII.

ASCII solved problem of "few bits/bytes lost", isn't? Binary flow is divided into bytes. Bytes are divided into control sequences and text characters. Control sequences contains sequences to separate columns (tab character) and records (new line character). Moreover, all that was standardized across various platforms. It was huge improvement. It is why UNIX sticks to ASCII: to be portable.
Post reply on HN