Starting an OS!

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
New OS maker

Starting an OS!

Post by New OS maker »

Hey,

I want to start an OS, but how do i start off, i am learning C++ & have Microsoft Visual C++ 6, Visual Basic 6, Visual Fox Pro 6 & all the other tools that come with visual studio 6 enterprise (i only dont have the msdn library) are all these tools enough to start off do i only need to know C++??

can i make an OS as powerfull as windows?

Please tell me WHERE do i start???

ciao. 8)
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Starting an OS!

Post by Pype.Clicker »

New OS maker wrote: Hey,

I want to start an OS, but how do i start off, i am learning C++ & have Microsoft Visual C++ 6, Visual Basic 6, Visual Fox Pro 6 & all the other tools that come with visual studio 6 enterprise (i only dont have the msdn library) are all these tools enough to start off do i only need to know C++??
no. almost all these tools will be almost useless. you need a good assembler (always comes handy at a time), a linker you can control (i mean telling it what byte you want to go at which place, etc). Starting with C++ isn't recommended because it requires a complex runtime support that you probably just won't have at start (exceptions support, RTTI, etc.) - but it is possible nonetheless...
can i make an OS as powerfull as windows?
I'm afraid not ... because the power of Windows is in its software library and you probably don't own $100.000.000.000 to force software companies to support your O.S.
However you can try to create something more powerful than windows ... which power is somewhere else ;)
Please tell me WHERE do i start???
learn, learn, learn ... find out what memory management is, what paging is about, the difference between preemptive and real-time scheduling, how to synchronize N readers and M writers to a shared resource, how your processor handles interrupts (and what they're all about), how a disk works, etc.

then the time will come when you'll have to make the design choices (microkernel ? exokernel ? unix/nt-like kernel ?, 16/32/64 bits ? GUI/commandline/speech ...)

then you'll start with real coding ;)
ciao. 8)
Post Reply