|
-
Feb 13th, 2005, 07:10 PM
#1
Thread Starter
Hyperactive Member
basic operating system
hi, i would like to make an operating system that can have its own gui and be a very very very basic version of windows but look completly different.where should i start? what are the basics for making an operating system that will boot and work? what programming language is an operating system written in? this may be a little over the top for my age but it is worth a try.
ps. if i have put this in the wrong forum then can you move it because i could not figure what was the best forum for this kind of question.
If there is only one perfect person in the universe, does that make them imperfect?
-
Feb 13th, 2005, 07:48 PM
#2
Re: basic operating system
This Forum is the correct place.
I would first start by saying that this is a HUGE task to try to accomplish. I know I wouldn't try to do it even
with all my experience, but its up to you.
I believe that Windows is written in C++ and drivers are written in Assembly Language or a combination. Your
OS would need to communicate with the drivers so it could interact with the hardware like CDRoms, Floppies,
and not to mention Hard Drives.
You need to be able to manage physical and virtual memory, multi-threading with the CPU, basic I/O with
with the motherboard. Put it all together and then your ready to start writting the OS.
Best suggestion is to learn each part one by one by taking some computer theory classes and labs. Then
see if you still want to do this. But it would be a good way to learn about the inner working of todays computers.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
Feb 13th, 2005, 08:02 PM
#3
Re: basic operating system
Just have to add to RobDog post there. That you probably have to write pretty many lines of ASM just to get it booted. A bootstrapper is the first thing you can try too goolge on.
I have never understood how much or what you have to do to use a "mid/high" level language to work when you are making your own OS. Because as you might know, if you compile an exe in Windows, it won't work on Linux or Mac, and it won't just work in your OS either. So it is a big task.
One thing though. Startin my doing some searces on this forum is probably a great idea. I know at least that I have earlier posted links to usefull pages both in this section and in the C++ section, and I think in the Project section.
Good Luck
ØØ
-
Feb 13th, 2005, 08:26 PM
#4
Thread Starter
Hyperactive Member
Re: basic operating system
if i worked realy hard on this then will i be able to make an os that works and what is ASM?
If there is only one perfect person in the universe, does that make them imperfect?
-
Feb 13th, 2005, 08:59 PM
#5
Re: basic operating system
You could probably do it in a few years if you worked full time at it.
ASM = Assembly Language.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
May 19th, 2005, 09:39 AM
#6
Thread Starter
Hyperactive Member
Re: basic operating system
does anyone know where i can learn ASM?
If there is only one perfect person in the universe, does that make them imperfect?
-
May 19th, 2005, 09:46 AM
#7
Re: basic operating system
This would be the first place that I'd look. There are quite a few experienced people that can help you. Good luck!
-
May 19th, 2005, 10:49 AM
#8
Re: basic operating system
Actually we have a Assembly Forum too.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
May 19th, 2005, 11:41 AM
#9
Re: basic operating system
To add to NoteMe's addition to RobDog's post, apparently (I think I heard it from MS or Linux developers, not sure) merely getting your OS to boot is one of the hardest things to actually do.
ASM or assembly language is a sort of English-style way of representing machine code instructions. Each ASM code compiles to an equivalent machine code instruction value. It is the lowest level of programming anyone can do, basically used for achieving direct control over the hardware. In an OS, it would be used to make up the underlying core (kernel) of the OS, that does things such as memory management, interrupts handling, etc.
If you don't know how memory is organised, how hardware interrupts work, how an OS interfaces with the BIOS and all the hardware devices (all using ASM), then, not to put a damper on your enthuasiasm, but I would suggest writing an OS, even an extremely basic one, is a fairly futile task . I, personally, certainly wouldn't attempt it unless I had about 10 more years experience and worth of knowledge in low-level computing, and a lot of spare time .
A command-line based interface is pretty straightforward once you have completed the kernel and a basic (text only) graphics driver. To make a GUI would require a full-blown graphics driver, with colour support etc., you would need an extensive knowledge of how the graphics card and CPU work together to produce pixel output on the screen.
Plus, as Rob mentioned, you need to be able to shift data from the hard drive into the memory to load your OS, allocate memory blocks for drivers, applications, watch over their execution, and unallocate memory after they have terminated.
You would need a deep understanding of things like pointers (common in C/C++), address spaces, how code is executed, how OS's differentiate between data and code (cos they are both stored as binary), etc., etc.
Once you have written the kernel to make it work, you would need to write the apps needed to make anything happen (written in a higher-level language such as C++).
In short, it is a monumetal task for a single person to achieve, it is beyond most people on this planet. Even for those with the experience and knowledge to be able to do it, it would take a lot of careful planning, a huge amount of coding, and an even huger amount of debugging, before they would even get the thing to boot. Wonder why Microsoft has so many hundreds and hundreds of developers.
Sorry if I came across as throwing a wet towel on your party (metaphorically speaking), I'm just trying to answer your question Best wishes.
-
May 26th, 2005, 03:52 PM
#10
Thread Starter
Hyperactive Member
Re: basic operating system
what program do i need to write asm code. i dont think microsoft would want to make a program for making operating systems other than there own. i have been playing around with other operating systems and linspire 5.0 is pretty cool. how do i learn basic syntax of asm like a tuital. a funny thing about the spell check in linspire though. if you spell something wrong like i have spels tuital wrong and am too lazy to correct it the spell check list contains words nothing like it. one that made me laugh is that it has a word in the dictionary that i am not allowed to say here because of the aup. how lond would it take to make a basic operating system. i now understand that the main bit of a project like this is getting it to read scripting languages and boot and then making the gui and getting it to work with devices. so realy what i am asking is what program do i use?. what operating system does it run on? and is there any tutorials?
thanks, dandono
If there is only one perfect person in the universe, does that make them imperfect?
-
May 26th, 2005, 04:48 PM
#11
Re: basic operating system
Did you look into the Assembly Forum? I'd start there.
-
May 26th, 2005, 06:26 PM
#12
Re: basic operating system
Look at the source code for Linux. If you do not even know what ASM is then you have about 5 years to go before you have anything to show for your efforts.
Nobody knows what software they want until after you've delivered what they originally asked for.
Don't solve problems which don't exist.
"If I had eight hours to cut down a tree, I'd spend six hours sharpening my axe." --- Abraham Lincoln (1809-1865)
2 idiots don't make a genius.
-
May 26th, 2005, 07:00 PM
#13
Addicted Member
-
May 26th, 2005, 07:30 PM
#14
Addicted Member
Re: basic operating system
hi, first of all, to program your own mini os, the stuff that you must know is like below.
1. assembly language, (registers.. eax,ebx,...) ip (instruction pointer), add, stack, push, pop and ... and u have a clear view on how computer actually works. bits, bytes, kilobytes and so on...
2. choose a assembler from current available assembler, free one or $$ one. i personally recommend FASM. flat assembler (http://flatassembler.net) and u could join its message board too (http://board.flatassembler.net).
3. if possible, get an emulator, so that u don't have to restart ur pc to testing ur operating system. VMWare is nice (but $$). the free one is bochs. (http://bochs.sourceforge.net/)
4. the intel architecture manual is a must in ur pc. (http://developer.intel.com/design/pentium/manuals/) assume u r using intel processor. if AMD, the check out the amd website for processor manual.
5. a Ralf Brown's Interrupt List is almost compulsory on ur pc, (http://www-2.cs.cmu.edu/afs/cs/user/...WWW/files.html) so u search for particular interrupt easily.
6. for editor, u just need notepad, and u could code ur OS in notepad (really), assemble it using FASM, then run it on VMWARE or BOCHS.
ok, the above all is needed to begin working on ur os. what i suggest is, u could try to use the asm to program windows application. yes. u could use ASM to program a windows app. basically, just get urself familiar and comfort with using assembly language before u start the harder thingy.
ok, last time in fasm, we got a small OS contest, which is to fit an OS in 512 bytes (one sector), yes, 512 bytes (in 512 characters) and u can't imagine how creative is human mind. check out (http://board.flatassembler.net/topic.php?t=2164) if you could able to understand all those 512 bytes OS, then u r on a nice shape to start coding your own one .
reference:
http://www.osdever.net/
http://board.flatassembler.net/forum.php?f=11
if u felt my post make u happy ,
then u could make me happy too by rating my post
-
May 26th, 2005, 07:34 PM
#15
Addicted Member
Re: basic operating system
plez check out the icezelion win32 assembly tutorial (MASM coded) in (http://win32assembly.online.fr/tutorials.html), u could find the translated code (MASM to FASM) in my web page (http://sulaiman.netadvant.com)
if u felt my post make u happy ,
then u could make me happy too by rating my post
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|