Code Monkey home page Code Monkey logo

brandos's Introduction

BrandOS

BrandOS is a a lightweight x86 legacy bios operating system using GRUB.

Building

Requirements:

  • qemu-system
  • i386/i686 cross compiler
  • gnu grub version 2.05 (other versions may also work)

Commands:

To build and generate iso image:

make

To clean directory:

make clean

To run with qemu emulator:

make run

Structure

TODO

Contributing

Pull requests are welcome, however I am currently not accepting any major changes.

Roadmap

  • Setup project structure
  • Implmement basic kernel lib
  • Implement IDT/GDT in the kernel
    • GDT
    • IDT
  • Implement Basic Keyboard Driver
  • Implement Timer Driver (PIT)
  • Implement memory managment
    • x86: segmentation
    • paging
    • Virtual memory
  • Enter userland
    • Implememnt libc

End Goal

Create a self-hosting OS (Make an OS which can build itself)

Why am I trying to write an OS not even meant for modern hardware?

I have seen a lot of people on forums of all places who say that "the purpose of developing an operating system is to make a killer OS with all kinds of applications in the real world". I don't agree with that. Instead, I am writing an operating system for the sole purpose of experience and fun. To be able to say, "I made an operating system in high school", is my dream for this whole endeavor. To say that I am new to operating system development is an understatment. However, the experience of learning is most important to me.

The experience which comes out of low level os development has all kinds of real world applications. Complex build systems, memory manangment and allocation, and an understanding of kernel development are just a few which come to mind.

To actually answer the question, I have developed the build system with the mindset that I may add support for more modern systems in the future but for now, I am just enjoying the experience of writing an OS from the ground up.

License

LICENSE (GPL 3)

brandos's People

Contributors

brandonhs avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.