💾 Archived View for dioskouroi.xyz › thread › 29386605 captured on 2021-11-30 at 20:18:30. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

The Essence operating system at Handmade Seattle 2021 [video]

Author: abnercoimbre

Score: 125

Comments: 38

Date: 2021-11-29 23:15:22

Web Link

________________________________________________________________________________

Hammershaft wrote at 2021-11-30 00:04:02:

God I would kill to make the pipe dream of competition in the OS space happen, there are many interesting hobbyist projects like this that just peak at some of the features and ideas that the current dominant operating systems don't touch.

1_player wrote at 2021-11-30 01:01:15:

There are two huge hurdles that no hobby operating system can realistically overcome, without major tradeoffs (like being 100% POSIX-compatible): accelerated graphics, which in this day and age are required even for basic 2D rendering, especially if you have a hidpi monitor, and a web browser. Everything else, compared to those two problems, is easy stuff.

Graphics is just incredibly complex, opaque and obtuse kernel-space logic with tons of corner cases.

Web browsing for normal day-to-day usage is about a million lines of code, +/- one order of magnitude.

TheDong wrote at 2021-11-30 02:54:47:

I would place "driver support" as on the same level.

Porting a web browser to work on your platform (chromium, webkit) doesn't require rewriting the whole thing, and chromium etc already are designed in a way to isolate browser code from OS-specific code (as we can see by chromium code for windows/linux/macOS/android being mostly shared).

On the other hand, making it so your OS works with the large number of common USB devices, networking chips, etc... it's a fantastical effort which linux only barely manages to accomplish.

ncmncm wrote at 2021-11-30 12:12:26:

Drivers and mind share are the only serious problems. Emulating Posix is not a debilitating chore. The browser can run adequately under OS emulation. Getting Vulkan ported is doable. Anyway, ordinary CPU cores are good enough for all but game graphics.

But the overwhelming mass of devices to drive is the show-stopper. Probably the best that can be done is to implement drivers for Qemu virtual devices, and run under a hypervisor that has drivers for real things.

toast0 wrote at 2021-11-30 05:44:24:

Drivers are mostly not too hard, you just have to do them. USB seems like a challenge though. If your driver model isn't too wild, you can repurpose drivers from the BSDs and Linux. And maybe even windows networking drivers if ndis works for you.

A 1.0 launch really doesn't need to support everything. It just needs to support a large enough handful of common devices. Hell, Apple OSes barely support any hardware.

errantspark wrote at 2021-11-30 05:48:04:

> Drivers are mostly not too hard

Except when they are, which is anytime something is poorly documented, which is pretty much all the time. Let's not even get started on vendors who don't _WANT_ you to write drivers for their hardware.

> Hell, Apple OSes barely support any hardware.

Would be interesting to see an OS target specifically Apple HW to make it a bit easier on the devs.

toast0 wrote at 2021-11-30 06:14:22:

For any hardware you're likely to support on v1, there's probably a FreeBSD driver, a NetBSD driver, a Linux driver, and if you're lucky a leaked datasheet that's easy to search for. And a windows driver if you're desperate enough to disassemble that.

If that's not documentation, I dunno what is. Each of them will be wrong, of course, but they're all likely to be wrong differently, so you can learn from the differences.

xyzzyz wrote at 2021-11-30 04:36:39:

This can be somewhat mitigated by running these OSes as VM guests, under Linux (or Windows) supervisor. That way, you only need to implement the virt devices. This makes some things not achievable (e.g. 0.7s startup time), but can make bootstrap phase of growth much easier.

leoc wrote at 2021-11-30 05:42:21:

“Linux is a free set of buggy device drivers”

https://news.ycombinator.com/item?id=13660437

DeathArrow wrote at 2021-11-30 09:52:03:

And a POSIX layer.

skywal_l wrote at 2021-11-30 06:51:46:

Web browsers are not part of the OS I believe. It's an application that can be ported to your OS.

Note though that at the same event, a few days earlier, a hobby OS was presented which ship with its own ex-nihilo web browser implementation: SerenityOS [0]. There is still a lot to go but apparently they have:

1. A lot of resources (dozens of active developers).

2. A plan (meaning organization, resources, tooling, etc).

It's still a hobby thing but it's promising.

[0]:

https://news.ycombinator.com/item?id=29270776

abnercoimbre wrote at 2021-11-30 17:49:49:

We should highlight the creator has garnered enough support to work on SerenityOS full-time [0]. That would make it not-a-hobby in some important way.

[0]

https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...

selfhoster11 wrote at 2021-11-30 17:18:37:

Serenity OS has addressed the browser problem with a shocking amount of energy. If anything, it proves that the dream is possible.

abnercoimbre wrote at 2021-11-30 17:25:01:

For those wondering the SerenityOS demo is also up on Handmade Seattle [0], which touches on the browser.

[0]

https://media.handmade-seattle.com/serenityos

DeathArrow wrote at 2021-11-30 09:48:36:

Having 3D support and a browser is far from enough. Unless people have access to the the apps they need, they aren't going to use that OS. And they won't settle with alternatives they deem subpar.

An OS is only a means to run software. Nothing more.

newobj wrote at 2021-11-30 01:17:39:

At last count there are 5 major operating systems with >100M users, how many are required in order for there to be "competition"?

