GeNToo - Gentoo on the NT kernel (April Fools)
1. Introduction
Why GeNToo?
Short answer: Gentoo is about choice.
Long answer:
A very frequent complaint in the open-source community is the Linux kernel's
poor interactive performance and sometimes lackluster driver support. While the
most common (and older) hardware is usually supported, the latest and greatest
seldom is. In particular, laptops, printers and "gadgets" take a long time to
receive proper, stable drivers, even from Linux-friendly vendors (c.f. ipw2100).
Also, the we have been receiving feedback from users who are upset about
what they perceive as an embarrassing string of bad 2.6 kernel releases.
They are fed up with show-stopping bugs in the virtual memory manager,
real-time clock anomalies on suspend and other unfortunate "features".
If we allow ourselves to think out of the box, we will realize that the
Microsoft NT kernel is an alternative to Linux, that is both proven and
commercial-grade. It has support from nearly all hardware vendors in the world,
and practically every PC comes with an license for the NT kernel. This means:
the monetary cost of a copy of the NT kernel is close to non-existent for the
average end-user.
So, let's use it!
How?
The first thing to be aware of, is that the NT kernel has a well-defined
interface to usermode, which does not favour the Win32 API (at least not overly
much). Just as glibc can be seen as a wrapper around the Linux usermode
interface, the Win32 API is a wrapper over the native NT interface. In fact, NT
goes one step further and formalizes such a wrapper as a subsystem.
Microsoft itself ships its NT-based products with subsystems for Win32 (the
most evolved), POSIX (a very minimal and rather useless implementation), OS/2
(even less useful than their POSIX subsystem), DOS and Win16 (also known as
Windows-on-Windows [WOW]).
Unfortunately for us, the POSIX facilities provided by Microsoft are rather
shoddy, and clearly inadequate for running any decent set of Unix programs. This
shortcoming was apparent to Rodney Ruddock, who developed a more complete POSIX
layer, named OpenNT. This subsystem provides mmap'ed files, full POSIX.1 with
terminal facilities, Berkeley sockets, and also perl, Korn shell, X11 and a
telnet daemon. In fact, this subsystem turned out to be so well done that it was
bought by Microsoft, renamed to Windows Services for NT, and is now made
availble for free on their web page as Windows Services for Unix
(SFU).
Unfortunately, the publicity around OpenNT stopped after it was consumed by
Microsoft, but see SunExpert Magazine, March 1998, for a detailed technical
review. These days, some references to OpenNT can be found in the Microsoft
KnowledgeBase, such a description of OpenNT as a
"peer environment to the Win32 subsystem".
Using a full NT/XP/2K installation with Windows Services for UNIX (SFU), you
get access to all important GNU tools, as SFU bundles the GNU toolchain, shells,
sed, awk, the works, compiled natively against the POSIX layer provided by
SFU. This means: practically every command-line tool in SFU is a POSIX
executable and has no requirement on Win32 whatsoever.
The trick here is as follows: From a WinXP installation CD, we can create a
minimal Windows Preinstallation Environment (WinPE). A WinPE is basically a
Windows livecd. We can strip the WinPE further, by removing the graphical
subsystem and everything Win32. On top of this, we can slap the files necessary
for the POSIX subsystem, and build a complete stage1 (and eventually a stage3)
from there.
In order to obtain our "pure" Gentoo installation, we take a WinXP CD (but
Windows 2000 works as well), extract only the files belonging to the kernel, and
place these onto a new ISO, as a WinPE. From the SFU download, we extract the
pre-compiled command-line utilities (including gcc 3.3) and also place it into
the ISO. We add some more glue (such as a pre-compiled python) to the ISO, and
now we have enough tools to act as a minimal Gentoo livecd.
Obviously, we cannot redistribute this ISO due to copyright restrictions. We
do not own the copyright to the NT kernel, for one. However, we have written a
script which does all of this for you. It requires you to provide a Windows XP
installation CD with Service Pack 2 applied (it is also known to work off a
Windows 2000 CD, but this is less tested). You must also register and download
the Windows Services for Unix (SFU) 3.5. The script will then download some
precompiled binaries off our site, and construct a bootable ISO for you. This CD
is exactly enough to kickstart the normal Gentoo installation process, but with
the NT kernel (and thus proper driver support) instead of Linux.
Installing GeNToo
Installation of GeNToo from the livecd is not very different from a normal
Gentoo installation. However, due to the immaturity of some tools, and the total
absence of others (fdisk), some advance preparation is necessary before you dive
into a full install. Please read the GeNToo
Quick Installation Referencehandbook, which follows the familiar Quick
Installation Reference format we have for most architectures.
Note:
There are numerous things which will not work properly in this early version of
GeNToo. Only the really adventurous should proceed.
|
- No graphical subsystem. We do not provide X11. This requires major work, and
is not likely to change in the near future.
- Poor network support. While the drivers work, the user mode tools do not exist in
POSIX form. This is being worked on. In the meantime, we are making available
some Win32 text-mode tools, but these require you to install a minimal Win32
subsystem.
- No configuration tools. The NT kernel is designed to be controlled via the
registry. While we do provide a minimal registry editor, it is unfortunately
rather difficult to use for non-experts to do any kind of configuration. We are
considering various options here, the most likely candidate being a /proc-like
filesystem as an interface to the registry.
- No partitioning tools. We don't (yet) have fdisk, so all partitioning must
be done before installation.
More information
For more information about this project, see the FAQ.
Also, take a peek at the screenshots.
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.
|