Live data from Hacker News

A dream of an ultimate OS (1995)

okmij.org

81–90 of 188 posts

Re: A dream of an ultimate OS (1995)

#81
post #8

> But it does not have to be this way. If a database engine is implemented as a core system service, along with simple tools to browse and modify database records, the gordian knot of system configuration files disappears. MacOS comes very close to this ideal, with ResEdit as this universal database editor. Or AS/400, which is more or less a SQL database.

> Or AS/400, which is more or less a SQL database. People keep on saying that, but how really true is it? Many operating systems come with bundled relational databases–e.g. most Linux distributions come with more than one relational database implementation bundled. Does that make Linux "more or less a SQL database"? How deeply integrated is DB2/400 into the OS/400 kernel (or equivalent term, such as "System Licensed…

Long time AS/400 programmer here. I think the confusion arises from mixing the terms "SQL database" and what IBM refers to as the "Single-level Store" [1]. The AS/400 has true orthogonal persistence, much like a database engine. But for a few specialized exceptions, there are no "files" anywhere on an AS/400 like on a typical operating system. Everything is an "object" (yes, extremely overloaded term) and there are specific ways to perform actions against objects.

To add to this confusion, IBM ported DB/2 to OS/400 atop the native OS/400 data object model. You can use SQL but that just gets compiled to native operations against what are known as "physical files" (confusing name, yes) and "logical files". Physical files are fixed-length record files with data in them. Logical files are indexes atop physical files. A PC analog to this would be FoxPro, Dbase, Paradox, Alpha, etc.

Many OS/400 programs access these files using the native model; not SQL. Tandem and HP Non-Stop work in very similar ways.

[1] https://en.wikipedia.org/wiki/Single-level_store

Re: A dream of an ultimate OS (1995)

#82

Why not to trade a multitude of "custom" database managers for a single well-designed distributed database manager? It's not clear whether the author is arguing that all existing OS data structures should be replaced with a single database system, or if they simply want all OS data to be capable of being queried/updated via a standard database style interface. The former is simply hubris ("I know the perfect data str…

That's the beauty of the relational model, it doesn't specify data structures. Those can be added later by indexes. For more info check https://www.researchgate.net/publication/2364452_Data_Struct...

The set of indexes are a form of data structure though, with all the state juggling and heuristics that usually go along with them (What access pattern requires this index? When do I have too many of them? What locks when I add/drop an index?). This adds complexity and unpredictability to the user.

Re: A dream of an ultimate OS (1995)

#83
post #8

> But it does not have to be this way. If a database engine is implemented as a core system service, along with simple tools to browse and modify database records, the gordian knot of system configuration files disappears. MacOS comes very close to this ideal, with ResEdit as this universal database editor. Or AS/400, which is more or less a SQL database.

Or Windows with the registry. Wait...

The registry is basically a hierarchical filesystem with some tiny size limits.

Re: A dream of an ultimate OS (1995)

#84
An operating system with a built-in, default database provides tremendous advantages. Hewlett Packard's MPE (running on 3000 series) came with the Image database. Every third-party app count count on Image being available. Apps inter-operated and complemented each other; you didn't have to reinvent the wheel. Very effective.

Re: A dream of an ultimate OS (1995)

#85
Unrelated to the article, but the author (Oleg) is one of the star of the typed functional programming world. For example, one of his research project (BER MetaOCaml) is about generating typesafe OCaml at runtime (to improve performance mostly). I strongly recommend you to check this (http://okmij.org/ftp/ML/MetaOCaml.html) if you are interested in the field.

Re: A dream of an ultimate OS (1995)

#86

Earlier quoted context omitted.

> Or AS/400, which is more or less a SQL database. People keep on saying that, but how really true is it? Many operating systems come with bundled relational databases–e.g. most Linux distributions come with more than one relational database implementation bundled. Does that make Linux "more or less a SQL database"? How deeply integrated is DB2/400 into the OS/400 kernel (or equivalent term, such as "System Licensed…

Long time AS/400 programmer here. I think the confusion arises from mixing the terms "SQL database" and what IBM refers to as the "Single-level Store" [1]. The AS/400 has true orthogonal persistence, much like a database engine . But for a few specialized exceptions, there are no "files" anywhere on an AS/400 like on a typical operating system. Everything is an "object" (yes, extremely overloaded term) and there are…

So, my impression, is many applications for AS/400 are written in RPG or COBOL, languages which in their AS/400 implementations treat "files" really no differently than they do on any other platform. Or, similarly, DB2/400 stores database tables as these single-level store objects underneath, but to a programmer writing SQL queries, it doesn't really make much difference – the experience is pretty similar to writing SQL queries for DB2 for z/OS, DB2 for LUW, or DB2 for VSE/VM (and what differences do exist are more due to the divergent code bases of the different products than due to the single-level store.)

I get the impression that S/38 and OS/400 have some really interesting concepts at the core of the OS, but it is questionable how well the higher levels layered on top leverage those concepts.

"Everything is an object" would be a lot more powerful if IBM let customers/ISVs define their own object types, when as far as I am aware they don't. Yet IBM will define dozens upon dozens of object types for all kinds of obscure requirements, many of which are no longer even relevant today [1][2].

[1] https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/...

[2] https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/...

Re: A dream of an ultimate OS (1995)

#88
post #61

Oh, it's the every OS sucks story again. It's all about the user experience. System should be friend and still enable the user to increasingly get more out of the computer. It also needs to be extremely responsive. AmigaOS got a lot right back in the 80s. BeOS (and now Haiku as spiritual successor) took a lot from that (system kits vs amiga's default set of shared libraries, and the concept of datatypes) and added so…

You might want an exokernel, not a microkernel?

Re: A dream of an ultimate OS (1995)

#89
post #61

Oh, it's the every OS sucks story again. It's all about the user experience. System should be friend and still enable the user to increasingly get more out of the computer. It also needs to be extremely responsive. AmigaOS got a lot right back in the 80s. BeOS (and now Haiku as spiritual successor) took a lot from that (system kits vs amiga's default set of shared libraries, and the concept of datatypes) and added so…

> My dream of a general purpose OS is definitely an open source microkernel, multiserver RTOS with capabilities and an user experience that builds on those two systems. It is important for it to be an RTOS, as unbounded response times would make the system fail as a general purpose system and as a personal computer system.

This sounds more like a complete version of the Fuchsia Operating System, which has both technical and is more of a user-facing OS. That probably has more of a chance of meeting these requirements at the rate that it is being developed.

Re: A dream of an ultimate OS (1995)

#90
post #85

Unrelated to the article, but the author (Oleg) is one of the star of the typed functional programming world. For example, one of his research project (BER MetaOCaml) is about generating typesafe OCaml at runtime (to improve performance mostly). I strongly recommend you to check this ( http://okmij.org/ftp/ML/MetaOCaml.html ) if you are interested in the field.

Indeed. For example, the Sydney Paper Club (for discussing CS papers) was sometimes jokingly called the Oleg fan club.
Post reply on HN