Page 1 of 1
I need advise on what path to take
Posted: Sat Aug 04, 2007 12:09 am
by no_one
Hi, I want to get started in OS development. I have some exprience with C. I have an Intel iMac, which has the NASM assembler. I don't know any assembly but I would like to. I don't know how operating systems work and I don't have an understanding of the inside of a computer. What book do you recommend that will get me started in OS development based on my knowledge?
Thanks in advanced
Posted: Sat Aug 04, 2007 6:15 am
by een
There are quite a few books recommeneded in
this thread. Also, you should give
this a look. I'm new to this myself, so I can't give you a personal recommandation for a book. Besides from that, you should troll through this forum for a while, and get inspiration to develop your own OS. There are several ways of attacking a way to start developing your own OS.
Some people like to read tons of theory first, which will give them a solid fundation of knowing what they're about to do. Other people are satisfied by acknowledging some of the theory, while already at an early stage, starting to develop - i.e. a bootloader - and then get into more theory as it is needed during the expansion of their new OS.
I figure there are two things you should keep in mind from the start:
1. Comment your code from the start on, when you are developing - not after!
2. Don't be a total copy cat.
I've been thinking about learning how to and start develop my own little OS for a while now, although I've never gotten around to it. Stomache says I'll be starting soon - so does my brain. It's been tempting just to pass the heavy theory and go straight-on and code --- but then I'd needed to look at other's code. Been programming for quite some years now, and the feeling is never better when you create something from the bottom on yourself, and it works!
Someone at this forum (can't remember the nick) has made a tutorial in creating your own bootloader. The guide seems nice - a mix of practical code and theory. URL is
http://www.mt2002.sitesled.com/
Good luck !
Posted: Sat Aug 04, 2007 7:14 am
by Milo
after finishment of bootloader, man, I'm sure you're gonna love that feeling and just wanna keep on writing... So try your best to write bootloader now.
Posted: Sat Aug 04, 2007 11:59 am
by no_one
Thanks, I'll check out those links.
Posted: Sat Aug 04, 2007 3:15 pm
by no_one
I have a problem, the tutorials say that I need:
- NASM assembler
- VFD
- PartCopy
- Bochs emulator
I have a Mac so I have NASM. VFD is not available for Mac, what other application can I use with Mac to make virtual floppies? PartCopy isn't available for Mac either, what can I use? Bochs is available for Mac but I already have VMware. Will it work?
Posted: Sat Aug 04, 2007 4:43 pm
by een
no_one wrote:I already have VMware. Will it work?
Yes
Posted: Sat Aug 04, 2007 5:31 pm
by Brynet-Inc
een wrote:no_one wrote:I already have VMware. Will it work?
Yes
Yes - and No.. From what I hear it lacks any real debugging capabilities.
Use a better and open source emulator, like Bochs or Qemu.
no_one wrote:VFD is not available for Mac, what other application can I use with Mac to make virtual floppies?
Mac OS X is a decent Unix from what I hear, perhaps it includes the "dd" command.. look into it
Posted: Sat Aug 04, 2007 6:41 pm
by no_one
Yes it has dd, thanks. As for PartCopy, what can I use?
Posted: Sun Aug 05, 2007 5:57 am
by Brynet-Inc
no_one wrote:Yes it has dd, thanks. As for PartCopy, what can I use?
Again I think dd will suffice
Posted: Sun Aug 05, 2007 6:04 am
by distantvoices
It took me a year of prestudy from august 2001 to august 2002 ere I could start doing some osdeving - it was a bootloader at first, then a small kernel lite thing switching some stacks around the cpu - it was some output stuff to write messages to the screen ... small stuff of that sort.
Also it was about rediscovering Dynamic data structures like linked lists, trees and sorta. I've heard about them in programming courses, but it is another thing to use them in all earnest.
Oh, yes and dd comes in handy if you're using some flavour of Linux/Unix