Skip to content
An OS kernel written in rust. Non POSIX
Rust Assembly Makefile Python Other
Find file
New pull request
Failed to load latest commit information.
Graphics Usermode - Add a system menu icon
Hooks Add the pre-commit hook that validates source sanity
Kernel Kernel - Working extN file reading
Notes Kernel/fs_extN - Draft directory enumeration and file reading
SystemTest System tests updated as part of filebrowser testing
Usermode Kernel - Working extN file reading
acpica Fix clean build
externals/crates.io externals - Add .repo files for the other externals (not used yet)
.gitignore GUI - Decorations working, size added to user-requested size
.travis.yml Travis - Idiot, you still had TARGET=
BuildCrossCompiler BuildCrossCompiler - Use parallel build
COPYING Add licence and readme
CheckSubrepos.sh Add a quick script to check the status of external repositories
LineCount.sh Rough script to do line counts
Makefile Usermode - Work on shell
README.md Updated readme
UnsafeAudit.sh Update UnsafeAudit.sh to correcly handle unsafe blocks with the `{` o…
UpdateSubrepos.sh Fiddling with event waiting support, Add script to run git pull on su…
annotate_backtrace.sh Update annotate_backtrace script so it works with userland dumps
common.mk Kernel - Fixing filesystem bugs exposed by FS stress-tester (and thre…
keycodes.inc.rs Login+wtk - Login prompt renders well, with cursor
libcore_nofp.patch Compiler upgrade and clean up of warnings
syscalls.inc.rs Kernel - Fixing filesystem bugs exposed by FS stress-tester (and thre…

README.md

"Tifflin" Experimental Kernel (and eventually Operating System)

This is an experiment in writing an OS Kernel in rust (http://rust-lang.org).

Mostly the architecture is being designed as I go along, but it will be written to be architecture independent (the current verison is x86_64/amd64).

Design Features

  • Runtime module initialisation with dependencies
  • Clear user-kernel separation of duties
    • Userland owns the ELF loader, kernel uses a custom format for init.
  • Object-based syscall API
  • Kernel-provided window manager (yes, I know old windows did this)

Progress

  • Filesystems
    • ISO9660
    • FAT12/16/32
  • Storage
    • (P)ATA
    • SATA (AHCI)
    • ATAPI CDROM
    • VirtIO Block
  • Input
    • PS2 Keyboard/Mouse
  • Graphics
    • Multiboot only
  • GUI Apps
    • Login (Credentials are root/password)
    • "GUI Shell" (with background!)
    • Text Terminal app (with basic set of commands)
    • Filesystem viewer
  • Architectures
    • amd64 (aka x86_64) - Boots to limit of implementation
    • armv7 - Loads userland then crashes

Build Dependencies

  • nasm
  • imagemagick (for graphics)
  • GNU Binutils (cross-compiled)
  • GCC (for ACPICA)
Something went wrong with that request. Please try again.