Skip to main content
GameDev.net gamedev.net
🔒 Locked

Operating Systems - - - Question?

Started by Physics515 Jun 17, 2005 at 8:19 PM 15 replies 5.9k views
Original Post
Physics515
Physics515
Dose anyone know how somone would get started making an OS... Im not really looking in to making nothing big but atleast something that boots up and runs some basic processes. I just want to know what i would need the get started and what languages i need to know. or If anyone has some links or book sudjestions that would be great to.
Fixxer
Fixxer
Assembly.
Good luck, youll need it.
Physics515
Physics515
yea i kinda figured that but is there any good stuff about OS's.
darklordsatan
darklordsatan
Well, first of all, I might say making an OS, even a simple one, aint a beginners start point, so my advice is for you to have a solid basis in a programming language like c/c++ for instance, otherwise, you might end up quitting at half the way...

That said, heres a good list of resources to get you started:
The OS resource center
Write your own operating system
Code your own OS
So You Wanna Create Your Own x86 Operating System?
Os development
Make a Simple Text or Graphical Operating System


PD: If you like linux, or would like to customize it in any way, why dontcha give Linux from Scratch (LFS) a try?

In any case, good luck
Drew_Benton
Drew_Benton
Book Suggestions
Teach Yourself Assembler - Good basic book on learning assembly, very straigt forward and simple.
Assembly Language Master Class - Covers a lot of useful advanced topics such as: device drivers, sound, low level disk tecniques, data compression, video, memory and virus/antivirus.
Programming Solutions Handbook for IBM Microcomputers - Book that goes though and you learn how to make a mini-OS. Included is topics on the keyboard, modem, printer, and serial communications.
IBM PC Assembly Language and Programming - More comprehensive assembly language book. Teaches more stuff than the first one listed here.

Online Reading
Creating Your Own OS
(Planet Source Code section - after viewing 5 of these, you will need to create a free account to view more of them. Very awesome site, so don't be afraid not to sign up!)
ADIXOS 3.0
C++ Operating System Development
Operating System Development Part 2
DOS Kernel
Jazmyn - A 32-bit Operating System
Make a Simple Text or Graphical Operating System

Software
Emu8086 - Emulator that comes with a simple example for a very mini-os (about less than 30 lines of code!) Very good product.

Well that's it from me for now [smile] Good luck!
Physics515
Physics515
well thank for the help i really do apreatiate it. this really dose help.

BTW - I do have about 2 1/2 year in C# so i have a bit of experence.
Physics515
Physics515
yea one more question, this time about Assembly. Do you have to develop on the same processor type that your running you OS on or can you develop on one and run on another.
darklordsatan
darklordsatan
The difference would be with power pc's and intel/amd ones, if you reffer to intel and amd theres no difference, other than syntax.
For instance, Visual C++ uses Intel syntax while GCC uses AT&T syntax, which are different, so you need to be aware of that once you start coding...
Azune
Azune
Quote:
Original post by Physics515
yea one more question, this time about Assembly. Do you have to develop on the same processor type that your running you OS on or can you develop on one and run on another.


Don't take this the wrong way but if you have to ask questions like this you aren't ready to develop an OS. You should master the Assembly language of your target processor first. If it's Intel then grab the processor manuals off their site. They cover all the basics you need, like loading the GDT and switching to protected mode. You should also learn C as well. I don't know C# but I think they're similar so you shouldn't have much trouble. Anyway good luck with your project, even if you don't finish you'll learn a lot from it.

EDIT: And to answer your question, you can develop on a different architecture provided you have a cross compiler/assembler.
vNistelrooy
vNistelrooy
Quote:
Original post by Physics515
Im not really looking in to making nothing big but atleast something that boots up and runs some basic processes.


Runs some basic proccesses? This is NOT simple neither 'nothing big'.
"C lets you shoot yourself in the foot rather easily. C++ allows you to reuse the bullet!"
Physics515
Physics515
yea thanks for the other links. And I have started C a while back and it has its differences and I was planning on ether starting C++ or Assembly near the end of this summer so im gessing it'll be assembly.

Again thanks!
nas1982
nas1982
Hi there Assembly might not be the best language. consider c, I studied a module in my degree which we built minux a minature version of linux.
c will hopefully reduce the amount of coding needed comapred to Assembly.
jeroenb
jeroenb
I am currently looking at the linux kernel 0.01. But I cant manage to compile it. It uses a 'gas' compiler, never heard of it. I also looked at other tutorials, and they all use old dos tools that don't run under XP :(.
Crafter 2D: the open source 2D game framework ?Github: https://github.com/crafter2d/crafter2d
Twitter: [twitter]crafter_2d[/twitter]
Anon Mike
Anon Mike
If you want to compile Linux then you pretty much need to be running Linux. I know that sounds like a chicken-and-egg thing but that's pretty much how it works.

GAS is the GNU Assembler.

You can code the vast majority of an OS in C or some other language that compiles to native code but you'll need to know some assembly for the bootloader to get things started and for stuff like context switching and locks.

Even a simple OS is nowhere near a beginners undertaking. As someone else mentioned "runs some simple processes" is definitely not simple.
-Mike
noNchaoTic
noNchaoTic
You can get away with writing your bootstrap and the file system stuff in assembler the rest you can write in C/C++, however you will need to write your own printf methods, etc. Since you wont be able to use any of the existing libraries :-P Good luck, cos your gonna need it... lol
Steven ToveySPUify | Twitter
jumpjumpjump
jumpjumpjump
I'm an admin for osdever.net and one thing you really might not want to do, is write your OS entirely in asm. Only if you know it well will you ever be able to accomplish anything.

I would recommend learning nasm and C.

Then head over to osdever.net for some tutorials.
You may also want to check out the oslib(link in sig).
Then ask questions in #osdev on wyldryde.net or post on osdever's forums when I get done writing them.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.