nuclear@92: A minimal UNIX kernel project for x86 PCs nuclear@92: ----------------------------------------- nuclear@1: Author: John Tsiombikas nuclear@4: nuclear@4: License: GNU GPL v3 or any later version published by the free software nuclear@4: foundation. See COPYING for details. nuclear@4: nuclear@4: About nuclear@4: ----- nuclear@92: When the editor of the Linux Inside magazine asked me to write for his newborn nuclear@92: magazine, I leapt at the chance to start a series of introductory articles on nuclear@92: kernel programming. nuclear@92: For this reason I started writing a minimal, UNIX-like, operating system kernel nuclear@92: from scratch. It's not complete yet, but it already has user/kernel protection nuclear@92: levels, a virtual memory system with copy-on-write, processes, task switching, nuclear@92: etc. nuclear@92: nuclear@92: The articles themselves (only in Greek at the moment unfortunately) can be found nuclear@92: at: http://nuclear.mutantstargoat.com/articles/kerneldev/index.html nuclear@92: nuclear@4: nuclear@4: Compiling & Running nuclear@4: ------------------- nuclear@4: To compile kernel image (kernel.elf) just type make (or gmake, if your default nuclear@4: make tool is not GNU make). A script called "run" is supplied that will use qemu nuclear@4: to run the kernel in a virtual machine. nuclear@4: nuclear@4: If you wish to boot up the kernel on your computer you need a multiboot nuclear@4: compliant boot loader like GRUB. Since you probably already have GRUB installed nuclear@4: if you're running a GNU/Linux distribution, just add an entry to the GRUB config nuclear@4: file (commonly /boot/grub/menu.lst) similar to this one and reboot: nuclear@4: nuclear@4: title My kernel nuclear@4: root (hdX,Y) # where X is the disk number and Y the partition (first being 0) nuclear@4: kernel /path/to/kernel_code/kernel.elf # change this to the actual path nuclear@4: nuclear@4: In case you are using GRUB 2 instead of the original GRUB, you'll have to nuclear@4: consult the documentation on how to modify the above into the GRUB 2 syntax. nuclear@4: nuclear@4: Disclaimer nuclear@4: ---------- nuclear@4: All programs contain bugs, and this sample code will undoubtedly have its share. nuclear@4: Running buggy kernel code on the real machine is very dangerous and may result nuclear@4: in data loss or even damage to your computer in extreme cases. The author nuclear@4: assumes no responsibility for any such eventuality. Run this code on your nuclear@4: computer at your own risk. nuclear@4: nuclear@4: Contact nuclear@4: ------- nuclear@4: For any comments or suggestions regarding the articles or this supplemental nuclear@4: code, please contact me at nuclear@member.fsf.org