Tools for OS Dev
- kenneth_phough
- Member
- Posts: 106
- Joined: Sun Sep 18, 2005 11:00 pm
- Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
- Contact:
Tools for OS Dev
I'm new to operating system development so I'm not sure exactly what tools I would need. From what I've read gcc and some kind of assembler is necessary. I have SuSE 10.1 with KDE 3.5. The only tool I have right know is gcc. I'm not sure which assembler to get (i.e. nasm or fasm etc.). Also are there any other tools I should get that I don't know of.
Thanks,
Kenneth
Thanks,
Kenneth
this is somewhat of a misconception -- any compiler can be used, and many languages (though C is generally considered easier, and most people use it, so its easier to get better help if your using it)From what I've read gcc and some kind of assembler is necessary
gcc already has a compiler (gas) but most people seem prefer an external assembler like nasm (i use nasm mostly, and MSVC++ (though i havent really used it much), and some people use intels linux compiler)
another important tool is either several spare computers to test on, or a virtual machine -- preferably both:
bochs -- generally considered best, because of its diagnostic tools
VMware player -- more difficult to configure, and isnt as helpful when you have trouble
ive heard rummors that there is a free version of virtualPC also, but i havent confirmed that
btw: every tool i mentioned in this post is completely free (legally), and downloadable online
other than that, your most important tool is references, some good ones are:
## ---- ----- ------ Intel Manuals
this should be your closest companion -- these are indespencable -- especially at the begining, you can download all 5 books in PDF format (handy for searching) and order hard copies (good for reading)
i personally recomend reading volume 3a at least 2 times before begining -- especially chapters 3-6, though make sure you understand everything in chapter 2 first -- esp if you dont have much experience in x86 ASM programming
## ---- ----- RBIL
this is a very useful reference for many things -- even if you are useing a pre-made bootloader, as it isnt just about the bios (though even that can be useful)
OS faq
this is one of the best places for good information -- lots of general information about many important topics
Geezer
the information repository for one of the greatest names in OSdev history -- if your around long, you will most certainly either borrow, study, or quote his work (especially well known for his work on mouse and video drivers)
ATA-ATAPI
you wont likely need much here for a while (most people begin work on FDD -- since its easier to boot on spare computers), but this site is an excellant source of information about HDDs and optical drives, and the ATA/ATAPI specification in general
BonaFide OS Dev
lots of very good tutorials, look here for help
OSRC
lots of information on hardware -- look here for technical specification, and hardware information
and of course this site -- if you get stuck, or have problems, just ask
- kenneth_phough
- Member
- Posts: 106
- Joined: Sun Sep 18, 2005 11:00 pm
- Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
- Contact:
I use GCC, NASM and Bochs, but I suggest to you to buy a good book about OS Theor too. I allways work with one next to me!
Some time we try to programm an OS without really understand what we are doing. We read one or two tutorials about memory management, some about process, another aobut devices drivers, and other one about file systems. And then we belive that we are ready to write our code!
Programming an OS is a very hard job, but some author have written very good books about how we can be build one, some of these books with code and examples.
Good look, you will need it
Some time we try to programm an OS without really understand what we are doing. We read one or two tutorials about memory management, some about process, another aobut devices drivers, and other one about file systems. And then we belive that we are ready to write our code!
Programming an OS is a very hard job, but some author have written very good books about how we can be build one, some of these books with code and examples.
Good look, you will need it
Pepito
- kenneth_phough
- Member
- Posts: 106
- Joined: Sun Sep 18, 2005 11:00 pm
- Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
- Contact:
MMURTL
I have a book called "MMURTL V1.0 - aka Developing your own 32 bit OS" by Richard A Burgess and also one on the Linux kernel and another on the UNIX kernel. Would these books help or should I get another just on OS theory?
-Thanks
Kenneth
-Thanks
Kenneth
-
- Member
- Posts: 134
- Joined: Sun Oct 24, 2004 11:00 pm
- Location: North Dakota, where the buffalo roam
Re: MMURTL
I have "Developing Your Own 32-Bit OS" and, although I got a few useful tidbits of information from it early on, MMURTL is a terrible OS in many ways, built with non-standard and unportable tools, and mostly written in assembly. I won't go into full details of the problems that MMURTL has, but I recommend getting design ideas elsewhere.kenneth_phough wrote:I have a book called "MMURTL V1.0 - aka Developing your own 32 bit OS" by Richard A Burgess and also one on the Linux kernel and another on the UNIX kernel. Would these books help or should I get another just on OS theory?
-Thanks
Kenneth
- kenneth_phough
- Member
- Posts: 106
- Joined: Sun Sep 18, 2005 11:00 pm
- Location: Williamstown, MA; Worcester, MA; Yokohama, Japan
- Contact:
-
- Member
- Posts: 566
- Joined: Tue Jun 20, 2006 9:17 am
Starting OS devlopment
Hi ken,
Linux is a good platform for os devlopment.Actually
u only need an assembler for making an OS.....But
TO make ur job easier following tools are required.
1)Nasm(popular),Fasm(good!)
2)gcc ver version >3.0
3)qemu(best) -great little emulator for linux
but make sure that you have SDL already installed
Easy to use also.
--bochs (good) --but diffiult to use, u need to edit
the configuration files --bit messy
4)learn the use of dd command (beleive me
u will initially make only a floppy based OS!)
Now you have a good development platform
Linux is a good platform for os devlopment.Actually
u only need an assembler for making an OS.....But
TO make ur job easier following tools are required.
1)Nasm(popular),Fasm(good!)
2)gcc ver version >3.0
3)qemu(best) -great little emulator for linux
but make sure that you have SDL already installed
Easy to use also.
--bochs (good) --but diffiult to use, u need to edit
the configuration files --bit messy
4)learn the use of dd command (beleive me
u will initially make only a floppy based OS!)
Now you have a good development platform
- carbonBased
- Member
- Posts: 382
- Joined: Sat Nov 20, 2004 12:00 am
- Location: Wellesley, Ontario, Canada
- Contact:
The Tanenbaum books are good for theory. I find some university text's are pretty good, as well... but then... some are pretty basic, as well. You'd definitly want to browse the TOC and a few chapters to see how indepth they get and whether they actually describe several algorithms for a certain task, or simply one algorithm, that the author has somehow deemed the best.kenneth_phough wrote:What are some OS theory books you recommend?
-Thanks
Kenneth
There's a book out there something to the effect of "the design of unix system v." This is good for getting some background on the unix design philosophy (not that I think it's the best design, but it's good to know it, and realize what you like, and what you don't like from it).
I also found "protected mode systems architecture" to be a good book. While not a design book, it intimately details the x86 pmode platform and allows you to realize what kind of design details will, and will not, work on this platform.
Cheers,
Jeff
- carbonBased
- Member
- Posts: 382
- Joined: Sat Nov 20, 2004 12:00 am
- Location: Wellesley, Ontario, Canada
- Contact:
Re: Starting OS devlopment
You technically don't even need that -- gas is a perfectly capable assembler if you understand AT&T syntax assembly.SandeepMathew wrote: Hi ken,
Linux is a good platform for os devlopment.Actually
u only need an assembler for making an OS
For that matter, learn all the unix commands, and there are several that are especially useful that many people don't even realize they have at their disposal (eg, addr2line, objcopy, objdump).SandeepMathew wrote: 4)learn the use of dd command (beleive me
u will initially make only a floppy based OS!)
- chase
- Site Admin
- Posts: 710
- Joined: Wed Oct 20, 2004 10:46 pm
- Libera.chat IRC: chase_osdev
- Location: Texas
- Discord: chase/matt.heimer
- Contact:
I'll second the vote for Protected Mode System Architecture. It's by far my favorite book for understanding x86 memory and protected mode. The pages in mine are actually falling outcarbonBased wrote:I also found "protected mode systems architecture" to be a good book. While not a design book, it intimately details the x86 pmode platform and allows you to realize what kind of design details will, and will not, work on this platform.kenneth_phough wrote:What are some OS theory books you recommend?
-Thanks
Kenneth
For OS theory I typically tend to like the UNIX internals type of books. Most of them will have some theory but also show some implementation which is nice.
-
- Member
- Posts: 134
- Joined: Sun Oct 24, 2004 11:00 pm
- Location: North Dakota, where the buffalo roam
I have a book called "The Design and Implementation of the 4.4 BSD Operating System", written by the people who actually developed 4.4BSD. I think there's also an equivalent book now about FreeBSD. Its pretty good at explaining how the various parts of their OS work, and unlike MMURTL, it's BSD is an OS that people really use. The book is more about concepts then code, but it's a good idea to get the concepts before getting too far into the task.kenneth_phough wrote:What are some OS theory books you recommend?
-Thanks
Kenneth
I have both "Operating System Concepts" and "Operating Systems: Design and Implementation". I would have to say the former beats AST's book hands down.
As for the "Operating System Concepts" VS. "Modern Operating Systems", that is another story altogether... I've heard them compared as equals. "Operating System Concepts" is probably a little bigger hit on the pocket book $$$.
As for the "Operating System Concepts" VS. "Modern Operating Systems", that is another story altogether... I've heard them compared as equals. "Operating System Concepts" is probably a little bigger hit on the pocket book $$$.