Skip to content

Minimalist Operating System designed to implement as much functionality as possible with a budget of 1000 Lines of Code

Notifications You must be signed in to change notification settings

collinsmichael/tinyos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

TinyOS

A minimalist operating system written in 935 lines of pure c, (exactly 1500 if you include whitespace and comments) and an fat12 compliant bootloader (about 200 lines of code) The bootloader is written in assembler and considered a seperate work.

This is a 32 bit single tasking, unix like operating system. Features standard io. All devices are files (like in unix) all devices benefit from printf style functionality.

Minimalist C standard runtime subset (malloc.h memory.h string.h stdio.h) First fit memory allocation. Simple but effective. Extremely optimized shell commandline interpretter. Supports launching userland programs with argc, argv. serial port and terminal device drivers, even a userland program that acts as a serial based networking terminal.

This Operating System can be built in debug mode in which all IO is simulated through arrays. This mode allows you to test the correctness of the design by debuggering inside Visual Studio. When built in release mode full hardware IO is enabled.

My normal development flow is to design a module, implement the code, verify by running in Visual Studio in debug mode, build in release, test in a VM, if all goes well then the floppy disc image is written to a physical floppy and tested on real hardware, as some code may run fine in a generic VM but will not run correctly on real hardware.

About

Minimalist Operating System designed to implement as much functionality as possible with a budget of 1000 Lines of Code

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published