| | |
designing an operating system
![]() |
I'm not sure if this is the right spot to put this. I was wondering how would you create and operating system like linux or windows or novell. What programs would you use. I've always wondered how it was done. I would love to learn to create my own.
Owner/PC Technician of:
The PC Doctor
"If we can't fix it, it's just not fixable"
The PC Doctor
"If we can't fix it, it's just not fixable"
•
•
•
•
Originally Posted by viperman224
I'm not sure if this is the right spot to put this. I was wondering how would you create and operating system like linux or windows or novell. What programs would you use. I've always wondered how it was done. I would love to learn to create my own.
It is essential to understand the heart of the OS, which is called the kernal, is the MOST important part of an OS. Fancy graphics and SVGA coding can all come after you have developed a solid hardcore kernal. Now as for what programs you would use, believe it or not you can use any standard command line compiler or IDE (such as Borland or MSVC++). The most important thing about using an OS is how its loaded. All hardrives and bootable media have something called boot sectors (typcal near front cylinders of the media) that allow "execution" of your OS. As long as you comply with specific system standards and handle all your RAM right then your OS should be properly loaded. Making an OS is a in-depth subject, when I first took a shot at it the below tutorials really helped me out. Check it out.
Tutorial on making a C/C++ OS:
Part 1:
http://www.1cplusplusstreet.com/vb/s...=6718&lngWId=3
Part 2:
http://www.1cplusplusstreet.com/vb/s...=6743&lngWId=3
A Hacker's Mind:
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes..." - J.D.Salinger
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes..." - J.D.Salinger
This was originally posted in the tutorials section of the site. It got moved to C++. I think Computer Science is more appropriate for it so it's being moved once again
Dani the Computer Science Gal 
Follow my Twitter feed! twitter.com/DaniWeb
And if you're interested in Internet marketing there is twitter.com/DaniWebAds

Follow my Twitter feed! twitter.com/DaniWeb
And if you're interested in Internet marketing there is twitter.com/DaniWebAds
•
•
Join Date: Mar 2004
Posts: 39
Reputation:
Solved Threads: 1
Sorry if I'm being in any way rude by this, but do you understand the undertaking you would have to go through in creating an OS? Bill Gates has a little empire for a reason. The OS would have to be adaptable to modern security risks and have the ability to adapt to software designers specifications.
I admire your desire to build one, but understand it is quite the task.
I admire your desire to build one, but understand it is quite the task.
he can try to build a kernal, thats what counts, and proven by linux a kernal can be a one man job, who knows maybe he will make an awsome kernal and distribute the source and in 4 years it will be graphical...
but in the rare occerence of the stated situation above, the most important thing is by trying to develop an OS he will understand the guts of how an OS works. Good Luck, despite an OS being a huge task and a duanting procedure, you can still keep it small and practial, creating nessisary OS's to repair computer complications would be a good application.
EDIT: remember an OS is just a system level environment, hello world can be an OS if developed and installed correctly.
but in the rare occerence of the stated situation above, the most important thing is by trying to develop an OS he will understand the guts of how an OS works. Good Luck, despite an OS being a huge task and a duanting procedure, you can still keep it small and practial, creating nessisary OS's to repair computer complications would be a good application.
EDIT: remember an OS is just a system level environment, hello world can be an OS if developed and installed correctly.
A Hacker's Mind:
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes..." - J.D.Salinger
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes..." - J.D.Salinger
the linux kernel was a one man job 13 years ago... with all due respect to Torvalds (and the man deserves a lot of it), I doubt he would be able to write the gargantuan beast we have now, all on his own
well, he probably could, but it would be more complicated now by orders of magnitude than what it was before...
but yes, you're of course right. viperman224 can write a basic dos. its quite an undertaking though...
I would recommend doing a LFS install first, so that you see how an OS these days fits together (as good as an article could be, nothing beats experience). better to see what end result you want than to start writing c without a clear image of what you want as a goal
or maybe a LFS of an older kernel would be better...they would be simpler without all the extra security and networking routines. you can always learn about those later...the important bit is to understand how dos works
but yeah. an interest in doing something is the first step towards much fun (and long nights...and an annoyed girlfriend...)
well, he probably could, but it would be more complicated now by orders of magnitude than what it was before...
but yes, you're of course right. viperman224 can write a basic dos. its quite an undertaking though...
I would recommend doing a LFS install first, so that you see how an OS these days fits together (as good as an article could be, nothing beats experience). better to see what end result you want than to start writing c without a clear image of what you want as a goal
or maybe a LFS of an older kernel would be better...they would be simpler without all the extra security and networking routines. you can always learn about those later...the important bit is to understand how dos works

