Skip to content

2dev2/devos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(Very) Basic Operating System in C++

This code 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 looks like "crap".

But some parts of the code are usefull to learn how to create a bootable operating system with memory pagination, multitasking, virtual memory, EXT2, ...

Screen

Features :

* Code in C++
* x86 32bits
* Boot with Grub
* Kind of modular system for drivers (I was in High school so it's not really great)
* Kind of UNIX style (again: It's not great)
* Multitasking
* ELF executable in userland
* Modules (accessible in userland using /dev/...) :
	* IDE disks
	* DOS partitions
	* Clock
	* EXT2 (read only)
	* Boch VBE
* Userland :
	* API Posix
	* LibC
	* "Can" run a shell or some excutables like Lua, ...

Build & Run using Vagrant (for OS X and Linux users)

Make sure you have both Vagrant installed and this repo cloned (and an open terminal in it's folder)

Then run the following commands (ignore comment lines starting with #):

# Starts Vagrant VM
# This will start an ubuntu machine and install build-essential, make, Qemu ...
vagrant up

# SSH into machine
vagrant ssh

# Once SSHed
cd /vagrant

# Build kernel, userland ...
make all

# Run emulation
make emulate

Progress

  • Compiles ✅
  • Builds Image ✅
  • Boots ✅

About

(Very) basic UNIX-like operating system built when I was younger

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 75.6%
  • C++ 20.0%
  • Assembly 2.9%
  • Makefile 1.4%
  • Shell 0.1%