Coder Social home page Coder Social logo

alwayrun / how-to-make-a-computer-operating-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from samypesse/how-to-make-a-computer-operating-system

0.0 2.0 1.0 64 KB

How to Make a Computer Operating System in C++

License: Apache License 2.0

how-to-make-a-computer-operating-system's Introduction

How to Make a Computer Operating System

Caution: This repository is a remake of my old course. It was written several years ago as one of my first projects when I was in High School so it's normal if some parts of the code look like "crap". The original course was in French and I'm not an English native. I'm going to continue and improve this course in my free-time.

Source Code: All the system source code will be stored in the src directory. Each step will contain links to the different related files.

Contributions: This course is open to contributions, feel free to signal errors with issues or directly correct the errors with pull-requests.

Questions: Feel free to ask any questions by adding issues. Please don't email me.

You can follow me on Twitter @SamyPesse or support me on Flattr or Gittip.

What kind of OS are we building?

The goal is to build a very simple UNIX-based operating system in C++, not just a "proof-of-concept". The OS should be able to boot, start an userland shell and be extensible.

Screen

Summary

Chapter 1: Introduction about the x86 architecture and about our OS

Chapter 2: Setup the development environment

Chapter 3: First boot with GRUB

Chapter 4: Backbone of the OS and C++ runtime

Chapter 5: Base classes for managing x86 architecture

Chapter 6: GDT

Chapter 7: IDT and interruptions

Chapter 8: Memory management: physical and virtual

Chapter 9: Process management and multitasking

Chapter 10: External program execution: ELF files

Chapter 11: Userland and syscalls

Chapter 12: Modular drivers

Chapter 13: Some basics modules: console, keyboard

Chapter 14: IDE Hard disks

Chapter 15: DOS Partitions

Chapter 16: EXT2 read-only filesystems

Chapter 17: Standard C library (libC)

Chapter 18: UNIX basic tools: sh, cat

Chapter 19: Lua interpreter

how-to-make-a-computer-operating-system's People

Contributors

0x1a avatar akkartik avatar juliangruber avatar mlloreda avatar ocramius avatar pato avatar samypesse avatar tanner avatar

Watchers

 avatar  avatar

Forkers

hubert-he

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.