MiniWin – A Windows Kernel in 4Mb
Whilst most of the details of the upcoming ‘Windows 7′ (or Blackcomb / Vienna depending on which codename MS are currently using) are still shrouded in Mystery. Microsoft recently revealed they intend to power Windows 7 with a brand new minimalistic core. At present Microsoft support a wide range of kernels across their products and it must be resource consuming maintaining all these codebases. After all, its not just desktop kernels but Mobile and PPC based systems as well:
‘Longhorn Based’ – Server 2008, Vista
‘Whistler Based’ – Server 2003, Windows XP, XP embedded, XP Media Center 2003/4/5, Tablet PC, XP Fundamentals, Windows Home Server
‘NT 5 / Asteroid Based’ – Windows 2000 Sever / Professional
‘Talisker Based’ – PPC OS, Smartphone OS
Magneto Based’ – Windows Mobile 5
‘Crossbow / Yamazaki Based’ – Windows Mobile 6
So the idea is to consolidate all supported architectures into one makes perfect sense in terms of longer term support. Of course, in order to be fit for purpose, the MiniKernel needs to be so flexible as to be used for embedded mobile applications as well as desktop AND enterprise grade server applications. The idea of a streamlined, optimised kernel is a welcome departing from Vista’s Bloat, I just hope Microsoft do not embed DRM into this mini kernel and bloat it unnecessarily.
The new kernel is purportedly to be 4Mb in size and uses only 100 files. Of course this precludes any GUI, however when run in a virtual machine with only 40Mb of RAM, the kernel (running a basic http server) used just 33 MB of the allocated RAM and booted in 20 seconds. This is a project fairly early in its life, and short-term will only make things worse (by adding yet another code-base) however it will be interesting to see what other optimisations can be made. Of course this kernel does not include all the parts needed for a fully fledged operations system like a graphical hardware layer and proper driver loading, however the implementation of a networking stack is promising. It shows what can be done when not implementing a broken IPv6 system that almost no-one presently uses..
It is one thing to show a prototype in an idealised virtual machine (ahem ReactOS :p) and quite another to provide an infrastructure that allows heterogeneous hardware support, however I am very interested in this new approach and like many others shall be watching this closely.
As a brief aside, I just want to say that my dig at ReactOS was precisely that, a playful dig. The project is one I have been following since 0.2.x and the work the guys are doing over there is extremely impressive, implementing an NT based F/OSS clone is alot of work (it too Microsoft ~15 years to get there after all!)