toaruos/TODO.md

89 lines
3.1 KiB
Markdown
Raw Normal View History

2011-10-31 10:55:18 +04:00
# Short-Term Development Targets as of 2011/10/31
## Harddisk Support
* Write support for EXT2 *working, but needs more work, if that makes any sense*
2011-12-12 12:29:59 +04:00
* Port EXT2 drivers to IDE -read-/write (superblock read testing was successful)
* Build a better VFS with support for disk mounting *oh, please, yes...*
* -Get all of the example binaries onto a hard disk image- *did this, sort of*
2011-10-31 10:55:18 +04:00
* **PORT GCC**
2011-10-31 11:05:34 +04:00
## Operation Viper
* Port ncurses
* Requires some terminal-related C library functions
* Port Vim
* Requires directory support
* Disable command execution?
2011-10-23 03:20:57 +04:00
# Development Targets as of 2011/10/21
## I/O
* `/dev` file system
* `/dev/fbN` and `/dev/ttyN` for virtual framebuffer terminals and graphics
2011-10-23 03:39:37 +04:00
* `/dev/ttyS0` for serial I/O
2011-10-23 03:20:57 +04:00
* Support framebuffer switching via keyboard
* Remove hardcoded special-casing for `stdin`/`stdout`/`stderr`
* SATA read/write drivers (`/dev/sdaN`)
* `/dev/ramdisk` (read-only)
* EXT2 write support (including file creation, directory creation, rm, unlink, etc.)
* EXT2 drivers should operate on a `/dev/*` file
* Mounting of `/dev/*` files using a filesystem handler
* VFS tree
2011-10-23 03:21:45 +04:00
## libc
2011-10-23 03:20:57 +04:00
* Fork `newlib`
* Changes for `newlib` should be moved to a git repository
* Fix 64-bit host builds?
* `dirent.h` support; `readdir` in kernel
* Entire user-space library set should build from scratch on any compatible system
2011-10-23 03:21:45 +04:00
* Consider working with `glib`?
2011-10-23 03:20:57 +04:00
## GCC
* Port GCC
* Port `yasm`, `make`
## Task Management
2011-12-12 12:29:59 +04:00
* -Fix user-mode `fork`-
* -Add user-mode `wait`- (with queues!)
2011-10-23 03:20:57 +04:00
* Signals (`signal()`, `kill()`, etc.)
## Signals and Exceptions
*Signals have been implemented.*
2011-12-12 12:29:59 +04:00
# EOH
EOH, "Engineering Open House", is an annual event held at the University of Illinois at Urbana-Champaign which showcases student projects and research.
## Primary Plans
* Windowing environment
* More user applications
## Details
### Windowing Environment
EOH is focused on making stuff that looks cool. Judges are impressed by things they can see, thus the primary target for EOH is a GUI.
Complete the windowing environment (which will eventually be rebuilt to implement Wayland, in the far future), will require:
* Pipes (for user applications, terminal windows, etc.)
* Shared memory buffers (single writer; client-server model; for window graphics buffers)
* Input device files (for mouse and keyboard reads)
Additionally, it would be nice to have:
* Freetype (for smooth, unicode text rendering; I have had difficulties getting Freetype to process font files, this may be a bug in the ELF loader; try to trace what calls Freetype normally makes to figure thise out)
* There is an embedded, pure-software implementation of OpenGL; consider porting it (because 3d stuff is cool)
### Applications
Both for the purpose of demonstrating the windowing environment and to make とあるOS more usable, it would be ideal to have a few usable applications.
* A simple editor (I would love to port something real like Vim, but this has proven difficult due to external requirements)
* Graphical applications such as:
* A calculator
* Some simple game (perhaps minesweeper)
* An analog clock
* A compiler for something, even if it isn't C.