Live data from Hacker News

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

github.com

41–50 of 63 posts

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

#41
post #36
post #26

Earlier quoted context omitted.

You are seeing a creation date bias. And it doesn't help that there just aren't that many systems programming languages. Until Rust in 2010, there basically was almost no motion in the "system programming space". Even afterward, there needs to be enough uptake to actually have critical mass. Only then can people start using it for projects. Side note: D actually predates a lot of this by being from 2001, but, sadly,…

> Side note: D actually predates a lot of this by being from 2001, but, sadly, never seemed to get any traction. It seems like it had the misfortune of being about 10 years too early and that programmers just weren't ready for a new systems programming language at that point. I was only a kid starting my university degree at that time, but I had been coding since I was 9 and I was very excited about D. What I remembe…

Yea D stagnated due to some terrible decisions by Digital Mars.. it never built a serious community.

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

#42

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…

OOP is especially good for making UI toolkit. If you look at GTK+ and Win32 closely, you’ll notice that they all sport some kind of a homegrown class system, complete with inheritance and polymorphism.

It’s popular to dunk on OOP and its concepts nowadays, but I think that languages that straight away shun them because “OOP sucks” are an example of their authors overreacting to OOP’s dominance back in 1990s-early 2000s and tendencies to shove OOP into every nook and cranny, with a notion that if you don’t do it, or do not enough of it, your solution is inferior.

Holy hell. Linux kernel is object-oriented. Because it’s damn convenient for a lot of things.

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

#43

Earlier quoted context omitted.

Completely amazed that you could write this comprehensive reply just like that.

I guess I’m just a bit obsessed with Golden Age Microsoft, having grown up during that time without understanding much of what was going on. My original point, though, was that they had some very nice, perhaps thesis-chapter-worthy points that ended up buried in the specifics of (and on more than one occasion, in the same grave as) their products. Windows’s, well, windows as a object/concurrency system are one (even…

Recursive mutexes are a terrible idea, except maybe in context. In a world where you can SendMessage a message to yourself or to another window in the same thread, process the message synchronously, and then return back to where you were, you have essentially uncontrolled reentrancy. If you want to throw mutexes into the mix, they pretty much need to be recursive. Then you get to acquire the mutex in a message handler to protect against other threads, and everything sort of works.

In my own code, I try fairly hard to avoid this sort of reentrancy.

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

#44
post #14

Earlier quoted context omitted.

> 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

Kind of. He stops somewhat short of admitting that Win16/32 windows are objects and their graphical representation is mostly incidental. That’s not a bad thing—the book is introductory on many topics, in a good way, and just dropping such an idea somewhere in the beginning portions would be more confusing than helpful for the intended audience. That audience would almost certainly not be helped by the observation tha…

this is such a valuable comment. thank you for writing what may be the best guide to microsoft windows documentation i've ever seen

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

#46

This is mostly a note to myself. It's interesting to consider "what next" once an OS project reaches this stage. There are soo many directions a team can take, but also, none of those direction lead to a clear path towards massive user adoption. There are obvious holes/gaps in what mainstream OSes offer today, however it is not clear how a project goes from here to addressing those gaps, and even if those were to be…

rather than displace mainstream os's what id rather have is some way to easily switch os depending on my task, gaming? windows, anything else? linux (for now), and have that run directly on the hardware with little interference... like a meta task switcher os. someone is going to come on here and tell me we already have this (i hope). ive been out of computing for so long i dont know if this reliably exists, but back…

A hypervisor does what you want, though note that the low level ones that run as the OS are generally geared towards servers, not desktops

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

#47
post #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.

Theoretically, since it has a few real world drivers, it may be possible to run on real world hardware, but in practice, Managarm tends to get hung up very low level, at Eir or Thor (the two components of the microkernel). Since basically all the testing is currently done on QEMU, real world testing isn't really a thing for Managarm

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

#48

[flagged]

I don't think it's hubristic to describe what philosophy it hews to. The opposite of "pragmatic" here would be "without compromise"/"principled". They know they are willing to make compromises in the name of expediency, so calling it pragmatic is just a declaration of intent, not a boast in front of the Olympian gods.

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

#49

Earlier quoted context omitted.

rather than displace mainstream os's what id rather have is some way to easily switch os depending on my task, gaming? windows, anything else? linux (for now), and have that run directly on the hardware with little interference... like a meta task switcher os. someone is going to come on here and tell me we already have this (i hope). ive been out of computing for so long i dont know if this reliably exists, but back…

and since i dont trust windows to host my work os securely, and performance of games would be abysmal with the hosting roles reversed, what i really need is 2 boxes and a kvm switch!. the question now becomes, are there physical systems that turn on and off at the same time... i.e. share a psu but host different os's! suppose i could build my own am i looking at building a rack mounted system? heh, think i just found…

You can avoid the kvm with a cheap USB switch and software.

https://github.com/haimgel/display-switch

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

#50

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:…

[deleted]
Post reply on HN