Book progress

3 views
Skip to first unread message

Jonathan S. Shapiro

unread,
Dec 14, 2025, 6:04:55 PM (2 days ago) Dec 14
to cap-talk
Writing is proceeding, and two of the open questions that have come up seem to have converged.

Migrating to Rust. After digging a bit, I've decided that it's worth a try to migrate the Coyotos implementation to rust. I went back, strapped myself to my chair, and made myself re-read the rust memory model with care. I now understand it much better. Some of it will be actively helpful. UnsafeCell is going to reduce a bunch of it's power, but it's still better than C for what we're doing. And I can see ways to use the rust type system to help keep track of some of the manual concurrency management.

The rust version will have a new name, and I've already nailed down the domains and the GitHub organization. A few people are going to object, but given some of the interactions we had before his passing and the further advances that look to be possible by adapting some of the CHERI ideas, I think Roger might recognize and appreciate it as a gesture of respect.

Descriptive Approach. I kind of hate the way textbooks approach operating systems. They describe the abstractions and the data structures fine, but I've always been left feeling like the textbook didn't really explain how it all fits together to actually operate. Some are better than others.

I'm going to try it the way that Norm originally described KeyKOS to me. We did something like a month's worth of lengthy discussions about the KeyKOS internels, each of which started with "Today, we are going to execute the first instruction, but before we can do that..." Eventually we executed that instruction, and by the time we did we had covered very nearly the entire kernel. Only a few details of the checkpoint mechanism remained.

It worked well for me, so I'm going to give it a try.
Reply all
Reply to author
Forward
0 new messages