Live data from Hacker News

CharlotteOS – An Experimental Modern Operating System

github.com

101–104 of 104 posts

Re: CharlotteOS – An Experimental Modern Operating System

#101

Earlier quoted context omitted.

I could go for something like MINIX, i.e. the microkernel architecture. If a driver dies, it gets "resurrected", and so forth.

Why? Faulty drivers shouldn't be restarted. I never understood that argument in favor of microkernels.

https://wiki.minix3.org/doku.php?id=www:documentation:featur... seems pretty appealing to me.

Read more about it here: https://wiki.minix3.org/doku.php?id=releases:3.2.0:developer...

> In Minix as a microkernel, device drivers are separate programs which send and receive message to communicate with the other operating system components. Device drivers, like any other program, may contain bugs and could crash at any point in time. The Reincarnation server will attempt to restart device drivers when it notices they are abruptly killed by the kernel due to a crash, or in our case when they exit(2) unexpectedly. You can see the Reincarnation Server in the process list as rs, if you use the ps(1) command. The Reincarnation Server sends keep-a-live messages to each running device driver on the system periodically, to ensure they are still responsible and not i.e. stuck in an infinite loop.

The point is that when failures do occur, they can be isolated and recovered from without compromising system stability. In a monolithic kernel, a faulty driver can crash the entire system; in a microkernel design, it can be restarted independently, preserving uptime and isolating the fault domain.

Hardware glitches, transient race conditions, and unforeseen edge cases are unavoidable at scale. A microkernel architecture treats these as recoverable events rather than fatal ones.

This is conceptually similar to how the BEAM VM handles supervision in Erlang and Elixir; processes are cheap and disposable, and supervisors ensure that the system as a whole remains consistent even when individual components fail. The same reasoning applies in OS design: minimizing the blast radius of a failure is often more valuable than trying to prevent every possible fault.

In practice, the "driver resurrection" model makes sense in environments where high availability and fault isolation are critical, such as embedded systems, aerospace, and critical infrastructure. It's the same philosophy that systems like seL4 and QNX goes by.

Do you understand now?

Re: CharlotteOS – An Experimental Modern Operating System

#102

Earlier quoted context omitted.

I’m really not sure what I said that warranted this reaction. I was literally talking about Microsoft moving the compositor that was inside the kernel in their old Windows 9x kernel architecture to outside the kernel in Windows NT. That literally every other kernel (OSS and comercial, Unix and not) does this separation suggests this is a generally accepted good security practice. I’m not aware of any kernel research…

What security risk exists in blitting together memory buffers and doing some alpha blending? Because that's all compositing is. And Linux, Windows and all the other popular OSes all use memory regions that are shared between the kernel and userspace in ways that are far worse than for putting together an image to display.Your supposed security concern is a total non-issue. There's no possible way that data which will…

I’m not an expert but if believe the challenge is when

* you try to do GPU compositing things get more complicated. You mention you have no interest in GPU compositing but that’s quite rare

* a lot of such exploits come from confusing the kernel about the buffer to use as input/output and then all sorts of mayhem ensues (eg giving it an input buffer from a differ process so the kernel renders to the screen a crypto key in another process or arranging it to clobber some kernel buffers)

* stability - a bug in the compositor panicks the entire machine instead of gracefully restarting the compositor.

But ultimately you’re the one claiming you’re the domain expert. You should be explaining to me why other OSes made the choices they did and why they’re no longer relevant.

Re: CharlotteOS – An Experimental Modern Operating System

#103

Earlier quoted context omitted.

I could go for something like MINIX, i.e. the microkernel architecture. If a driver dies, it gets "resurrected", and so forth.

Why? Faulty drivers shouldn't be restarted. I never understood that argument in favor of microkernels.

Don't let me tell you how a unreadable CDROM could block the unit forever in OpenVMS just because.

Re: CharlotteOS – An Experimental Modern Operating System

#104
post #48

This is probably a better introduction it seems, than specifically the kernel of the OS: https://github.com/charlotte-os/.github/blob/main/profile/RE... > URIs as namespace paths allowing access to system resources both locally and on the network without mounting or unmounting anything This is such an attractive idea, and I'm gonna give it a try just because I want something with this idea to succeed. Seems the proje…

In theory, wouldn't it be possible for the Linux kernel to also provide a URI "auto mount" extension too?

Paths are not full URIs. You can do hacks like /https:/example.com/foo but.. why?

I'm personally not at all convinced having a scheme multiplexer in front is a good thing, for a namespace like what a kernel would manage. It's just not really any different from having top-level /foo and /bar, and introduces a bunch of special cases. Windows drive letters suck for a reason.

Post reply on HN