A simple os to edit disk partations
Posted: Tue Jan 03, 2012 11:54 pm
I don't know if it is the right place to post this question but...
I am writing a very simple o.s. which loads off a floppy. What it does is, it creates, edits partitions on hard drive connected to the system, and also formats the partitions.
Currently what i have is a boot-loader that loads the kernel, initializes GDT, switch to protected mode and executes the kernel. Since I planned it to load only from floppy, the kernel itself contains the code to read/write floppy and support FAT12 file system. I plan it to be extendable with drivers and user applications. The kernel itself will initiate paging and load all the drivers. I am using PE format for all executables and support for ELF can be added too. The os will supports PATA and SATA.
I am having trouble figuring out whether to give PCI support in kernel or as a driver and also if I need to support any ACPI related stuff. I plan on using IOAPIC and LAPIC to handle interrupts. Multiple processors will not be supported.
The second stage bootloader enables A20 gate, installs GDT, loads the kernel at physical address 0x00100000 (1 MB) and transfers control to it. Currently I have a blank kernel.
The memory map exists at physical address 0x00004000. The GDT and IDT exists at 0x00013000.
Any ideas what to do next.
I am writing a very simple o.s. which loads off a floppy. What it does is, it creates, edits partitions on hard drive connected to the system, and also formats the partitions.
Currently what i have is a boot-loader that loads the kernel, initializes GDT, switch to protected mode and executes the kernel. Since I planned it to load only from floppy, the kernel itself contains the code to read/write floppy and support FAT12 file system. I plan it to be extendable with drivers and user applications. The kernel itself will initiate paging and load all the drivers. I am using PE format for all executables and support for ELF can be added too. The os will supports PATA and SATA.
I am having trouble figuring out whether to give PCI support in kernel or as a driver and also if I need to support any ACPI related stuff. I plan on using IOAPIC and LAPIC to handle interrupts. Multiple processors will not be supported.
The second stage bootloader enables A20 gate, installs GDT, loads the kernel at physical address 0x00100000 (1 MB) and transfers control to it. Currently I have a blank kernel.
The memory map exists at physical address 0x00004000. The GDT and IDT exists at 0x00013000.
Any ideas what to do next.