Форк ToaruOS
Go to file
K. Lange 6af9cff0ff fixup clips 2018-03-01 12:53:18 +09:00
base Port 'fancy' decoration theme 2018-02-25 21:54:39 +09:00
cdrom init 2018-02-25 14:13:54 +09:00
decors Port 'fancy' decoration theme 2018-02-25 21:54:39 +09:00
include Fix warning on undeclared pow 2018-03-01 12:11:05 +09:00
lib fixup clips 2018-03-01 12:53:18 +09:00
libc Implement strftime 2018-03-01 10:57:16 +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 Add localtime, fix some printf stuff 2018-03-01 09:07:43 +09:00
README.md New screenshot for README 2018-02-25 23:08:25 +09:00
background.c support resizing background on display change 2018-02-25 20:42:04 +09:00
cat.c cat and kdebug 2018-02-25 18:22:44 +09:00
compositor.c naïve row-based clipping 2018-03-01 12:34:58 +09:00
date.c Add localtime, fix some printf stuff 2018-03-01 09:07:43 +09:00
drawlines.c just gobs of stuff 2018-02-25 17:14:43 +09:00
env.c add env 2018-02-26 13:22:05 +09:00
hello.c fixup hello 2018-02-25 19:07:56 +09:00
hostname.c Add hostname 2018-02-25 23:05:45 +09:00
init.c Port 'fancy' decoration theme 2018-02-25 21:54:39 +09:00
kdebug.c cat and kdebug 2018-02-25 18:22:44 +09:00
ls.c Implement strftime 2018-03-01 10:57:16 +09:00
mount.c Add mount 2018-02-28 15:04:46 +09:00
session.c just gobs of stuff 2018-02-25 17:14:43 +09:00
sh.c Implement strftime 2018-03-01 10:57:16 +09:00
sysinfo.c add sysinfo 2018-02-25 23:06:07 +09:00
terminal-font.h Use the netboot init font for the terminal 2018-02-25 20:32:49 +09:00
terminal-palette.h just gobs of stuff 2018-02-25 17:14:43 +09:00
terminal.c ensure terminal starts at 80x24 2018-02-25 23:04:58 +09:00
toaru_logo.h add sysinfo 2018-02-25 23:06:07 +09:00
uname.c Support arg parsing for uname 2018-02-25 23:05:30 +09:00
yutani-query.c add yutani-query 2018-02-25 23:05:57 +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. Very basic work has been done to allow the compositor to build and run without Cairo, but it is a naïve approach and remains very slow. Implementing Cairo's clipping and SSE-accelerated blitting operations is a must.

  • 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 own 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.