OS X Kernel Overview
Don Negro writes: "Found this on Apple's Developer site. A solid overview of the OS X kernel - what bits are Mach, what bits are BSD - and a good level a detail. This is the first installment. As they say in the introduction 'Only you can prevent kernel panics.'"
I wasn't any of the mentioned in the "who should read this book" section... guess I'll have to wait till some educated /. reader para phrases it...
Shift happens. Fire it up.
And if M$ ever put one of these out, It'd be called "Move Along, Nothing to see here..." or "All you ever wanted to know about world domination, but were afraid to ask"...
Shift happens. Fire it up.
"Keep Out" is the kind of message that makes people feel nifty about not keeping out.
there's more than one way to do me.
I opened the link and read through the introductions, with the intent of reading. I'm a middling-to-pathetic C/C++ programmer, and I figured it might be interesting to join into the kernelnewbies project - then this came out.
;>
Now, I'm scared. Honestly, after reading through that introduction, I'm scared to touch kernel code. Hell, I'm scared to look at it.
I think Apple did a great job with this document. They don't want anyone writing code unless they know EXACTLY what they're doing (the code, they say, has to be well nigh perfect), so they put in as much intimidation as they can manage without being overly conspicuous.
The newbies will be scared, the people with no confidence (like myself; I don't remember ever compiling warningless code on the first go; if I'm writing something complex, I'll miss a }, if I'm writing Hello World I'll forget to #include) will be scared. The only people who will even think about trying their hand at kernel programming are Gods and fools.
Good job Apple, you really know how to screw with heads.
--Dan
"Kernel programming is by and large a black art that should be avoided if at all possible."
Heh, I like that, so true.
It's something to hang beside my copy of the 2.4.15 kernel source code, I had to print it, my boss had a good laugh at it when I showed him, we have a few guys in house who are on the cutting edge of everything they can be and were running 2.4.15, about half lost their work because they were on the bleeding edge.
What assholes. Nice "keep out" message.
For all Linux's faults, at least they don't have the annoyance problems of the Darwin/BSD set.
I particularly liked this quote:
:-)
``Kernel code must be by and large perfect. A bug in the kernel could cause random crashes, data corruption, or even render the operating system inoperable. It is even possible for certain errant operations to cause permanent and irreparable damage to hardware, for example, by disabling the cooling fan and running the CPU full tilt.''
Back in the days of the TRS-80, those of us comfortable with playing around with BASIC, Tiny Pascal, and Z80 assembly used to try to comfort friends who were just learning to program and were a little more than scared at breaking the computer with, ``Don't worry, you can make whatever mistakes you want; it's not like anything you do is going to break the hardware''.
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
From the posts here, you'd think the title of the article was "Look at the silly Keep Out page".
Cmon guys its just a disclaimer. Given the potential audience, its not a bad disclaimer either. Traditional mac "classic" developers are used to doing anything they want with system extensions. If you've used MacOS9 and below, youre aware that there are a plethora of extensions out there that can cause all sorts of headaches...not all are freeware hobbiest projects.
More than anything else, I see that page as a warning to those used to using extensions to trample all over Apple's system code and cause major stability issues in the process in MacOS (not OSX).
The pdf version is much easier to read through than the site.
If someone has just relatively basic programming knowledge of C/C++, what's a good way to start learning about kernels?
I've got an old 486 not doing anything, and I was thinking about how I could start from absolute scratch and try and build a trivially simple kernel (and shell to communicate with it). Where should I start?
Sig (appended to the end of comments you post, 120 chars)
The disclaimer is out of sync with the substance of the documentation. I found the overview to be nothing more than a entry-level introduction, lacking in many critical details that would prove relevant to somebody actually writing the code. However, to be fair, I've rairly come across a decent kernel developer text, especially where BSD is concerned. The code seems to be the only documentation when it comes to kernel development.
Someone you trust is one of us.
There are a few references to this bibliography, but I was unable to find it. I assume that this book is a work in progress and that part hasn't been posted yet. I didn't miss anything, did I? I would be interested in what books they recommend (actually, I would be interested in slashdot readers' recommendations, too).
Move on. There's nothing to see here.
Well there's almost no meat in that book yet :-(
It would also be nice if the author and/or editor would learn the difference between "difference" and "dereference" which is wrong thoughout...
Inexperienced hobby coders such as yourself are more than welcome to change any bit of the Linux kernel they see fit. That's why Linus lets you download it and play with it!
Of course, if you diff your tree and send a patch, its highly unlikely that Linus (or Marcelo) will accept it.
In short, this is only the first chapter of the book. I like that they're releasing it piecemeal, it's better than waiting for the whole thing to be written. So far they've done the "Is this for you?" bit and have just completed the overview. Apple is pretty good at writing documentation to describe how something works (within reason) rather than just it's API. IMHO, this will probably be a good doc to read when it's finished, even if you prefer a different kernel.
So if I, the "inexperienced hobby coder", change kernel code, fuck up, damage my machine, Linus will pay the bill? Or will he just say "Why the hell did you do this?"
Slashdot: News for l33t Linutix haxors.
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
I have done some tinkerin with my macintosh, lets just say I'm not very good with code. Blasted spelling. Well i have had to re-install macosx 4 times... That is a new record for me seeing as i did it in one week... My advice is if your computer works for you and you like it don't tinker with the kernal.
"You win again Gravity!" -Futurama (Zapp)
Holy crap. Is this supposed to be Apple's way of keeping down rookie programmers? Could Apple be brainwashing young programmers to join their cause???