Live data from Hacker News

Essence: Desktop operating system built from scratch

nakst.gitlab.io

81–90 of 299 posts

Re: Essence: Desktop operating system built from scratch

#82
Spent some time reading through the networking stack, scheduler, synchronization, and networking device driver. It was a total breath of fresh air to read code in this area that wasn't a total spaghetti of years of maintenance and feature creep. Really happy to see a project like this!

Re: Essence: Desktop operating system built from scratch

#83

This is an amazing piece of work, but it's clearly a labor of love: this isn't going to have any real-world use any time soon. Where operating systems are headed is more towards security (process isolation, bulletproof input etc), not lightweight GUIs on top of thin kernels like this. Are there any passion (or other) projects that explore this? I know about Qubes, but that's more like a heavy layer on top of a heavy…

[deleted]

Re: Essence: Desktop operating system built from scratch

#85
post #49

Earlier quoted context omitted.

> Showing total size of subdirectories is expensive To me the real obstacle isn't that it's expensive (I mean, you could ostensibly cache the size on disk for each directory, if not find some other clever algorithmic solution), but that the notion of "size of a directory" itself isn't all that meaningful in the presence of e.g. hardlinks.

Roughly 0% of a typical desktop’s disk space is used by hardlinked files. You can safely double count them. That’s exactly what every disk space analyzer does! If you really wanna avoid double counting, just divide the size of every file by st_nlink. Of course you’d have to update the cached sizes of every directory that has a link to that inode so you’d need to cache the mapping from inodes to paths too. Another sol…

[deleted]

Re: Essence: Desktop operating system built from scratch

#86
post #49

Earlier quoted context omitted.

Roughly 0% of a typical desktop’s disk space is used by hardlinked files. You can safely double count them. That’s exactly what every disk space analyzer does! If you really wanna avoid double counting, just divide the size of every file by st_nlink. Of course you’d have to update the cached sizes of every directory that has a link to that inode so you’d need to cache the mapping from inodes to paths too. Another sol…

Not sure what you consider a "typical desktop", but on Windows, WinSxS has gigabytes worth of hardlinks. If you don't care about them that's another matter I guess.

Also note that the user will be confused when they delete the whole directory and observe 0 bytes get freed. (I guess a similar problem is also there even if you double count.)

The point is, the problem itself is-ill defined. There's no solution to that other than scrapping or redefining the problem itself. And it's hard to define the problem precisely for a non-technical user.

Re: Essence: Desktop operating system built from scratch

#87
Very cool. Nice that it runs without all the processes... But that will come at a certain point haha.

I like that they implemented composing tabs between different applications. This is the way I try to organize work/projecta/projectb/personal use, but it never works with current osses.

Spaces in macOS is actually kind of useless, because certain applications have windows across screens (finder, chrome).

Tabbed Finder windows are the most useless thing ever.. It's Apple listening to HN haha.

Anyway, screenshot on twitter: https://twitter.com/_nakst/status/1477247856805351425/photo/... and gitlab https://gitlab.com/nakst/essence

Re: Essence: Desktop operating system built from scratch

#88
post #67
post #20

Earlier quoted context omitted.

What’s the state of the art for file systems in the age of M2 drives that are bonkers fast? I dunno about everyone else, but knowing hierarchically where my disk space is going is a really common concern.

I would imagine, the “m2 fast” is visible more in reading medium sized files than 100k tiny reads (when recursively querying directories like this case GP is taking about) To make GP’s use case better, FS really needs an custom index or require that every write also update all hierarchy. Unless of course they work like indexers and just work with delayed data

Yes, main speed improvement with SSDs come now via IOP/s, for metadata, small file ops like this.

Re: Essence: Desktop operating system built from scratch

#89
There are a lot of experimental/hobby OSs coming out recently, and it's great to see new ideas. I'd love to see more experimentation with stable driver API/ABIs. Decoupling drivers from the kernel might improve hardware support, because those with deep hardware knowledge could come in, write a driver, and then no one would ever have to update it just because of kernel changes.

Re: Essence: Desktop operating system built from scratch

#90

Earlier quoted context omitted.

Really, there should be two file sizes: "how much space this will take if I copy it to other filesystem" and "how much space will be freed if I delete this"

Well, three, "how many bytes do I get if I open it and read all the bytes out". Or maybe four, how many bytes do I get if I open it and read all bytes which aren't holes (ie. how many bytes do I need to put into an archive that supports sparse files) :)

I would expect at least one of those cases to be identical to "how much space this will take if I copy it to other filesystem" if you're asking a generic question where the target is a hypothetical and therefore you have to say how many bytes would be taken by the raw files since everything else requires knowing specific details about the target.
Post reply on HN