5 ms·
Why would they do that? Mach allows for some cool stuff, like kernel extensions being isolated.
by Demiurge 13y ago
Why would they do that? Mach allows for some cool stuff, like kernel extensions being isolated.
- justincormack 13y agoBecause building and maintaining a competitive OS is a huge effort, and FreeBSD has lots of cool stuff which they can't use...
- Demiurge 13y agoIt's a huge effort worth that seems to be paying off quite handily. XNU seems like a competitive edge over the monolith FreeBSD, as far as desktop and mobile OS is concerned. FreeBSD has plenty of cool stuff, but in a completely different domain.
- asveikau 13y ago> XNU seems like a competitive edge over the monolith FreeBSD, as far as desktop and mobile OS is concerned. This seems a bit delusional. I don't think it's controversial to say that Apple's biggest differentiators exist at higher levels than kernel space. I'd go so far as to say that anyone who claims that Apple's success is rooted in XNU and that the same could not have been done with Linux or *BSD at the lowest layer and all other pieces being equal does not understand what a kernel is.
- Demiurge 13y agoI don't know anyone saying Apple's success is rooted in any one thing. However, IOKit is very important, "common code for device drivers, this framework also provides power management, driver stacking, automatic configuration, and dynamic loading of drivers". Even if the entire OSX could have been implemented on top of Linux and FreeBSD reusing those kernels (and it does reuse FreeBSD for low level POSIX apis!), how productive would that have been? I honestly don't know, but I choose to trust what I read from the original developers.
- justincormack 13y agoI was assuming they would port iokit as part of it...
- asveikau 13y agoThose other kernels have driver frameworks too. And if they find them inadequate for some reason, they are of course able to make modifications. But this is not a suggestion for them to scrap it, necessarily. As I said in some other comments on this thread, I think the real reason is that they had people that knew their existing kernel well, and don't see a need to replace it.
- valleyer 13y ago> XNU seems like a competitive edge over the monolith FreeBSD, xnu is also a monolithic kernel, just with some nice message-passing primitives. Think Mach 2.5.
- aaronem 13y agoDarwin + Aqua also has lots of cool stuff which *BSD can't use. I can see a competitive advantage in making sure that remains the case.
- comex 13y agoxnu kexts are not isolated and probably never will be, although IOKit exposes some things to userspace.
- Demiurge 13y agoThey're isolated enough that drivers can crash and just be reloaded, without a kernel panic.
- comex 13y agoNo, they are not. A crash in a kext causes a kernel panic.
- Demiurge 13y agoYou are right. An actual crash in kext causes kernel panic. I think I read that this is was possible, but I can't find how, and when, right now. The common thing that I'm thinking of is just voluntary error (exception) handling in kexts and reloading of kext on their own. There is some isolation and benefit to it. Edit: ok, I just figured out my source of confusion. IOKit allows userspace drivers, which can crash without resulting in panic.
- valleyer 13y agoIOKit allows communication between kexts and userland. You could call that "userland drivers", but it's not like you can write only userland code to implement a driver.