So there is one year to try out what might still be missing and give respective feedback.
The long term roadmap is that macOS will eventually be much more microkernel like.
So there is one year to try out what might still be missing and give respective feedback.
The long term roadmap is that macOS will eventually be much more microkernel like.
The fact that they're no longer going to allow loading of 3rd party kernel modules (a pure political decision) does not a make a microkernel (which is an architectural style).
The kernel is still going to be big and monolithic (it contains the entire BSD kernel in the same address space!), and they're still going to be loading Apple-authorized kernel modules (500MiB of them, according to the article) in the same address space.
Using a USB network adapter (requires for Ethernet on a MacBook) would bring down my system every time the firewall was running. And the stacktraces all included their calls.
I’m sure Apple, like me, got tired of getting reports about a few known bad actors.
I rather be happy for the improvements in the long term roadmap and overall outcome for the eco-system.
If you just consider disallowing 3rd party modules to be a "microkernel" all while the kernel itself still loads most if not all (approved) drivers such as PCI bus, storage devices or filesystems in the same address space, then _all_ current major operating systems are "microkernels".
What you call a kernel like that?
Locked?
"A kernel that only allows user-space third party drivers"?
That this style doesn't have a nifty name isn't a good reason to weaken the established definition of microkernel just so it does.
So, then it becomes a balancing act how many are allowed the priviledge to be part of the main act.
Well, that is kinda the point of a microkernel (or at least one of the points).
Sure, you're not going to have a kernel whatsoever without say an CPU/MMU driver in the same address space. Maybe a driver for the timer.
But when you have graphics, sound, storage, USB controllers, filesystems, networking and most of a BSD kernel (providing all the syscalls) in the same address space, now that is not a microkernel by any definition of the word.
XNU is called an "hybrid" kernel in part because in the original design the BSD parts implementing most of the actual system could have been spun off as a separate process (similar to Windows NT's original design), which would have been an actual microkernel, but in practice they were just stuck together in the same process, making it a monolithic kernel in all but name (just like in Windows).
> So, then it becomes a balancing act how many are allowed the priviledge to be part of the main act.
Yes.
Which is what pjmlp implies, once they are out, isn't it microkernel?
This isn't pedantic, nor is it ideology. If you're acquiescing, do it graciously and please refrain from name calling.
From all purposes from a third party driver writer persona, the only path forward are user space drivers.
What you call a kernel like that?
This is basically calling me silly, just as you were calling the previous person ideological and a pedant. If you cut out this commentary that would be great.
What you call a kernel like that?
macOS does not use “the” BSD kernel (it’s not even obvious what your assertion even means since there are many members of the BSD family, each with their own kernel - none of which macOS uses).
The monolithic vs microkernel debate was pretty clueless at times. Core Linux is smaller than dito hurd when configured with similar functionality.
OSX mach has always been a hybrid kernel. In a sense Linux is too but you can also configure it as a mostly-monolithic thing, and most seem to prefer that.
Likewise, eBPF allows userspace programs to perform some work inside kernel space to reduce syscalls.
I wonder if io-uring won't be a starting point for a "microkernelization" of Linux. It seems really effective as a message-passing interface.
https://source.android.com/devices/architecture/hal-types
The Switch (yes the games console) uses a microkernel.
QNX an OS for human critical scenarios is a microkernel.
Finally, when arguing Linux vs Minix/Hurd, think of the irony of running Linux on top of a cloud hypervisor, with an endless load of Kubernetes or Docker loads.
Hmm, Never thought about a stated OS focus like that. Off to look it up. Good mention