Odius
Posted: Wed Nov 26, 2008 4:40 am
Odius is a complete rewrite of my old OS, OrOS. While it had fasm, tcc, and most everything else, I hated it. My code was damn ugly, not to mention I *shame* would have had copyright issues on about 100 lines of code.
My new project is called Odius, and its written in x86 ASM and C++ using nasm and gcc.
My progress is slow, but my code has been tested and works on all free and commercial emulators (- VirtualPC) as well as all the physical hardware its been tested on.
Implemented:
P.S If you read this meth0dz, I lost the test image for the old version, if you still have it post it.
I'm looking for people to test this on real hardware, if your up for it.
Also, lulz, I've been waiting for days for someone to accept me into the Wiki group, I have a ton of PD code to post for SMBIOS and emulator quirks.
My new project is called Odius, and its written in x86 ASM and C++ using nasm and gcc.
My progress is slow, but my code has been tested and works on all free and commercial emulators (- VirtualPC) as well as all the physical hardware its been tested on.
Implemented:
- Advanced CPU detection using both processor quirks, and where available, cpuid
- GDT
- IDT
- Timer
- VMM (Includes heap and paging)
- VFS (Unix-like, but non-compatible) including a full ramfs
- /, /initrd, /dev/proc, /dev/pci/*, /dev/usb/* (Non-working, enumeration, nothing else), /temp
- Multitasking
- Usermode (The shell is being developed in userland)
- Compiles on two 800Mhz rackmount machines running Ubuntu server edition. I can connect from anywhere without the hassle of a cross-compiler. IE, I use it at school, on my mac, and on my pc using any IDE.
- Full SMBIOS support, although non-reliant (Ex, it works in VirtualBox, but will still run fine in Qemu.) Really just used at the moment to skip a couple detection functions if its found.
- Full APM and very basic ACPI support
- Scans an enumerates most PCI devices
- No v86 and as such no higher video modes other then basic VGA. Basic VESA driver only works on VBE3.0, and thats only in theory, I have nothing to test it with ;-(
- No free() !_!
- USB driver barely functions, can only detect devices.
- ACPI can shut the computer down. Thats about it.
- Re-implement the shell from OrOS (had autocompletion, argument pushing, command history, text buffer, and a table based function lookup)
- Expand ACPI so its actually useful
- Looking into 16bit code translation, primarily for video
- clean up the VMM. No free = lame. Mind you, everything it allocates so far never needs to be freed. In fact, I'd be scared if it did.
- Implement all USB standards
- AC97 support
- Network abstraction and at least support for VirtualBox and Qemu network drivers
- APIC
P.S If you read this meth0dz, I lost the test image for the old version, if you still have it post it.
I'm looking for people to test this on real hardware, if your up for it.
Also, lulz, I've been waiting for days for someone to accept me into the Wiki group, I have a ton of PD code to post for SMBIOS and emulator quirks.