GithubHelp home page GithubHelp logo

kay607 / mellos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mell-o-tron/mellos

0.0 0.0 0.0 173 KB

Simple (and quite poorly written) kernel I'm writing in my free time

Assembly 18.61% C++ 66.05% Shell 6.65% C 8.69%

mellos's Introduction

Mellotron Kernel (MellOS)

A very simple kernel I'm working on in my free time.

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!!!

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.

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), no paging)
  • Interrupt request handling, keyboard and timer support
  • Linear dynamic memory allocation (with some tricks not to make it too inefficient)

Work in progress

  • Dynamic, Modular Shell (with the possibility to create/edit commands)
  • Floppy Disk Driver (does not work with USB floppy adapter, so I can only work on it when I'm at home, which is quite rare considering I live a fairly long way from my uni)

Future

  • File System support, most likely USTAR (highly dependant on the floppy disk drivers)

Bugs and Horrible Code

  • The printy-screeney-bit is all broken and redundant, because it was made in a hurry for a very badly designed system. I updated most of the very badly designed system (it now is a mildly badly designed system), but not that, not yet. Next up, I guess.

mellos's People

Contributors

mell-o-tron 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.