Openbaar
Apple really really really does not want you to write kernel code.
Oorspronkelijk gedeeld door ****
"Kernel programming is a black art that should be avoided if at all possible. Fortunately, kernel programming is usually unnecessary."
https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/keepout/keepout.html
https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/keepout/keepout.html
34 eerdere reacties bekijken
Well.. who cares about microkernels? It's a cool concept, but not so cool in application. Just means slower running times and slower development (debugging is a bitch). Potentially better at memory starved systems, but what else?
The other OS Apple was looking at before they bought NeXT was BeOS. AFAIK BeOS wasn't micro, so probably microkernel wasn't on their requirement list.
BTW, I'm getting out of this thread before AST gets summoned.21 sep. 2012
+Brendan Moran Well, since OS X finds its foundations in NeXTSTEP, the question is why NeXTSTEP had to have a microkernel design in a time that those kinds of kernels were clearly in their infancy and because of performance issues, I feel, it wasn't ready for market?
At the time they would've been better of using BSD (according to Wikipedia Linux wasn't around for 2 more years or so, and that legacy +Linus Torvalds is probably why OS X doesn't run that superior kernel of yours).
On a sidenote:
+Henrý Þór Baldursson Apple probably just bought NeXT to get their "beloved" Steve back.21 sep. 2012
Whoa, before this gets out of hand, the point I was trying to make is that they may not have had much option if they needed a kernel--micro or not--with a BSD or similar license. I'm just talking about licensing, not features or performance.
The only reason I said microkernel is because of my earlier joke about them needing one, based on the document that +Greg Kroah-Hartman linked.22 sep. 2012
I was just reasoning backwards in time (to a couple of years before I was born really ...) to try to explain the reason for mach, but given the alternatives (BSD being the only stable one at the time, with the proper licensing).
One thing I still don't understand is why NeXT chose a microkernel in that time, while their OS was meant for a market not interested in distributing their workload over multiple machines?22 sep. 2012
That's pretty funny. Then they give a pretty nice high level overview to Darwin hacking, so I guess I'll forgive them :)25 sep. 2012
Linus, I've been through the kernel in both operating systems at differing points in time. I agree that given performance and in many cases overall structure, Linux is much better design for performance and even stability (especially in the cache structure).
That said, let's look at the obvious :
1) Licensing. Linux is a bitch for a company like Apple who likes to keep much of their code a trade secret.
2) Drivers. Yeh... Linux has drivers for more devices than anything else, but especially back then (remember this was 1998 or 1999), the ability to abstract the kernel driver API in order to allow vendors to produce closed source drivers was absolutely beyond reason.
3) Timing. Apple already had Nextstep to work with. They had their entire display postscript system and the entire OpenStep project which, while it did work on SunOS and Windows had been designed from the ground up for the BSD4.2 kernel. Linux ran REALLY well on x86 in '99, but I remember spending months trying to sort out all kinds of crazy issues on MIPS and ARM back then. GCC REALLY sucked during that 2.96 era and Apple already had their development tools for Nextstep. Building on another BSD was simply smarter for them back then. In the long term though, it may have cost them more. If I were a gambling man, I'd say that the piss-poor state of GCC during the 2.95.2 to 3.0 phase was a good enough reason to avoid all development with GCC at the time. I believe I recall using Yellow Box with the BSD C compiler.
OS X is a really nice operating system designed from the ground up with only one thing in mind ... money! Well... actually I think it was the user. And nearly everything on the operating system works nicely.. not necessarily well. When you look at a modern device like Android, each devices does something great! but everything else is bleh. Apple devices do absolutely nothing GREAT! but everything is average or slightly better than average. For them "Steady wins the race" has worked really well.
So to be honest, Apple didn't and doesn't need a good operating system kernel. To suggest they do is in total conflict with everything Apple. They need a platform to capitalize on they produced it. I fear that in coming years, with the death of Steve Jobs that Apple will try to become a technology company, it looks like it might be heading that way. It would be like Versace becoming a garment company. Both brands produce only so-so products, but they sell fashion and it works.18 okt. 2012
Reactie toevoegen...