Kartik Agaram
tbabb
10/02/2019, 5:30 PMcat
and not something else?
In my view, this is all poking at the problem of (a) serializing in-memory data structures, and (b) that serialized data is untyped. The end result is that everyone invents their own system for recreating structure and type. The fundamental problem being solved is that organized data needs to be shared, either between processes, between process invocations, or between entirely different machines. The same problems come up when processes communicate with pipes— one spits out text, and the other inverts the spitting-out process. In general, how do you cause a pattern of organized data like the one you currently have to appear in the memory of a computer program at different place and time?
In the system I am working on, which is (for the time being) less ambitious than an OS, there is no concept of a "program" as distinct from a function. You could make a self-contained "piece of software" which is then directly composable with other "software", and the medium of information exchange is in-memory data structures.
It would be nice if we could do something like this in an OS; send a data structure to another program/invocation directly. Why are programs less composable than APIs? Why is it exactly that the boundary between programs is not identical to the boundary between functions? Why exactly do we serialize data across that boundary? Is that an unavoidable requirement? Could the OS make it transparent?Doug Moen
10/02/2019, 6:42 PMEdward de Jong / Beads Project
10/02/2019, 10:40 PMKartik Agaram
If there a reason to name thisBecause it uses just the syscalls?cat
read()
and write()
.
Even if every int took up 4KB there's some use case where that's acceptable. However, in Linux, directories already inline files for the first 4KB to some number of inodes, IIRC. Also, one of the two ideas I alluded to was to use a single file for storage but allow reading inside it as if it were a directory. That doesn't have the storage inefficiency. But of course that was a lot to squeeze into 500 characters so nobody is expected to actually understand what I meant 🙂gman
10/18/2019, 6:06 AM