L4::BSD, Subclass your OS
R. Tyler Ballance <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 - - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Well, let me first introduce myself. I'm R. Tyler Ballance, I'm a Computer Engineering student at Texas A&M University. I've been using BSD (Free/Net/Open/Mir/ekko) since I bought a G3 iBook 4 or 5 years ago, and was introduced to open source. I participated in the Google Summer of Code last year, and started work on porting Apple's launchd utility to FreeBSD, according to Google, I succeeded in my project, but it's terribly unfinished, and it's nothing i'm proud of. I now run my own software and consulting company to pay the bills, but my interest in getting a very Darwin-esque operating system running on top of the L4 microkernel is still quite strong. Thusly, I think starting project, tentatively named L4::BSD, would be a magnificent way to really introduce myself into the inner workings of FreeBSD. A project like this has a few wonderful possibilities. The most enticing, in my opinion, of which, could be platform agnostic device drivers. Since the operating system would run in user-space on top of the L4 microkernel, as well as device drivers (hopefully I'm not misunderstanding the concept), I believe it would be possible to merely define an interface for interacting with the driver, which would then run on top of the L4 kernel (in user space) regardless of what the main operating system (L4Linux, L4:BSD) would be. The basic idea would be that a developer could write a driver for his specific network card, let's call it an UnrealTech card, which adheres to some L4::Network standard for network devices, then in the host operating system, if a the host OS can "speak" this L4::Network standard, it could easily use this card, as well as any other operating system running on top of L4, that spoke the L4::Network standard. (it's a pretty lofty idea, but in my opinion, would be an excellent use of the microkernel abstraction) Developing something like this would be along the lines of Apple's IOKit subsystem, which provides a wonderful interface for dealing with hardware through the Mach microkernel. jkoshy@ of the FreeBSD project also pointed out to me on the freebsd- hackers@ list that there would also be the possibility of "migrating VMs between machines 'on-the-fly', as described in the following paper: http:// www.cl.cam.ac.uk/Research/SRG/netos/papers/2005-migration-nsdi- pre.pdf" Which would be a fantastic use of a microkernel. If i remember correctly, Xen uses a microkernel approach to running host operating systems. Presumably we'd use L4::Pistachio, which I believe is a wonderful microkernel to start with. Since L4 is largely an academic microkernel (as is Mach, and that didn't stop Apple ;)), a lot of documentation, white papers, test code, and proof-of-concepts are out there. TU Dresden (which i've considered attending) has plenty of great resources as well as some of their Fiasco microkernel work all posted here: http://os.inf.tu-dresden.de/ I'm still researching, I took my last final exam yesterday, so I'm looking into and gathering information on the best way to start working on this project. I've also registered the channel #l4bsd on the Freenode network (irc.freenode.net), since i'm an avid user of IRC during the work day :) If you guys would like, I can setup a berlios or sourceforge project for this? Let me know. I'm going to go ahead and forward this message to the l4ka@ mailing list, so I'm certain they'll point out any complete flaws in my logic, or otherwise. So, suggestions, ideas, flames, comments, etc, are all welcome :) Cheers, - - - -R. Tyler Ballance Prospective kernel hacker at large ;) - - -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin) iD8DBQFEYxw1qO6nEJfroRsRAmZ/AJ48ENBgF1fD10tjazshJGfO/IB1twCdF9Tl Wt7lSdsUMgV0XTpgZvq3KWw= =v4FR - - -----END PGP SIGNATURE----- - -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin) iD8DBQFEYxw9qO6nEJfroRsRApmQAKCH6RXmcqYjF+Iqs18KOC1cd7C/vQCcDRO9 ibh+tHt/B0VJLHUEHIjmFlk= =xWaF - -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin) iD8DBQFEYxxJqO6nEJfroRsRAnqeAJ97NgEhoKrrUCNDBtq9+7jpyCk0cACeKaUa eqgW27WXPnjkwR9a5ClLo9g= =bR3X -----END PGP SIGNATURE-----