deusum wrote at 2021-11-30 03:22:45:

Windows

Linux

Android based on Linux

macOS (based on FreeBSD)

iOS also based on BSD

So, mostly three. Especially considering the BSDs' wide server presence.

jfb wrote at 2021-11-30 14:00:36:

Darwin is much further from BSD than Android is from mainline Linux, and the Android/Linux distinction is entirely sufficient to call them different operating systems.

I think you can accurately say that there are either two or five distinct operating systems in wide consumer use at the moment: Windows and Unix, or Windows, macOS, iOS, Android and Linux.

Flankk wrote at 2021-11-29 23:31:25:

Using the window as the application launcher is genius. Tabbed windows at the OS level is also great. I'm honestly blown away by this.

clavicat wrote at 2021-11-30 02:38:20:

It’s so simple but absolutely brilliant. The only thing the new tab page needs is a search box that searches programs and files.

This one person single-handedly “solved” the windows UI paradigm. This is how it should’ve been from the start. There was never any need for a non-window box like a start menu.

Microsoft, please hire this man and appoint him dictator of UX.

jeremyevans wrote at 2021-11-30 02:24:01:

If you're using X, the fluxbox window manager supports tabbed windows:

http://fluxbox.org/

afranchuk wrote at 2021-11-30 00:15:03:

Yeah I've always wished for something like that. That also gives (presumably) a much stronger programmatic association between windows (GUIs) and processes. Trying to programmatically figure those things out in e.g. X11 is sloppy at best.

mananaysiempre wrote at 2021-11-30 13:36:49:

Note that Haiku has OS-, or rather WM-level tabs, too, even if they qualify for one of the most non-discoverable GUI features ever[1] (apparently the idea comes from the original BeOS). Their web browser doesn’t use them, though.

[1]:

https://www.haiku-os.org/docs/userguide/en/gui.html#stack-ti...

Wherecombinator wrote at 2021-11-30 00:22:53:

Oh that’s really cool. Wonder if there’s an add on for windows/mac/Linux that achiever the same functionality

Fr0styMatt88 wrote at 2021-11-30 00:38:51:

One I know of for application windows with tabs in Windows is Stardock Groupy:

https://www.stardock.com/products/groupy/

46756e wrote at 2021-11-30 00:38:50:

Didn't know about this Handmade Seattle Conference until these recent links, but these OS demos have become my favorite posts on Hacker news.

I'm sure most regular users saw the post, but there was one on SerenityOS that was also very cool.

Barrin92 wrote at 2021-11-30 02:14:57:

Casey Muratori whose game project I think is the original inspiration for the Handmade community over the years also has streamed hundreds of hours of building a game entirely from scratch, I've learned quite a lot from them.

https://www.youtube.com/playlist?list=PLnuhp3Xd9PYTt6svyQPyR...

tibbydudeza wrote at 2021-11-30 00:04:25:

Seems he wrote his own kernel/drivers/network stack - it is not based on linux.

phendrenad2 wrote at 2021-11-30 06:22:49:

The GUI is cool and all, but someone could implement that for Linux or BSD. I'm more interested in how the kernel differs from Linux, and what the plan is to increase hardware support (if any).

ncmncm wrote at 2021-11-30 12:28:47:

The future of OS design, if it has a future, is kernel bypass.

The kernel will only manage access to resources, usually described as the "control plane", while the data bypasses the kernel, via the "data plane", handed over to programs. Virtual memory mapping is another dead end. Programs will be compiled by a trusted compiler that makes memory misuse impossible, so there is no need to hide anything.

The huge mass of kernel-mode code in Linux the BSDs, and NT is a major liability.

Of course all the Posixy browser desktop stuff where performance doesn't matter will run under emulation.

lerno wrote at 2021-11-30 10:35:00:

I believe the kernel design is inspired by the original NT design.

afranchuk wrote at 2021-11-30 00:15:55:

This looks very lean (in a good way). Naturally he's only demoing what works well but there really is a lot here!

mast22 wrote at 2021-11-30 10:53:49:

Handmade OS but a mile ahead of Apple with that snap window feature. Just my frustration after using Mac for the first time.

Jerry2 wrote at 2021-11-30 20:33:10:

if that's your only complaint, it's very simple to fix: SpectacleApp

Source:

https://github.com/eczarny/spectacle

Download:

https://spectacleapp.com/

grzm wrote at 2021-11-30 20:37:16:

Spectacle is no longer being maintained. I find Rectangle to be a good replacement.

https://rectangleapp.com/

open-source-ux wrote at 2021-11-30 19:45:01:

A very impressive demo. It's refreshing to come across new user interfaces or operating system ideas like this.

I'm intrigued by a comment from the creator: he dislikes Unix. Among many developers, this is tantamount to blasphemy.

It’s a shame the author didn’t expand on his reasons. A reasonable critique of Unix-like operating systems should always we welcome given the stranglehold Unix sways over developers.

tmilard wrote at 2021-11-30 05:05:02:

It is refreshing to see so many good new GUI ideas.

Most of them I had never thought of.

Some people are born more creative and more clever than others.

A leader

8bitsrule wrote at 2021-11-30 02:58:56:

So far it looks great (except for the gnomish minimalism). I'll take a longer look when that blinding white theme the demo uses is changed to dark. (A nice feature that most OS's have.)