[[!meta copyright="Copyright © 2009, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="What happened to the L4 / Coyotos / Viengoos microkernels?"]] Encountering a number of fundamental design issues with the Mach microkernel (mostly with resource management), some of the Hurd developers began experimenting with using other microkernels for the Hurd. The first attempt was reimplementing the Hurd on the L4 (Pistachio) microkernel. This got going around 2003/2004, and got pretty far (running some simple POSIX programs, such as "banner"); however over time some lingering design issues turned out to be fundamental problems: the original L4 is not suitable for building object capability systems like the Hurd. Thus development was aborted in 2005. Following that, an attempt was started to use the kernel of the Coyotos system. As Coyotos is an object-capability system througout, the microkernel would obviously be more suitable for this purpose; and it looked pretty promising in the beginning. However, further investigations found that there are some very fundamental philosophical differences between the Coyotos and Hurd designs; and thus this this attempt was also abandonned, around 2006/2007. (This time before producing any actual code.) By now there were some new L4 variants available, which added protected IPC paths and other features necessary for object capability systems; so it might be possible to implement the Hurd on top of these. However, by that time the developers concluded that microkernel design and system design are interconnected in very intricate ways, and thus trying to use a third-party microkernel will always result in trouble. So Neal Walfield created the experimental [[Viengoos|microkernel/viengoos]] kernel instead -- based on the experience from the previous experiments with L4 and Coyotos -- for his research on resource management. Currently he works in another research area though, and thus Viengoos is on hold. Note that while none of the microkernel work is active now, the previous experiments already yielded a lot of experience, which will be very useful in the further development/improvement of the mainline (Mach-based) Hurd implementation.