Questions

How do I build my Own Operating System by just using Assembler and NOT Win?

+
0 Votes
Locked

How do I build my Own Operating System by just using Assembler and NOT Win?

Hi!
I'm working and researching Operating Systems (OS), but I really want to build my own from scratch without Microsoft Components or Linux COM files.

Is there tools which could compile 16-bit files and let me build an BOOT and OS-loader.

Could somebody tell me where I could find the tools which I need, Pleas! NO VIRUS TOOLS OR TOOLS WHICH ARE CRACK.

Also is there any video tutorials here at Techrepublic where I could learn more about how to build and understand a BIOS.
  • +
    0 Votes
    robo_dev

    Here's a page called how to write your own OS
    http://www.groovyweb.uklinux.net/index.php?page_name=how%20to%20write%20your%20own%20os

    The building block of all this is good-old assembly code; Intel or AT&T assemblers are the most common ones. OS's are written in a combination of assembly and C/C++

    +
    0 Votes
    TheChas

    For some good ideas on building your own OS, search the Foundries at www.sourceforge.net there are several OS projects in various stages of development.

    There are several questions you need to answer in relation to building your own operating system.

    How am I going to use this computer?

    What kinds of software do I want to run?

    What kind of hardware do I plan to use?

    If you want to do assembly level code work, or build dedicated automated systems, your OS will not need to be very complex.

    If you want to be able to run commercially available software, or use anything beyond basic graphics, you will either need to emulate a current OS, or create a very large amount of code.

    The big trick for writing your own BIOS is to keep it clean and compact.

    The tough part of writing your own BIOS will be collecting all of the hardware level addresses, commands and syntax for your motherboard.

    You can step back 30 years or so and look at the old Altair computers. The set of commands that a user needed to enter manually one byte at a time were essentially a form of BIOS.

    One place you can start if you want to learn about the intricacies of hardware level programming for PCs is Craig Hart's page.

    http://members.datafast.net.au/dft0802/

    Of course beyond the acquired knowledge you will gain, the big question is why do you want to do this? Do you have 5 or 10 years to dedicate to learning the details and writing the millions of lines of code you will need?

    I'm not suggesting that this might not be an interesting project. Just that you are looking at doing something that presently takes months and years for teams of skilled individuals to create.

    I would start out small. Pick a development project at Source Forge that interests you and see if you can join the team. Then, move forward from there.

    Chas

    +
    0 Votes

    I might think that this would be an excellent project development for me. But I need to know how to start and how to make it run on an i386 machine and x86 CPU + x64 CPU. I want the OS to run as a normal OS like Windows and Linux. I'm going to build and write the kernel in C and some C++. But I need to know more about hardware?s and how they work, I have many *.INC file from IBM PC and BIOS and keyboards. I know that every key on the keyboard has a hex address.
    I want to build everything from scratch but I need to know how to start and I need to know how to write the engine that holds it up. I need to know where I could find CPU references.
    Have a great day?

    +
    0 Votes
    TheChas

    First off, I might be wrong, but I believe that you need some machine code to get the system started before you can ever run any kind of application. Whether you are using a Kernel or a boot loader, you start out in raw machine language with a direct hardware interface to the BIOS.

    As to CPU command and instruction sets, there are some very detailed programming guides that can be downloaded from both AMD and Intel.

    For getting started with other hardware, the best place I can recommend is Craig Hart's PCI information page.

    http://members.datafast.net.au/dft0802/

    But, before you can work directly with any plug-in cards, you need to pass the commands through the chip-set. So, be sure to download the chip-set programming guides from Intel and AMD while you are there.

    As I have stated before, this is not going to be either quick or easy.

    Depending on what your end goal is, you might want to look into embedded systems.

    Another thought, if your hardware expertise is limited, you might want to start out working with PIC or 8 bit embedded systems to develop your skills.

    Chas

    +
    0 Votes

    How can I make the desktop GUI for my OS?
    like:

    Window Manager which handles the windows/forms on the screen.

    And how could I build a setup, If a user want's to test it on his machine he might want to format and install it on the disk.

    And where could I found thoose chpset information books or *.pdf files.

    Have a great day..

    +
    0 Votes
    TheChas

    For Intel hardware, go to the Intel Developer Community pages.

    Here is the link to the downloads section.

    http://softwarecommunity.intel.com/articles/eng/1446.htm

    For AMD, go to Developer Central.

    http://developer.amd.com/documentation/Pages/default.aspx

    Still, if you desire to have a GUI for your own OS, you have a lot of code to write.

    You are looking at man-years of coding in addition to the learning you will need to do to get to the point of having a full operating system with a GUI.

    I still recommend that you start out by getting involved in a Source Forge OS project that is similar to what you envision as your end product.

    That way, you will learn a lot and get a good understanding of the size of the task you are undertaking.

    Chas

    +
    0 Votes

    Hi!

    Thank you for providing me with those links.

    But I'm still woundering how do they really make the GUI and how do they make it run and build it , I mean

    "FIRST-TIME-BUILD & RUN WITH KERNEL AND BOOT BUILD STUB"

    You know I have two Operating Systems with full source code which I'm still analyzing. I hve Microsoft Singularity OS and Visopsys a type of linux OS.

    Have you worked with Operating Systems?

    Have a great day...

    +
    0 Votes
    normhaga

    MASM, NASL/NASM, and OllyDebug. Google them, they are free. For the higher level stuff where you do not need the compactness and speed of pure assembly, there are several free C++ compilers. There are also several open source cross compilers.

    If you want to be Hard, you can write code from the MS debugger (debug) but there are size limits.

    +
    0 Votes

    Hi!

    I have already visited it, I mean before you told me about it, I found that link some years ago.

    But thanks!! Have another question??

    How can I make the desktop GUI for my OS?
    like:

    Window Manager which handles the windows/forms on the screen.

    And how could I build a setup, If a user want's to test it on his machine he might want to format and install it on the disk.

    thank you!! but It didn't help me.

  • +
    0 Votes
    robo_dev

    Here's a page called how to write your own OS
    http://www.groovyweb.uklinux.net/index.php?page_name=how%20to%20write%20your%20own%20os

    The building block of all this is good-old assembly code; Intel or AT&T assemblers are the most common ones. OS's are written in a combination of assembly and C/C++

    +
    0 Votes
    TheChas

    For some good ideas on building your own OS, search the Foundries at www.sourceforge.net there are several OS projects in various stages of development.

    There are several questions you need to answer in relation to building your own operating system.

    How am I going to use this computer?

    What kinds of software do I want to run?

    What kind of hardware do I plan to use?

    If you want to do assembly level code work, or build dedicated automated systems, your OS will not need to be very complex.

    If you want to be able to run commercially available software, or use anything beyond basic graphics, you will either need to emulate a current OS, or create a very large amount of code.

    The big trick for writing your own BIOS is to keep it clean and compact.

    The tough part of writing your own BIOS will be collecting all of the hardware level addresses, commands and syntax for your motherboard.

    You can step back 30 years or so and look at the old Altair computers. The set of commands that a user needed to enter manually one byte at a time were essentially a form of BIOS.

    One place you can start if you want to learn about the intricacies of hardware level programming for PCs is Craig Hart's page.

    http://members.datafast.net.au/dft0802/

    Of course beyond the acquired knowledge you will gain, the big question is why do you want to do this? Do you have 5 or 10 years to dedicate to learning the details and writing the millions of lines of code you will need?

    I'm not suggesting that this might not be an interesting project. Just that you are looking at doing something that presently takes months and years for teams of skilled individuals to create.

    I would start out small. Pick a development project at Source Forge that interests you and see if you can join the team. Then, move forward from there.

    Chas

    +
    0 Votes

    I might think that this would be an excellent project development for me. But I need to know how to start and how to make it run on an i386 machine and x86 CPU + x64 CPU. I want the OS to run as a normal OS like Windows and Linux. I'm going to build and write the kernel in C and some C++. But I need to know more about hardware?s and how they work, I have many *.INC file from IBM PC and BIOS and keyboards. I know that every key on the keyboard has a hex address.
    I want to build everything from scratch but I need to know how to start and I need to know how to write the engine that holds it up. I need to know where I could find CPU references.
    Have a great day?

    +
    0 Votes
    TheChas

    First off, I might be wrong, but I believe that you need some machine code to get the system started before you can ever run any kind of application. Whether you are using a Kernel or a boot loader, you start out in raw machine language with a direct hardware interface to the BIOS.

    As to CPU command and instruction sets, there are some very detailed programming guides that can be downloaded from both AMD and Intel.

    For getting started with other hardware, the best place I can recommend is Craig Hart's PCI information page.

    http://members.datafast.net.au/dft0802/

    But, before you can work directly with any plug-in cards, you need to pass the commands through the chip-set. So, be sure to download the chip-set programming guides from Intel and AMD while you are there.

    As I have stated before, this is not going to be either quick or easy.

    Depending on what your end goal is, you might want to look into embedded systems.

    Another thought, if your hardware expertise is limited, you might want to start out working with PIC or 8 bit embedded systems to develop your skills.

    Chas

    +
    0 Votes

    How can I make the desktop GUI for my OS?
    like:

    Window Manager which handles the windows/forms on the screen.

    And how could I build a setup, If a user want's to test it on his machine he might want to format and install it on the disk.

    And where could I found thoose chpset information books or *.pdf files.

    Have a great day..

    +
    0 Votes
    TheChas

    For Intel hardware, go to the Intel Developer Community pages.

    Here is the link to the downloads section.

    http://softwarecommunity.intel.com/articles/eng/1446.htm

    For AMD, go to Developer Central.

    http://developer.amd.com/documentation/Pages/default.aspx

    Still, if you desire to have a GUI for your own OS, you have a lot of code to write.

    You are looking at man-years of coding in addition to the learning you will need to do to get to the point of having a full operating system with a GUI.

    I still recommend that you start out by getting involved in a Source Forge OS project that is similar to what you envision as your end product.

    That way, you will learn a lot and get a good understanding of the size of the task you are undertaking.

    Chas

    +
    0 Votes

    Hi!

    Thank you for providing me with those links.

    But I'm still woundering how do they really make the GUI and how do they make it run and build it , I mean

    "FIRST-TIME-BUILD & RUN WITH KERNEL AND BOOT BUILD STUB"

    You know I have two Operating Systems with full source code which I'm still analyzing. I hve Microsoft Singularity OS and Visopsys a type of linux OS.

    Have you worked with Operating Systems?

    Have a great day...

    +
    0 Votes
    normhaga

    MASM, NASL/NASM, and OllyDebug. Google them, they are free. For the higher level stuff where you do not need the compactness and speed of pure assembly, there are several free C++ compilers. There are also several open source cross compilers.

    If you want to be Hard, you can write code from the MS debugger (debug) but there are size limits.

    +
    0 Votes

    Hi!

    I have already visited it, I mean before you told me about it, I found that link some years ago.

    But thanks!! Have another question??

    How can I make the desktop GUI for my OS?
    like:

    Window Manager which handles the windows/forms on the screen.

    And how could I build a setup, If a user want's to test it on his machine he might want to format and install it on the disk.

    thank you!! but It didn't help me.