ComputerForum.com ComputerForum.com  

Go Back   Computer Forum > Computer Software > Operating Systems

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 05-23-2009, 05:24 PM   #1
Gigabyte Member
 
Join Date: Jul 2008
Posts: 1,264
Default Creating an operating system from scratch

Hello,

For a long time I wanted to create an operating system, but I didn't knew too much programming, but now I learned a lot.
I want to create an operating system from scratch. What do I need to know before starting?

I understand that a project of this size will be enormous work, a lot of headaches, and so on. Is enough knowledge of programming in C++, or do I need to learn Assembly language? The platform will be a standard Intel x86 PC.
And about Assembly language, what can it do, and how can I learn it?

I don't really have experience with such big projects, and I didn't have the opportunity to talk to an expert about this.
chibicitiberiu is offline   Reply With Quote
Sponsored Links
Old 05-23-2009, 06:14 PM   #2
Megabyte Member
 
sshaggy's Avatar
 
Join Date: Jan 2009
Location: Incredible India
Posts: 723
Default

Found this on google. Might help..
__________________
GagTown | GeekFlock | Ni-t.in | iLove2Watch
sshaggy is offline   Reply With Quote
Old 05-23-2009, 06:57 PM   #3
Gigabyte Member
 
adarsh's Avatar
 
Join Date: Jul 2007
Location: Dubai
Posts: 910
Default

Take a look at this page : http://asm.inightmare.org/index.php?location=2

And particularly : http://webster.cs.ucr.edu/

This *should* help you get a good start with ASM.
__________________
MaDn3ss iS liKe ƃɹɐʌıʇʎ
all it takes is a 'lil PUSH!!
adarsh is offline   Reply With Quote
Old 05-24-2009, 10:59 AM   #4
Gigabyte Member
 
Join Date: Jul 2008
Posts: 1,264
Default

Quote:
Originally Posted by sshaggy View Post
Found this on google. Might help..
Thanks, that will help me to make it able to boot.

Quote:
Originally Posted by adarsh View Post
Take a look at this page : http://asm.inightmare.org/index.php?location=2

And particularly : http://webster.cs.ucr.edu/

This *should* help you get a good start with ASM.
Thanks, I really needed something like that.
chibicitiberiu is offline   Reply With Quote
Old 05-24-2009, 11:43 AM   #5
Kilobyte Member
 
wardhanster's Avatar
 
Join Date: Feb 2009
Location: India
Posts: 216
Default

http://wiki.osdev.org/Main_Page
this is what i use for guideline and refference
__________________
name:- HCL MINT
processor: intel T2080 @ 1.73ghz ( dual core)
l2 cache: 1,024 kb
memory: 1,920 mb
main board:HCL INFOSYSTEMS LIMITED T12Rg-H Video card :ATI RADEON XPRESS 1100
CHECK OUT MY BLOG AT
www.wardhanster.blogspot.com
wardhanster is offline   Reply With Quote
Old 05-24-2009, 09:41 PM   #6
fmw
Kilobyte Member
 
Join Date: Aug 2008
Posts: 474
Default

Quote:
Originally Posted by chibicitiberiu View Post
Hello,

For a long time I wanted to create an operating system, but I didn't knew too much programming, but now I learned a lot.
I want to create an operating system from scratch. What do I need to know before starting?

I understand that a project of this size will be enormous work, a lot of headaches, and so on. Is enough knowledge of programming in C++, or do I need to learn Assembly language? The platform will be a standard Intel x86 PC.
And about Assembly language, what can it do, and how can I learn it?

I don't really have experience with such big projects, and I didn't have the opportunity to talk to an expert about this.
C will do anything an assembler will do. Given the fact that you ask these questions, I would suggest you aren't quite ready for prime time. Writing an operating system is about as complex as programming gets. Why not spend your time working on some useful applications.
fmw is offline   Reply With Quote
Old 05-25-2009, 09:30 AM   #7
Gigabyte Member
 
Join Date: Jul 2008
Posts: 1,264
Default

