Very nice 。
Well?
I've worked at this project for 2 or 3 months now, I started with a kernel and boot loader in assembler but halfway though I epicly \raged and deleted my emulator and most of my files (not the backups tough). It had a basic keyboard driver and screen driver, and no file system. The jump to Pmode would not run on anything but Bochs (the emulator). Real hardware or other emulators would tripple fault.
Now I have made this new version whose kernel is done in C++ and it works GREAT! I'm feeling so fucking happy atm I'm going to it turn into a very tech-savy hacker-os, more savy then the even the average linux user is
What should I work on next?
This one currently has:
-Keyboard driver
-Screen driver
-Support for software interrupts (leads to API's ans syscalls())
-32 bit Protected mode (like all modern operating systems)
-fat12 filesystem (no serial driver though, so I can't load anything in Pmode, all loading is done in real mode)
Critical functions still lacking:
-A memory manager (alloc(), new[], dealloc, delete[] )
-A serial driver (read an write to disk and floppy)
-A scheduler (task switching and shit)
-A good C runtime environment (No floating point/double/exception handling, I have a basic ctors and dtors for global and static data)
I was personally planing on building the serial driver (since I can't load or save programs to or from the disk, and the file parser is already done).
But maybe someone can convince me to build a memory manager first? What does mpgh think?
Does anyone want the image?
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
Very nice indeed, are you willing to share the source?
Edit: I really need help compiling and linking binaries on Windows.. I'm forced to use Linux right now cause' I can't figure it out on Windows. Mind giving me a hand?
Last edited by Void; 07-13-2011 at 08:25 PM.
I used linux before to, but it didn't work out between me and linux so I switched to Windows. And I learned how to link on Windows here:
The bootloader
And
Compling the kernel with VC++ 2005
He makes many spelling mistakes, but the layout is clear and he uses images to explain what he means in detail. I downloaded the demo he provides in the second link, and I use that boot loader with a few modifications to load my C++ kernel like he does in his example.
In the boot loader tutorial (first link) he shows how implend the filesystem. However if you're developing in windows 7/vista the software he uses (virtual floppy disk) doesn't seem to work. So I use WinImage to create a floppy image that can be used on normal as well as emulated hardware.
I use nasm for my assembler sources, and VC++ 2005 for the c/cpp and then bochs to emulate and WinImage to create the floppy image.
Last edited by .::SCHiM::.; 07-14-2011 at 03:34 AM.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
Void (07-14-2011)
Hmmm cereal driver <3 Oh...
Ah we-a blaze the fyah, make it bun dem!
I cannot for the life of me figure this out. I've followed what you gave me to setup the IDE but every time I compile I get Windows' basic header. I'm looking for a flat binary with no format what so ever. \:
You're reallly good at this, you should get a job in this field.