Simple, Linux-based embedded x86_64 OS

Typewriter OS


Codeberg Repository : typewriter-os

Related article: Modern operating systems


Typewriter OS is a small, purpose-built CLI x86_64 operating system based on Linux 7.1.7. It has a fully custom user space written in Rust.

/typi/typi-screenshot.png

See full picture by clicking here ↗

Core idea

The idea behind this OS was to make it for an embedded device that would act as some sort of typewriter. The user space has all the core utilities needed for file management, a text editor and shell to navigate the file system.

The user is confined inside the home directory, /home/writer/, where all their files are stored persistently.

Structure

This OS was made to be closer to an embedded device OS rather than a desktop Linux. The production build script generates a file called typewriter.img which stores both the persistent user storage the system storage.

The image is designed to boot using UEFI firmware and contains two partitions:

The boot partition is a vfat partition containing the kernel and the initramfs image made for the OS while the user storage partition is a persistent data partition formatted with ext4.

The initramfs contains the core filesystem and the programs binaries. This makes system updates simple. The initramfs can be replaced as a single file. It also keeps the core system intact, so changes to system files don’t permanently break the installation.

Programs

Typewriter OS has a small set of programs to let users accomplish their tasks. This includes core programs like:

It also contains a small set of core utilities to interact with the filesystem: