Bedtime Reading

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.

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

user12619391

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today