Gentoo Logo
Gentoo Logo Side

GeNToo - Gentoo on the NT kernel (April Fools)

Contents:

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.
line
Updated 2005-04-01
line
Karl Trygve Kalleberg
Architect

Patrick Lauer
Strategic Lead

Marius Mauch
Portage Coordinator

line
Summary: GeNToo is a version of the Gentoo meta distribution based on the NT kernel, (virtually) completely free of any Win32 code. It provides a complete text-mode Gentoo environment, with all GNU tools, Perl, Python and the other usual suspects. In addition, it comes with with full NT hardware driver support.
line

Donate to support our development efforts.

line
The Gentoo Linux Store
line
php|architect

php|architect is the monthly magazine for PHP professionals, available worldwide in print and electronic format. A percentage of all the sales will be donated back into the Gentoo project.

line
Tek Alchemy

Tek Alchemy offers dedicated servers and other hosting solutions running Gentoo Linux.

line
DDR Memory at Crucial.com

Purchase RAM from Crucial.com and a percentage of your sale will go towards further Gentoo Linux development.

line
Win4Lin at NeTraverse

Win4Lin from NeTraverse lets you run Windows applications under Gentoo Linux at native speeds.

line
Copyright 2001-2003 Gentoo Technologies, Inc. Questions, Comments, Corrections? Email www@gentoo.org.