Quote:
Originally Posted by fmw View Post
Given the fact that you ask these questions, I would suggest you aren't quite ready for prime time. Writing an operating system is about as complex as programming gets. Why not spend your time working on some useful applications.
I know!! Don't be one of these guys who instead of answering the questions I pose, tries to discourage me. How will I gain experience if not trying? I want to try this, I want to learn.
I won't quit this project, at least not yet. But I have many things to learn first. Today I just learned a bit of Assembly and how easy is to make a bootable floppy.

Now I have a question. When the compiler compiles the code, does it turn into Assembly code (that .obj file) which is then linked and you get the executable? Or the linker does that? Or it never happens?

Because I want to turn some C++ projects which are much easier for me to make into Assembly. I found out that it is possible with the DEBUG command which exists in both DOS and Windows cmd to display this Assembly code.
chibicitiberiu is offline   Reply With Quote
Old 05-25-2009, 11:40 AM   #8
Megabyte Member
 
sshaggy's Avatar
 
Join Date: Jan 2009
Location: Incredible India
Posts: 723
Default

Why not try to modify a linux distro according to ur own ideas. This will give some experience beforehand. Lots of resources are just a google away.
Otherwise i found another great site, http://www.linuxfromscratch.org/
__________________
GagTown | GeekFlock | Ni-t.in | iLove2Watch
sshaggy is offline   Reply With Quote
Old 05-25-2009, 01:41 PM   #9
fmw
Kilobyte Member
 
Join Date: Aug 2008
Posts: 474
Default

Quote:
Originally Posted by chibicitiberiu View Post
I know!! Don't be one of these guys who instead of answering the questions I pose, tries to discourage me. How will I gain experience if not trying? I want to try this, I want to learn.
I won't quit this project, at least not yet. But I have many things to learn first. Today I just learned a bit of Assembly and how easy is to make a bootable floppy.

Now I have a question. When the compiler compiles the code, does it turn into Assembly code (that .obj file) which is then linked and you get the executable? Or the linker does that? Or it never happens?

Because I want to turn some C++ projects which are much easier for me to make into Assembly. I found out that it is possible with the DEBUG command which exists in both DOS and Windows cmd to display this Assembly code.
C produces machine code, just like an assembler or any compiler for that matter. Assemblers are low level programming tools. As an example, if you want to set up a stack for the results of some computations, an assembler allows you to define exactly where in memory the stack will go. Most high level compilers would allocate the memory for you. Someone writing an accounting system in a high level language wouldn't care where the stacks are located or even that there are stacks at all. Someone writing an O/S would. C, unlike higher level compilers can provide the same kind of low level instruction work that an assembler can handle. It is certainly possible to write an O/S in C.

I wasn't trying to discourage you. I was trying to advise you. Work on some applications until you become conversant with C programming. The O/S work can wait until you know what you're doing.
fmw is offline   Reply With Quote
Old 05-25-2009, 08:04 PM   #10
Gigabyte Member
 
Join Date: Jul 2008
Posts: 1,264
Default

Quote:
Originally Posted by fmw View Post
C produces machine code, just like an assembler or any compiler for that matter. Assemblers are low level programming tools. As an example, if you want to set up a stack for the results of some computations, an assembler allows you to define exactly where in memory the stack will go. Most high level compilers would allocate the memory for you. Someone writing an accounting system in a high level language wouldn't care where the stacks are located or even that there are stacks at all. Someone writing an O/S would. C, unlike higher level compilers can provide the same kind of low level instruction work that an assembler can handle. It is certainly possible to write an O/S in C.

I wasn't trying to discourage you. I was trying to advise you. Work on some applications until you become conversant with C programming. The O/S work can wait until you know what you're doing.
Okay, thanks for help. But how do you explain that the DEBUG command in dos is able to display in assembly the data on a floppy for example in the boot sector to make it execute a program? Is it possible to put a C program in that boot sector to boot?
chibicitiberiu is offline   Reply With Quote

Reply

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Multiple Operating System on a computer avocado Operating Systems 10 03-11-2008 02:47 AM
unidentified operating system mishpao17 Operating Systems 3 02-13-2008 09:56 AM
64-bit Operating System maximum physical memory addresses 2048Megabytes Operating Systems 1 01-30-2008 03:39 PM
No operating system jabba217 Operating Systems 1 01-15-2008 10:36 PM


All times are GMT +1. The time now is 08:41 PM.


Powered by: vBulletin Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.
Copyright © 2002-2014 Computer Forum