New here

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
farfar

New here

Post by farfar »

Hey.  I've been taking programming classes in school, but nothing like this.  Everything has always been pretty much spoonfed to us and then I get on here and see you guys writing drivers for hardware, kernels, etc..  I have to admit, I'm pretty impressed.

I already know the basics of Assembly, VBasic, Pascal, C, and C++, but I'd appreciate any input on what compilers are the best and what languages I should learn.

Anyways, all this talk of making things like drivers is pretty interesting.  I'm going to read over http://www.mega-tokyo.com/os/os-faq.html when i have the time, but I'd appreciate links to pages/source that helped you learn, or just advice.

My logic is very good, so don't baby me, but it seems like this type of programming is very different than what I'm used to.

Thanks in advance.
K.J.

Re: New here

Post by K.J. »

From what you say, I'm guessing that you're coming from a Windows(Win32 API, MFC) background. If so, yes this is different. Mostly because you don't have a nice(or sorta nice) API that gets files for you, sets up windows and buttons, etc. With OS development, you have to deal with the hardware. And, since Intel wasn't counting on IBM using their 8086 in the XT(it might have been the AT, but I think that it was the XT), you often have to do some wierd things to get your OS to work. Generally though, you can use someone else's function(s) to do some of the really hard stuff.

What compilers are the best?
For assembly, I suggest NASM( http://nasm.octium.net/ ). Why? Because it's availible for most every OS that runs on an x86, the source code is availible(should make it easy to port it to your own OS), and most OS dev examples that are done in assembly are made to be compiled with NASM.
For C/C++, I suggest DJGPP( http://www.delorie.com/djgpp/ ) if you're using Windows or gcc( http://gcc.gnu.org/ ) if you're using Linux. Most examples will compile just fine with DJGPP/gcc and are made with/for them.

Linkers? I suggest LD. If you have DJGPP/gcc, you will 99% of the time already have LD.

Websites with good info:

http://surf.to/osdev
Bona Fide OS Development

http://www.execpc.com/~geezer/osd/index.htm
OS Development for Dummies

http://www.nondot.org/sabre/os/articles
Operating Systems Resource Center

http://www.osjournal.n3.net/
The OS Journal

Source code? The OS Development for Dummies source code is exelent:
http://www.execpc.com/~geezer/osd/code/osd.zip

Queeg(this is DF's OS source code):
ftp://ftp.mega-tokyo.com/pub/my_stuff/queeg.zip

Mine should be up on my site soon:
http://surf.to/osdev

BTW, you should really try and read some of the OS FAQ(even if it's just skimming it).

I hope that helps you out some,
K.J.
farfar

Re: New here

Post by farfar »

Alright thanks...  I appreciate it.  ;o

hehe, I've been too busy with school/other stuff to get online and reply, sorry..  right now i'm building a computer for a friend for free (don't ever do this!  it's a nightmare! =[ )... locks up after it probes the secondary master/slave during POST. :(

I'm sure your links will help me out some... when I get around to having enough time for that... (haha... probably summer)
Post Reply