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