Live data from Hacker News

Managarm: Pragmatic microkernel-based OS with asynchronous I/O

github.com

11–20 of 63 posts

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#11

people always say that C++ is not a good fit for kernels, but so far this is the only language I know where small teams or individuals are regularly able to create non-trivial hobby OSes from scratch that go from zero to GUI: - Serenity ( https://github.com/SerenityOS/serenity ) - not really a small team, but it managed to get to GUI as pretty much a one-man-show - Skift ( https://github.com/skift-org/skift ) - hhu:…

I think C++ is especially good for a GUI.

The two counter-examples I can think of with plain C:

* GTK+, though honestly speaking I think quality has dipped over the decades where C++ equivalents have flourished.

* Old school Win32 style. Counter to the bad reputation, I find it easy to be productive with in plain C once you adjust your mental model to its expectations. Though it's probably better from C++ than C, for a few convenience features to reduce boiler plate.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#12

people always say that C++ is not a good fit for kernels, but so far this is the only language I know where small teams or individuals are regularly able to create non-trivial hobby OSes from scratch that go from zero to GUI: - Serenity ( https://github.com/SerenityOS/serenity ) - not really a small team, but it managed to get to GUI as pretty much a one-man-show - Skift ( https://github.com/skift-org/skift ) - hhu:…

I think C++ is especially good for a GUI. The two counter-examples I can think of with plain C: * GTK+, though honestly speaking I think quality has dipped over the decades where C++ equivalents have flourished. * Old school Win32 style. Counter to the bad reputation, I find it easy to be productive with in plain C once you adjust your mental model to its expectations. Though it's probably better from C++ than C, for…

Old Win32 style received less attention than it deserves, I think. It's an object system in its own right—a Smalltalkish one, at that, with an (admittedly muddled) E-style separation of synchronous and asynchronous calls!—but one rarely sees it mentioned in the same sentence as Objective-C, C++, and GObject/Vala. Part of the blame for that undoubtedly rests on Microsoft’s incompetence at documenting concepts, but whatever the causes I’d definitely like to see that corner of the object-system design space explored more, with or without GUIs.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#13

Earlier quoted context omitted.

I think C++ is especially good for a GUI. The two counter-examples I can think of with plain C: * GTK+, though honestly speaking I think quality has dipped over the decades where C++ equivalents have flourished. * Old school Win32 style. Counter to the bad reputation, I find it easy to be productive with in plain C once you adjust your mental model to its expectations. Though it's probably better from C++ than C, for…

Old Win32 style received less attention than it deserves, I think. It's an object system in its own right—a Smalltalkish one, at that, with an (admittedly muddled) E-style separation of synchronous and asynchronous calls!—but one rarely sees it mentioned in the same sentence as Objective-C, C++, and GObject/Vala. Part of the blame for that undoubtedly rests on Microsoft’s incompetence at documenting concepts, but wha…

When win32 was dominant they didn't need to document it, people had the motivation to figure it out.

Successive waves of Microsoft people then tried to make it easier to use or replace it entirely, which, they never did so with the same quality as the original.

Unfortunately some of those misadventures became synonymous with building a windows UI.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#14

Earlier quoted context omitted.

I think C++ is especially good for a GUI. The two counter-examples I can think of with plain C: * GTK+, though honestly speaking I think quality has dipped over the decades where C++ equivalents have flourished. * Old school Win32 style. Counter to the bad reputation, I find it easy to be productive with in plain C once you adjust your mental model to its expectations. Though it's probably better from C++ than C, for…

Old Win32 style received less attention than it deserves, I think. It's an object system in its own right—a Smalltalkish one, at that, with an (admittedly muddled) E-style separation of synchronous and asynchronous calls!—but one rarely sees it mentioned in the same sentence as Objective-C, C++, and GObject/Vala. Part of the blame for that undoubtedly rests on Microsoft’s incompetence at documenting concepts, but wha…

> Part of the blame for that undoubtedly rests on Microsoft’s incompetence at documenting concepts

I mean Charles Petzold did that so successfully redoing it would be superfluous

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#17
Very neat project! It appears to run on qemu. Can someone tell me at the 30,000' view what's required to get it running on actual hardware? I'm imagining something like signed boot manager, hard disk drivers, etc. They seem to have a ton of USB stuff working which seems amazing to me, but I've been out of the low-level PC loop for a couple decades and don't know what prevents working on bare metal in 2024.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#18

[flagged]

WDYM? 'pragmatic' here means 'not necessarily purely microkernel-y if very difficult'. for instance, the memory manager is in the kernel in managarm

But this "not necessarily purely microkernel-y if very difficult" interpretation essentially means that Windows NT is pragmatic.

Because this is pretty much exactly how NT came to be the mess it now is.

I wonder if the parent commenter's point is that really, almost any OS design can be called "pragmatic", and therefore stressing it is particularly prideful.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#19
post #9

people always say that C++ is not a good fit for kernels, but so far this is the only language I know where small teams or individuals are regularly able to create non-trivial hobby OSes from scratch that go from zero to GUI: - Serenity ( https://github.com/SerenityOS/serenity ) - not really a small team, but it managed to get to GUI as pretty much a one-man-show - Skift ( https://github.com/skift-org/skift ) - hhu:…

Is the kernel really the differentiator there? seL4 is a Proven microkernel that is some 9000 lines of C. This ancient SO post[0] claims Linux is 140k lines. The kernel is just a tiny component of the many things required to get an OS up and running. I suspect most projects just peter out as the enormity of the complexity becomes apparent. [0] https://unix.stackexchange.com/questions/223746/why-is-the-l...

That's just the architecture and driver independent part of the kernel. The kernel source tree is 15M lines or so.

Re: Managarm: Pragmatic microkernel-based OS with asynchronous I/O

#20

Earlier quoted context omitted.

WDYM? 'pragmatic' here means 'not necessarily purely microkernel-y if very difficult'. for instance, the memory manager is in the kernel in managarm

But this "not necessarily purely microkernel-y if very difficult" interpretation essentially means that Windows NT is pragmatic. Because this is pretty much exactly how NT came to be the mess it now is. I wonder if the parent commenter's point is that really, almost any OS design can be called "pragmatic", and therefore stressing it is particularly prideful.

NT is no microkernel, nor has it ever been. It has always been monolithic.
Post reply on HN