Results 1 to 15 of 15

Thread: basic operating system

  1. #1

    Thread Starter
    Hyperactive Member dandono's Avatar
    Join Date
    Aug 2004
    Location
    Cornwall, UK
    Posts
    485

    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?

  2. #2
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    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 PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI 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

  3. #3
    Retired G&G Mod NoteMe's Avatar
    Join Date
    Oct 2002
    Location
    @ Opera Software
    Posts
    10,190

    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
    ØØ

  4. #4

    Thread Starter
    Hyperactive Member dandono's Avatar
    Join Date
    Aug 2004
    Location
    Cornwall, UK
    Posts
    485

    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?

  5. #5
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    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 PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI 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

  6. #6

    Thread Starter
    Hyperactive Member dandono's Avatar
    Join Date
    Aug 2004
    Location
    Cornwall, UK
    Posts
    485

    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?

  7. #7
    Banned dglienna's Avatar
    Join Date
    Jun 2004
    Location
    Center of it all
    Posts
    17,901

    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!

  8. #8
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    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 PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI 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

  9. #9
    I'm about to be a PowerPoster!
    Join Date
    Jan 2005
    Location
    Everywhere
    Posts
    13,647

    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.

  10. #10

    Thread Starter
    Hyperactive Member dandono's Avatar
    Join Date
    Aug 2004
    Location
    Cornwall, UK
    Posts
    485

    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?

  11. #11
    Banned dglienna's Avatar
    Join Date
    Jun 2004
    Location
    Center of it all
    Posts
    17,901

    Re: basic operating system

    Did you look into the Assembly Forum? I'd start there.

  12. #12
    PowerPoster Dave Sell's Avatar
    Join Date
    Mar 2004
    Location
    /dev/null
    Posts
    2,961

    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.

  13. #13
    Addicted Member
    Join Date
    Mar 2005
    Posts
    158

    Re: basic operating system

    hi dandono.
    em... u r lucky, coz i got almost the full resource u need to run your own operating system ,

    give me a minute to write
    if u felt my post make u happy ,
    then u could make me happy too by rating my post

  14. #14
    Addicted Member
    Join Date
    Mar 2005
    Posts
    158

    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

  15. #15
    Addicted Member
    Join Date
    Mar 2005
    Posts
    158

    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
  •  



Click Here to Expand Forum to Full Width