Wednesday June 22, 2005 | « June 2005 » | ||||||
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
2 | 3 | 4 | ||||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 15 | 16 | 17 | 18 | |
19 | 20 | 21 | 23 | 24 | 25 | |
26 | 27 | 28 | 29 | 30 | ||
| Today | ||||||
Links
- smf(5) blogs
- Jonathan Adams
- Liane Praza
- Stephen Hahn
- Steve Peng
- Visual Panels
- Jaime
- Steve Talley
- Tony Nguyen
Today's Page Hits: 34
Though much of the OpenSolaris kernel is well commented (or at least, clearly implemented), there are a few files where we have gone out of our way to describe the big picture... or explain the subtle details. Sometimes called "Big Theory Statements", these descriptions usually take the form of a huge block comment near the top of a file and can be read from start to finish. I often point new hires eager to learn more about the kernel to these as straight-up reading material. When friend with a penchant for reading source code mentioned this weekend that he spent some time in page.h, it occurred to me that many would appreciate a list of files they could curl up by the fire with.
For starters, I usually recommend checking out the implementations of our kernel synchronization primitives:
| turnstile.c | the foundation for synchronization objects that have owners |
| mutex.c | mutexes |
| rwlock.c | reader-writer locks |
| sleepq.c | sleep queues |
It is with dismay that I point out that condvar.c — with its not one, not two, but eight different variants of cv_wait — is deservedly absent from this list.
The other well-documented files on my list hail from all corners of the kernel:
| cyclic.c | high resolution interval timers |
| dtrace.h | DTrace |
| errorq.c | kernel error queues |
| ipc.c | System V interprocess communication |
| kstat.h | kernel statistics |
| page.h | all about pages |
| vmem.c | the foundation for kernel memory allocation |
| zone.c | zones |
I offer apologies in advance if I've left out your favorite (dev_rmscsi.c, though to be admired for its candor, doesn't qualify). Let me know and I'll add contenders to this list... and to my own.
(2005-06-22 19:00:00.0) Permalink Comments [0]