Carnegie Mellon

Computer Science Department |
 |
 |
 |
 |
 |
| |
|
|
15-412, Hurd/L4
PAGE UNDER CONSTRUCTION
give us a week
The Big Picture
What is Hurd/L4 supposed to be?
asides, what is L4?, what is Hurd? (seperate webpages?)
picture here of Hurd/L4
So what exists, and what are we trying to fill in?
Right now Hurd/L4 is in the early stages of it's port. The Pistachio L4 microkernel is well tested and stable. The version of Hurd which runs on L4 though currently contains very little. In the L4 Model
What is L4-Hurd?
What is L4?
L4 is a minimalistic microkernel architecture supplying very few services. Limited to simple synchronous IPC mechanisms, some very basic scheduling primatives for interrupt handling and pre-emption, and protection mechanisms using virtual memory. Device drivers, the scheduler, control over the virtual memory system, file-systems, and the device driver interface layer are all not part of L4.
What is Hurd?
The Hurd is a set of user-space servers which run on Mach, a microkernel supplying significantly more functionality. The idea is that most of the services supplied by say... the linux kernel... are instead supplied by a set of servers running in userspace. Hurd is a project started aproximatly 15 years ago before the inception of linux. Unfortunatly, even after 15 years it's not a full fledged OS even on Mach.
Why Hurd on L4?
The advantage of moving Hurd to L4 is partially for speed. L4's lightweight synchronous message passing is much simpler than Mach's. Also Mach had a pager as a seperate entity, so that it knew little about what was going on elsewhere. This means it often mispaged causing thrashing on the swap. It is believed by some that Hurd on L4 could run faster than on Mach for these reasons. In fact this could allow garbage collecters to run orders of magnitude faster than on most kernel architectures.
Another compelling reason is to move more bits into user-space. Hurd's goal has always been to give the user as many privileges as possible without violating protection. L4 allows this by pushing the device driver system outside of the kernel and into normal user processes. Thus, arbitrary users could theoretically run their own device drivers without worry of them cracking into another user's data. As a bonus L4 is "hard real time", something that would be very difficult to do on Mach given it's asynchronous message passing system. Also, unlike many other hard real time systems, Hurd-L4 allows normal user-space processes to run in hard real-time. This means no shoving untested research code into the kernel just so it can run in real-time.
|