5 ms·
I am quite sure that we have been other this several times in HN. The fact that they're no longer going to allow loading of 3rd party kernel modules (a pure po
by AshamedCaptain 5y ago
I am quite sure that we have been other this several times in HN.
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.
- pjmlp 5y agoAs you wish, I am no longer going to debate the pedantic meaning of pure microkernel ideology. I rather be happy for the improvements in the long term roadmap and overall outcome for the eco-system.
- AshamedCaptain 5y ago"Pedantic"? 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".
- pjmlp 5y agoFrom all pratical purposes for a third party driver writer persona, the only path forward are user space drivers. What you call a kernel like that?
- Nursie 5y agoTivoised?
- Bjartr 5y agoNon-extensible? 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.
- pjmlp 5y agoIt is kind of hard to implement a mikrokernel without any kind of drivers on the kernel. So, then it becomes a balancing act how many are allowed the priviledge to be part of the main act.
- AshamedCaptain 5y ago> It is kind of hard to implement a mikrokernel without any kind of drivers on the kernel. 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.
- ksec 5y agoI was under the impression Apple intend to move those ( including their own ) outside as well with NetworkKit and DriverKit? Which is what pjmlp implies, once they are out, isn't it microkernel?
- AshamedCaptain 5y agoBut they do not plan to move their own out, which is the point. That would require significant rearchitecture.
- tinus_hn 5y agoIt’s not about pedantry; whatever rules you define for a micro kernel it shouldn’t be rules for thee but not for me
- robertlagrant 5y ago> As you wish, I am no longer going to debate the pedantic meaning of pure microkernel ideology. This isn't pedantic, nor is it ideology. If you're acquiescing, do it graciously and please refrain from name calling.
- pjmlp 5y agoWhat a sensible world we live on nowadays, that wasn't name calling in any sense. 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?
- robertlagrant 5y ago> What a sensible world we live on nowadays 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.
- pjmlp 5y agoYou are the one playing the victim here, I am not attacking anyone.
- robertlagrant 5y agoI don't feel victimised; I didn't mention you attacking anyone. I'm just requesting removing the noise to boost the signal.
- jen20 5y ago> The kernel is still going to be big and monolithic (it contains the entire BSD kernel in the same address space!) 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).
- AlotOfReading 5y agoI'd assume they're talking about XNU, which ultimately derives from "the" original Berkeley distribution like all of the other BSDs.
- tyingq 5y agoLarge parts of XNU come from both 4.3BSD and FreeBSD.
- Others 5y agoHow is removing 3rd party kernel modules a “pure political decision”. Do you really believe there are no technical/security factors behind this choice?
- AshamedCaptain 5y agoWhat I mean is that it involves a policy setting, but little to no technical change. You cannot create a microkernel just because you declare 3rd party extensions to be banned. In order to classify yourself as a certain architecture you actually need that architecture first.
- jjtheblunt 5y agoIt's an engineering decision : buggy kernel extensions bring down the OS.
- mbreese 5y agoAgreed. Given the number of times I personally reported a buggy (IT mandated) firewall for crashing my system, I am extremely happy that they moved extensions out of the kernel. The extension makers who wrote poor quality code have only themselves to blame for the situation. 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.