BootLoader? Filesystem? Protected Mode? go from ASM to C++
Posted: Sat Sep 22, 2007 7:54 am
I know it covers alot of topics but I just really need directions to good resources.
Starting goal is to create a bootstrap. I know most people would suggest grub, but I only know the basics of Unix/Linux and have been having trouble even installing gcc and binutils. I am , sad to say, a windows junkie. I dislike the same things about Windows that everyone else does, but I also feel that the main reason MS takes so much crap is that because they are the big boy on the block. Unix is old, I don't mean that in a bad way, and has plenty of followers, most of them industrial. Linux is relatively new and is growing more everyday, but most of the Linux supporters are people that have either joined the f*** MS bandwagon or they want to feel Elite/L33t. I really like some of the features from MS, the HDD interface/Filesystem being one of them. I don't like the filesystem so much as I like the way it is interpreted by the system. I like the almost OO design of the Unix filesystems but I just don't like the interface. If it could be OO behind the works and DOS upfront I would be overjoyed. Ummm. most of that was supposed to be in my second paragraph. I was talking about bootstraps/bootloaders. Ohh yeah, I for some reason just can't get grub to install. This is probably due to my inept abilities with Unix. So, I need to build my own and for that I need some sort of good tutorial that will help me to get from nothing to Filesystem and Kernel load.
Okay, just read all that filesystem stuff up there again and pretend it was here. Which leads me to my biggest question. How in the world to you design a file system???? I found where the FAT12 is defined, but that didn't help me figure out how the system is taught to interpret the information being spit out from the disk. Again a quick summary of what I want from a filesystem is:
1. Must be seen by user in a DOS style ie. Drive:\ Cursor.
2. I want the partitions to be different disks like DOS
3. I want separate devices to be SEPARATE
4. I would like behind the scenes for everything to be viewed by the kernel as being all in the same area ie. kernel talking to Master on IDE 0 = /Channel0/Disk0/, Slave on IDE0 = /Channel0/Disk1/. or even define master and slave instead of Disk0 || 1.
I hope that what I have put is clear enough. I am still getting used to the lingo on this site.
Next, I think, is the Protected Mode, I saw a really short example on one of the forum postings and though that can't be right. So I guess that I am just mainly asking if the example I saw will work with an operating system running on x86 no emulation, a real late model 32bit machine??
Last but not least is the transition to C/C++ I would like to transition as soon as possible which I think is after the INT are defined, then I could use ASM to program the C libraries to include standard functions base on my kernels setup. but how do I setup C/C++ to compile to a format that is acceptable for my OS. or would I have to write my own compiler?? I have never done this but am interested and willing to give it a try.
My main problem is that while I know C/C++ and ASM I am by no means experts and learn best through hands on. I usually find someone who has done what I want and look at thier code for ideas. Unfortunately I can't seem to find what I want. I must be able to do all development in Windows and will be using Virtual PC/VMware for a testbed. I do want to have the ability to eventually load this onto and old computer that I have so all code needs to be x86 compatible. I am not looking for a super duper OS and probably don't need the cleanest/fastest code to so what I want. I just want something I can have fun with. really I need to get a prompt as fast as possible and then after that I will have enough to keep myself going. I know the tasks I have asked for help with especially the filesystem are not the easiest but any help would be much appreciated. Thanks in advance.
Starting goal is to create a bootstrap. I know most people would suggest grub, but I only know the basics of Unix/Linux and have been having trouble even installing gcc and binutils. I am , sad to say, a windows junkie. I dislike the same things about Windows that everyone else does, but I also feel that the main reason MS takes so much crap is that because they are the big boy on the block. Unix is old, I don't mean that in a bad way, and has plenty of followers, most of them industrial. Linux is relatively new and is growing more everyday, but most of the Linux supporters are people that have either joined the f*** MS bandwagon or they want to feel Elite/L33t. I really like some of the features from MS, the HDD interface/Filesystem being one of them. I don't like the filesystem so much as I like the way it is interpreted by the system. I like the almost OO design of the Unix filesystems but I just don't like the interface. If it could be OO behind the works and DOS upfront I would be overjoyed. Ummm. most of that was supposed to be in my second paragraph. I was talking about bootstraps/bootloaders. Ohh yeah, I for some reason just can't get grub to install. This is probably due to my inept abilities with Unix. So, I need to build my own and for that I need some sort of good tutorial that will help me to get from nothing to Filesystem and Kernel load.
Okay, just read all that filesystem stuff up there again and pretend it was here. Which leads me to my biggest question. How in the world to you design a file system???? I found where the FAT12 is defined, but that didn't help me figure out how the system is taught to interpret the information being spit out from the disk. Again a quick summary of what I want from a filesystem is:
1. Must be seen by user in a DOS style ie. Drive:\ Cursor.
2. I want the partitions to be different disks like DOS
3. I want separate devices to be SEPARATE
4. I would like behind the scenes for everything to be viewed by the kernel as being all in the same area ie. kernel talking to Master on IDE 0 = /Channel0/Disk0/, Slave on IDE0 = /Channel0/Disk1/. or even define master and slave instead of Disk0 || 1.
I hope that what I have put is clear enough. I am still getting used to the lingo on this site.
Next, I think, is the Protected Mode, I saw a really short example on one of the forum postings and though that can't be right. So I guess that I am just mainly asking if the example I saw will work with an operating system running on x86 no emulation, a real late model 32bit machine??
Last but not least is the transition to C/C++ I would like to transition as soon as possible which I think is after the INT are defined, then I could use ASM to program the C libraries to include standard functions base on my kernels setup. but how do I setup C/C++ to compile to a format that is acceptable for my OS. or would I have to write my own compiler?? I have never done this but am interested and willing to give it a try.
My main problem is that while I know C/C++ and ASM I am by no means experts and learn best through hands on. I usually find someone who has done what I want and look at thier code for ideas. Unfortunately I can't seem to find what I want. I must be able to do all development in Windows and will be using Virtual PC/VMware for a testbed. I do want to have the ability to eventually load this onto and old computer that I have so all code needs to be x86 compatible. I am not looking for a super duper OS and probably don't need the cleanest/fastest code to so what I want. I just want something I can have fun with. really I need to get a prompt as fast as possible and then after that I will have enough to keep myself going. I know the tasks I have asked for help with especially the filesystem are not the easiest but any help would be much appreciated. Thanks in advance.