toaruos/README.md
2015-07-25 16:37:54 -07:00

73 lines
4.0 KiB
Markdown

![Screenshot](http://i.imgur.com/oeGNxX7.png)
![More Screenshots](http://i.imgur.com/mogzwiO.png)
# ToaruOS (とあるOS) #
とあるOS (ToaruOS) is a hobby kernel and supporting userspace, built mostly from scratch, in development since December of 2010.
This repository contains the kernel, modules, and core userspace. Some third-party libraries and utilities are required to build a working system.
## History
ToaruOS started as a side project at the University of Illinois at Urbana-Champaign. For several months in late 2011 and early 2012, the University's [SIGOps](http://www.acm.uiuc.edu/sigops/) chapter managed development efforts focused on building the original compositing GUI. Since then, the project has mostly been a one-man effort with a handful of third party contributions.
## Kernel ##
The Toaru kernel provides a basic Unix-like environment. The kernel uses a hybrid modular architecture, with loadable modules providing most device driver support. The core kernel includes support for Unix pipes and TTYs, a virtual file system, multitasking, ELF binary support, and various core platform features on x86 systems.
Modules provide support for disk drives, ext2 filesystems, serial, keyboards and mice, a `/proc` filesystem similar to the one found in Linux, as well as an expanding collection of other device drivers.
## Userspace ##
ToaruOS's userspace is focused on a rich graphical environment, backed by an in-house compositing window manager. ToaruOS's terminal emulator supports xterm-compatible 256-color modes, as well as Konsole 24-bit color modes and anti-aliased text with basic Unicode support. Several graphical demos are provided, alongside a number of command-line applications. A port of SDL targetting the native graphical environment is also available.
### Third-Party Software ###
The userspace depends on a number of third-party libraries which are outside of the development scope of the project. Additionally, several third-party applications and libraries have been integrated into ToaruOS's core userspace, or otherwise ported to ToaruOS.
Package | | Description
------- | ---- | -----------
cpudet| *(included)* | `cpuid` parser
DejaVu Sans | *(included)* | Popular, free TrueType font series
VL Gothic | *(included)* | Free Japanese TrueType font
`sha2.c` | *(included)* | SHA512 hash library
`utf8decode.h` | *(included)* | UTF8 decoding tools
glxgears | *(included)* | Popular OpenGL demo
curses-hello | *(included)* | Curses demos
`pci_list.h` | *(included)* | PCI vendor and device names
2048 | *(included)* | Terminal implementation of a popular strategy game
gcc | \* | Compiler suite.
newlib| \* | C library
libpng| \* | PNG graphics library
zlib | \* | `gzip` compression library
FreeType | \* | TrueType font parser
Cairo | \* | CPU-accelerated pixel-pushing and vector graphics
ncurses | \* | Terminal UI library and `terminfo` provider
Mesa | \* | Software OpenGL implementation
Vim | \* | Popular text editor
Lua | [link](http://www.lua.org/) | Interpreted programming language
MuPDF | [link](https://github.com/klange/toaru-pdfviewer) | PDF viewer (requires complex library cross-compilation)
SDL | [link](https://github.com/klange/SDL) | Cross-platform graphics library
Snes9X | [link](https://github.com/klange/snes9x-sdl) | SNES emulator
PrBoom | [link](https://github.com/klange/prboom) | DooM engine
Bochs | [link](http://bochs.sourceforge.net/) | Software x86 PC emulator
Python | (TBD) | Interpreted programming language
\* These tools and libraries are retrieved by the build process and included by default. Some of them are dependencies for the core userspace.
License for the included third-party tools and libraries can be found [here](LICENSE.md).
## Community ##
### Wiki ###
For additional screenshots, see [Screenshots](https://github.com/klange/toaruos/wiki/Screenshots).
For instructions on building, see [Testing and Building](https://github.com/klange/toaruos/wiki/Testing-and-Building).
### IRC ###
For help building the kernel and userspace, join us in `#toaruos` on Freenode (`irc.freenode.net`).