All Projects → mell-o-tron → MellOs

mell-o-tron / MellOs

Licence: other
Minimal, collaboratively written kernel

Programming Languages

c
50402 projects - #5 most used programming language
assembly
5116 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to MellOs

Zen
Experimental operating system written in Zig
Stars: ✭ 177 (-19.18%)
Mutual labels:  kernel, operating-system
CPL-1
Operating system in C written for fun and glory
Stars: ✭ 33 (-84.93%)
Mutual labels:  kernel, operating-system
Pluto
An x86 kernel written in Zig
Stars: ✭ 172 (-21.46%)
Mutual labels:  kernel, operating-system
Neu Os
Based on linux0.11, break it down, then reassemble (For NEU Lab use)
Stars: ✭ 143 (-34.7%)
Mutual labels:  kernel, operating-system
chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-90.87%)
Mutual labels:  kernel, operating-system
Synestiaos
The Synestia Operating System
Stars: ✭ 159 (-27.4%)
Mutual labels:  kernel, operating-system
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (-15.98%)
Mutual labels:  kernel, operating-system
Emerald
An operating system written in C
Stars: ✭ 118 (-46.12%)
Mutual labels:  kernel, operating-system
Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (-11.42%)
Mutual labels:  kernel, operating-system
Libhermit
HermitCore: A C-based, lightweight unikernel
Stars: ✭ 190 (-13.24%)
Mutual labels:  kernel, operating-system
Os One
一个自制的树莓派操作系统
Stars: ✭ 132 (-39.73%)
Mutual labels:  kernel, operating-system
Manticore
Manticore is a research operating system, written in Rust.
Stars: ✭ 234 (+6.85%)
Mutual labels:  kernel, operating-system
Build
Armbian Linux build framework
Stars: ✭ 1,827 (+734.25%)
Mutual labels:  kernel, operating-system
Willos
💾 A minimal kernel (just a hobby, won't be big and professional). // Work In Progress
Stars: ✭ 163 (-25.57%)
Mutual labels:  kernel, operating-system
Mbp Fedora
Stars: ✭ 129 (-41.1%)
Mutual labels:  kernel, operating-system
Pebble
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 184 (-15.98%)
Mutual labels:  kernel, operating-system
Aura Operating System
AuraOS, the Franco-English Operating System developed in C# using Cosmos!
Stars: ✭ 111 (-49.32%)
Mutual labels:  kernel, operating-system
Raspberry Pi Os
Learning operating system development using Linux kernel and Raspberry Pi
Stars: ✭ 11,000 (+4922.83%)
Mutual labels:  kernel, operating-system
Unikraft
Unikraft is an automated system for building specialized POSIX-compliant OSes known as unikernels. (Core repository)
Stars: ✭ 183 (-16.44%)
Mutual labels:  kernel, operating-system
Eduos Rs
A teaching operating system written in Rust
Stars: ✭ 210 (-4.11%)
Mutual labels:  kernel, operating-system

Mellotron Kernel (MellOS)

A minimal, collaboratively written kernel

Why MellOS

A while back I was gifted a 1994 Compaq Presario, and I figured I could use it to learn how to write a simple operating system. I started writing some real mode programs, and eventually I moved on to writing a simple 32 bit kernel.

I decided to share my results and progress for a couple of reasons, the main of which might be letting you have fun with this as much as I am, but also to share the ways I fixed my misconceptions, and the resources that helped me move on whenever I got stuck.

Some useful resources

Some of the resources I found most useful are the OSDEV wiki, osdever.net (from which I basically stole the part regarding interrupts), this keyboard scancode map, and of course the most fundamental of all resources: RTFM!!!

Another useful resource is the book "operating systems: principles and practice" by Thomas Anderson (no, not that Mr. Anderson) and Michael Dahlin. I used it to study for my OS class at university and I think it's a very good introduction to the subject.

Future of MellOS

I'm doing this in my spare time, which basically means "during a small part of the summer and a week or so around Christmas". Feel free to do whatever you like with this, as long as you don't physically (nor psychologically) harm people or other animals I'm absolutely fine with it.

Feel free to make pull requests and they'll be processed whenever possible.

Contributions

Special thanks to all of those who contributed. Your changelogs will be integrated in contributions.md

Features

Current

As simple as it can get:

  • Simple bootloader, loads the kernel in memory and jumps to it
  • Monolithic kernel
  • Flat memory model (just the strictly necessary segmentation (data/code), paging is in the making)
  • Interrupt request handling, keyboard and timer support
  • Linear dynamic memory allocation (with some tricks not to make it too inefficient - placeholder for future decent allocation method)
  • GDT (Different from the one in the Bootloader)
  • TTY-ish system to print to screen: allows to print to one of many canvases

Work in progress

  • Dynamic, Modular Shell (will run executables when processes will be a thing)
  • File System
  • Paging

Future

  • Process abstraction
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].