Coder Social home page Coder Social logo

cc618 / os2020 Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 4.0 392 KB

32 bits OS with custom bootloader, a libc and a FAT32 driver

License: MIT License

Assembly 9.52% Makefile 3.21% C 85.68% C++ 1.31% Shell 0.27%
os libc syscalls custom-bootloader fat32

os2020's Introduction

Os 2020

Os 2020 is a 32 bits OS.

Written in C and assembly (NASM), it provides a custom bootloader, a libc and a Fat32 file system.

Some screenshots

Welcome !

Os 2020 0.2

Os 2020

Features

This OS aims to improve an older OS I made named 'OctOs'.

Here is the list of improvements :

  • Boot system : A second stage bootloader is implemented so there are 2 bootloaders, the OS is dynamically loaded. It will detects the end of the chunks at run time
  • Libraries : OctOs was written in C++ and had a custom standard library. Os 2020 will have a libc (not fully implemented, see this file for details) and also a libk, the libc gathers main IO / string functions and libk handles system related functions such as syscalls and utils such as data structures or path functions
  • syscalls : The main goal is not to make a user mode but to provide syscalls for apps
  • File IO : This OS provides a Fat32 driver with scripts to retrieve or replace the file system of the Os (see this file for details)
  • Apps : Os 2020 contains several processes (called apps) inspired from linux like ls, cat, echo and also a shell with input redirection, go here to see shell functions
  • Memory : OctOs suffered from memory leaks because of C++ constructors / destructors. Os 2020 won't use constructors and uses C.

Architecture

  • doc : Documentation
  • src/stage1 : First bootloader chunk (full Asm)
  • src/stage2 : Second bootloader chunk
  • src/kernel : Core chunk
  • src/lib : Libc and libk

Depedencies

  • gcc cross compiler (for i386)
  • nasm
  • mtools (add /sbin to your path, for fs)
  • qemu-system-i386 (optional, to test)
  • objcopy (optional, to debug)
  • gdb (optional, to debug)
  • xterm (optional, to debug)

os2020's People

Contributors

cc618 avatar trayzen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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.