The OSKit: The Flux Operating System Toolkit - The OSKit is a framework and set of modularized components and library code, together with extensive documentation, for the construction of operating system kernels, servers, and other OS-level functionality. Its purpose is to provide, as a set of easily reusable modules, much of the infrastructure "grunge" that usually takes up a large percentage of development time in any operating system or OS-related project, and allow developers to concentrate their efforts on the unique and interesting aspects of the new OS in question.
Linux Device Drivers, 2nd Edition - This practical guide is for anyone who wants to support computer peripherals under the Linux operating system. It shows step-by-step how to write a driver for character devices, block devices, and network interfaces, illustrating with examples you can compile and run. The second edition covers Kernel 2.4 and adds discussions of symmetric multiprocessing (SMP), Universal Serial Bus (USB), and some new platforms.
NASM - The Netwide Assembler Project - FREE 80x86 assembler
RAWRITE - rawwrite (or rawrite) is the essential utility for creating boot and root disks for installing Linux.
DJGPP - DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of many GNU development utilities.
cygwin - Cygwin is a UNIX environment, developed by Red Hat, for Windows. It includes C/C++ compilers and a TON more.
Turbo C - Free Borland Turbo C compiler (you must register to download)
Slackware Linux - Free UNIX like Operating System with source code
Microsoft Portable Executable and Common Object File Format Specification - This is a complete spec of the format of a Windows executable file. When you compile a program with Visual C++, this is the type of file that is produced.
Linux Kernels - This place has all linux kernels, even the first one...
IA-32 Intel Architecture Software Developer's Manuals - These manuals describe the IA-32 (Pentiums, etc.) chips in as much detail as possible. They describe various operation modes of the processors, and how switch between those modes. They describe how memory addressing happens and how paging works (and how to enable and control it). Basically everything you ever wanted to know about Intel processors can be found in these manuals.
In the Beginning was the Command Line by Neal Stephenson - About twenty years ago Jobs and Wozniak, the founders of Apple, came up with the very strange idea of selling information processing machines for use in the home. The business took off, and its founders made a lot of money and received the credit they deserved for being daring visionaries. But around the same time, Bill Gates and Paul Allen came up with an idea even stranger and more fantastical: selling computer operating systems. This was much weirder than the idea of Jobs and Wozniak. A computer at least had some sort of physical reality to it. It came in a box, you could open it up and plug it in and watch lights blink. An operating system had no tangible incarnation at all. It arrived on a disk, of course, but the disk was, in effect, nothing more than the box that the OS came in. The product itself was a very long string of ones and zeroes that, when properly installed and coddled, gave you the ability to manipulate other very long strings of ones and zeroes. Even those few who actually understood what a computer operating system was were apt to think of it as a fantastically arcane engineering prodigy, like a breeder reactor or a U-2 spy plane, and not something that could ever be (in the parlance of high-tech) "productized."
slashdot.org - Slashdot: News for nerds, stuff that matters.
Java Data Structures Tutorial - A tutorial for general purpose Data Structures such as Linked lists, Queues, Trees, etc., done in Java. This is the stuff you may find useful when you do class projects.