OpenBSD developer notes king’s clothing is “virtual”

Theo de Raadt explains why virtualization does not improve security. How about this: to improve security, you have to have a secure design, a marketing buzzword won’t do the trick. Anyone who has seriously looked that the current generation x86 virtualization hardware knows that it does not provide clean separation or levels of [...]

The Linux community

According to Greg’s email, organizations that contributed more than 100
changesets to the recently released 2.6.23 kernel included: Red Hat
with 827 changesets (11.7%), IBM with 557 changesets (7.9%), the Linux
Foundation with 528 changesets (7.5%), Novell with 449 changesets
(6.3%), Intel with 242 changesets (3.4%), Oracle with 158 changesets
(2.2%), MIPS Technologies with 143 changesets (2%), Nokia with [...]

Distributed shared memory from first principles

[Update 10/16]
What is the fundamental performance limiting factor that has dominated that last 30 years of computer architecture? The obvious answer is the disparity between processor and memory/storage speed. We connect processors to cache, to more cache, to even more cache, to some bus, to memory, to disk/network, suffering costs at each step as [...]

Smart engineering design

Amy Smith and her work
and her student

more on missed wakeup

Here are some conventions [Update: typos fix, Friday]

We are concerned with state machines and sequences of events. The prefixes of a sequence include the empty sequence “null” and the sequence itself.
Relative state: If “w” is the sequence of events that have driven a system of state machines from their initial to their current [...]

Data structures and algebra

[Edited 9/10] There’s an easy connection between data structures and basic abstract algebra that may or may not mean anything, but keeps getting rediscovered. I’ve never seen it clearly explained (anyone with a reference or who notices an error in my rusty algebra- please send me a note! A discrete note would be nice [...]

Death of 1000 suboptimal solutions

The traditional path to making a slow operating system is to take a fast one and add features under the 5% rule.  If a new feature does not visibly slow the system down or only slows it down 5% or some arbitrary definition of “small”, then it goes in. Each mistake or badly written or [...]

The lost wakeup problem

One basic problem in operating system design is how to make efficient blocking requests. Thread A wants something from Thread B (or ISR B) and (1) requests and (2) blocks. There are thousands of ways in which the interval between (1) and (2) can lead to a “missed wakeup”. That is, A requests, B [...]