NOS
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:Hobby OS
## NoS

NoS is a hobby OS I'm writing in my spare time. It currently features a custom bootloader, floppy disk drivers, keyboard drivers,
Memory manager, kmalloc / free equivalent for drivers, and more.

# Requirements

NoS uses make, gcc, fasm, nasm, and probably more unix utilities. 
Virtual Floppy Drive ([VFD](http://sourceforge.net/projects/vfd/)) or something similar
Some parts of the makefile assume that vfd has a virtual 1.44 meg floppy mounted at B:\. 

# Compiling

The kernel can be compiled using make. Note that currently all drivers are linked into the kernel. 

Run the following to compile and link the kernel:

	mkdir bin
	mkdir bin/drivers
	make bin/MYOS.BIN

This will create the kernel in bin/MYOS.BIN. This is because it used to be called MYOS. This should probably be fixed at some point.

# Building the Bootloader

The bootloader can be built using the boot option of the makefile. This assumes a certain set up however. 
You can build the second stage bootloader with the following command however:
	
	nasm -f bin -o bin/BOOT.BIN boot/bootloader_stage2.asm

In any case, the first stage bootloader must be built manually using this command:

	nasm -f bin -o bin/bootloader.bin boot/bootloader.asm

It should result in a file that is exactly 512 bytes and will act as a MBR.

#Building the Floppy Image

This has been tested using VFD. However, any other method of generating a raw image that is 1.44Megs would work.
The first stage bootloader assumes a FAT16 file system. It searches for a file named BOOT.BIN and loads it.
The second stage bootloader in BOOT.BIN then searches for MYOS.BIN and loads the entire kernel into memory. It sets up 32 bit protected mode and then jumps to the kernel.

Therefore, the requirements are to build a FAT16 image that is 1.44 megs, contains BOOT.BIN and MYOS.BIN, and has the MBR replaced with bootloader.bin.

There is a utility program called injectboot that was written for this purpose. This program can be compiled like any other c program. Use the following command:

	gcc Utility/injectboot.c -o bin/injectboot.exe 

This is Windows specific of course. You should use what is appropriate for your OS. Then you can use InjectBoot to install the MBR in the floppy image like so:

	injectboot bin/bootloader.bin NoS.img

Of course, you would replace NoS.img with the path to your floppy image. Then this file can be mounted in VirtualBox or VMWare and booted.




本源码包内暂不包含可直接显示的源代码文件,请下载源码包。