Skip to content

dkudrow/slice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slice OS

Slice is (going to be) a very basic operating system for the Raspberry Pi, written from the ground up. It is designed with the following principles in mind:

  1. Simplicity. By eschewing portability and focusing only on the Raspberry Pi the code base can be kept small and sane.

  2. Modularity. Slice is a meant to be pulled apart and is constructed with perforated seams. Logically separate slices of Slice (pun absolutely intended) are kept as independent as possible to facilitate their replacement or inclusion in other projects. It is the OS designer's playground.

  3. Readability. Modern operating systems are large, complex beasts. the novice developer trying to understand them through their source code is faced with a daunting task. Slice is heavily commented and aims to be self-documenting. Each compilation unit contains an explanation of its its role in Slice, how it works and why it was designed that way.

Progress

Below I will report progress on the various sub-systems as I write them. They appear roughly in order of conception.

Framebuffer

I have basically written enough of a framebuffer driver to dump basic text output on the screen. It supports a built-in bitmapped font and scrolling.

Console

The console doesn't do a whole lot. This code will act as a thin layer around the framebuffer driver when it comes time to implement a terminal driver. Basic responsibilities involve managing the cursor position, text wrapping and scrolling when necessary.

SD Card Controller

Although the EMMC supports MMC as well, I am only implementing SD to keep things simple. This driver detects and initializes the SD card and provides a simple interface for reading and writing.

File System

Slice uses the 32 bit version of Microsoft's FAT file system (FAT32). While FAT is not the most intuitive design for a filesystem, it is (arguably) the simplest that is widely supported by other systems. This will allow the user to access the filesystem from a machine running a production OS.

References

This undertaking would not be possible without the vast corpus of freely available tutorials, literature, and forums online. Here is a comprehensive list of sources that I consulted in writing Slice. All of these documents are (as far as I'm aware) completely free although some of the hardware manuals require you to register with the vendor - usually just and e-mail will suffice.

Technical Manuals

Tutorials

Existing Code

Miscellany

About

Simple OS for the Raspberry Pi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published