Code Monkey home page Code Monkey logo

cosmo's Introduction

cosmo

cosmo is a hobby x86 OS. The goal of the project is to implement a very basic OS capable of running a Userland application from the ground up.

The table below shows what modules have been implemented to date. As the project progresses, additional modules will be added.

Module Completed
Framebuffer Driver Y
Serial Port Driver Y
Logger Y
GDT Y
IDT Y
PIC Driver Y
Physical Frame Allocator Y
Virtual Memory Manager N
User Mode Process N

Development has leaned heavily on the "The litte book about os development" as well as the the OSDev forums as references. Plenty of the source files and commit messages link back to reference material.

Running cosmo

cosmo was developed on a Linux PC using Bochs for x86 emulation. The cross compiler, emulator, and additional packages needed to build and run cosmo are all provided within a docker container. To run cosmo in a container you will need:

  • Docker
  • A Linux Host with an X11 Window System installed (Xming on Windows is also an option though it has not been tested)

All the scripts referenced in this section can be found under the project's scripts directory. When running a script, make sure your current working directory is the cosmo/scripts directory.

To launch the container:

dev.sh

Once the container is created, you will be dropped into a terminal that contains the project files as hosted on the host PC. From here, you can build and run the OS in the Bochs emulator:

To build cosmo:

build.sh

To run the emulator:

run.sh

If the above two commands succeed, you should see a Bochs window like the one shown below.

cosmo

Project Documentation

Project docs can be viewed in HTML. To build the project documentation, pass the -d flag to the scripts/build.sh script:

build.sh -d

After running the above command, cosmo docs will be installed to the project root directory under docs/cosmo_docs.

cosmo's People

Contributors

ivan-guerra avatar

Stargazers

Arsalan Yaqoob Malik avatar Alessandro S. avatar

Watchers

James Cloos avatar  avatar  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.