but yeah. an interest in doing something is the first step towards much fun (and long nights...and an annoyed girlfriend...)
..Spuskayas k velikay reke, mhe vse ostavlyayem sledeh na peske... i lodka skolzeet v temnote. anam ostayutsya kruge na vade. - mashina vremeni
Fear the Fearsome fury of the smiling DM
Fear the Fearsome fury of the smiling DM
The most obvious implementation is to write a cooperative multitasking system whereby when one application has finished doing stuff with the CPU, it calls some kind of yield function, or calls a wait for message function.
In the implementation of that you then have to switch to another task if necessary - possibly by calling setjmp() and longjmp() to save the stack and the cpu context (Assuming this is in C)
Otherwise you'll have to switch stack and save the CPU context manually, which will be CPU specific and may involve assembly language.
Once you've figured out which process needs to run you can then call longjmp() back to the context of that process, and continue it from where it left off. ect.....
On the other hand I would not suggest a DOS ......It sounds like a fun project, but it seems to me that people doing these kinds of projects are building desktop environments/GUI's not an operating systems. With that said, if I may make a suggestion, try using a MACH base rather than a DOS base. Remember the whole system is limited by the functionality of the kernel, plus MACH will just make a lot of things much easier on account of it's messaging system being, well actually existing.
This will enable you to not only easily develop software for it, but also to easily extend its functionality.
Make any sense?
In the implementation of that you then have to switch to another task if necessary - possibly by calling setjmp() and longjmp() to save the stack and the cpu context (Assuming this is in C)
Otherwise you'll have to switch stack and save the CPU context manually, which will be CPU specific and may involve assembly language.
Once you've figured out which process needs to run you can then call longjmp() back to the context of that process, and continue it from where it left off. ect.....
On the other hand I would not suggest a DOS ......It sounds like a fun project, but it seems to me that people doing these kinds of projects are building desktop environments/GUI's not an operating systems. With that said, if I may make a suggestion, try using a MACH base rather than a DOS base. Remember the whole system is limited by the functionality of the kernel, plus MACH will just make a lot of things much easier on account of it's messaging system being, well actually existing.
This will enable you to not only easily develop software for it, but also to easily extend its functionality.Make any sense?
![]() |
Similar Threads
- please select the operating system to start (Windows NT / 2000 / XP)
- News Story: Crystal Ball Sunday #5: Operating System Interoperability (Windows NT / 2000 / XP)
- News Story: Google's operating system (Search Engine Optimization)
Other Threads in the Computer Science Forum
- Previous Thread: recommend good online courses for SQL, data controls?
- Next Thread: How to find programming lang used in exe
Views: 23580 | Replies: 35
| Thread Tools | Search this Thread |
Tag cloud for Computer Science
access ai algorithm algorithms array assembly assignment assignments big-oh binary bizarre book bootloader brunel bubble business cern codebreaker compiler computer control conversion copyright data data-base database development dfa dissertation dissertations dissertationthesis dissertationtopic email execution extensions git givemetehcodez government graphics gui guidelines homework homeworkhelp ibm idea ideas info information insertion introductory itcontracts jobs language lazy lighthouse lincence marketing math merge method mining mobile-apps mobileapplication ms networkingprojects news notation openoffice os parser programming project ps3 quick rasterizer recursion result sam-being-cute science security selection servermonitoring sex simulation software sorting spoonfeeding sql-server student student-gets-caught supercomputing syntactic tracking tree turing uk university verify warehouse ww2






