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:
-
Simplicity. By eschewing portability and focusing only on the Raspberry Pi the code base can be kept small and sane.
-
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.
-
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.
Below I will report progress on the various sub-systems as I write them. They appear roughly in order of conception.
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.
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.
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.
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.
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.