Форк ToaruOS
Go to file
K. Lange b4db731f78 yutani-test 2018-02-25 18:29:31 +09:00
base just gobs of stuff 2018-02-25 17:14:43 +09:00
cdrom init 2018-02-25 14:13:54 +09:00
include fstat 2018-02-25 18:22:40 +09:00
lib add tree, not used yet 2018-02-25 18:25:05 +09:00
libc %d is signed 2018-02-25 18:29:25 +09:00
linker just gobs of stuff 2018-02-25 17:14:43 +09:00
.gitignore init 2018-02-25 14:13:54 +09:00
Makefile yutani-test 2018-02-25 18:29:31 +09:00
README.md screenshot 2018-02-25 17:18:09 +09:00
background.c just gobs of stuff 2018-02-25 17:14:43 +09:00
cat.c cat and kdebug 2018-02-25 18:22:44 +09:00
compositor.c just gobs of stuff 2018-02-25 17:14:43 +09:00
drawlines.c just gobs of stuff 2018-02-25 17:14:43 +09:00
hello.c init 2018-02-25 14:13:54 +09:00
init.c just gobs of stuff 2018-02-25 17:14:43 +09:00
kdebug.c cat and kdebug 2018-02-25 18:22:44 +09:00
ls.c init 2018-02-25 14:13:54 +09:00
session.c just gobs of stuff 2018-02-25 17:14:43 +09:00
sh.c init 2018-02-25 14:13:54 +09:00
terminal-font.h just gobs of stuff 2018-02-25 17:14:43 +09:00
terminal-palette.h just gobs of stuff 2018-02-25 17:14:43 +09:00
terminal.c just gobs of stuff 2018-02-25 17:14:43 +09:00
uname.c just gobs of stuff 2018-02-25 17:14:43 +09:00
yutani-test.c yutani-test 2018-02-25 18:29:31 +09:00
yutani_int.h just gobs of stuff 2018-02-25 17:14:43 +09:00

README.md

ToaruOS-NIH

screenshot

This is an experimental spin-off / distribution of ToaruOS which includes no third-party components.

Building

Build a full ToaruOS, activate its toolchain, copy the kernel to cdrom/kernel and modules to cdrom/mod and you should be able to run make.

Rationale

ToaruOS's kernel is entirely in-house. Its userspace, however, is built on several third-party libraries and tools, such as the Newlib C library, Freetype, Cairo, libpng, and most notably Python. While the decision to build ToaruOS on these technologies is not at all considered a mistake, the possibility remains to build a userspace entirely from scratch.

Goals

  • Write a basic C library.

    To support building the native ToaruOS libraries and port some basic software, a rudimentary C library is required.

  • Remove Cairo as a dependency for the compositor.

    Cairo is a major component of the modern ToaruOS compositor, but is the only significant third-party dependency. This makes the compositor, which is a key part of what makes ToaruOS "ToaruOS", an important inclusion in this project.

  • Write a vector font library.

    Support for TrueType/OpenType TBD, but vector fonts are critical to the visual presentation of ToaruOS.

  • Support a compressed image format.

    ToaruOS used a lot of PNGs, but maybe writing our format would be fun.

Roadmap

  1. Enough C to port the dynamic loader.

  2. Get the VGA terminal building.

  3. Get the shell running.

  4. De-Cairo-tize the compositor.