toaruos/TODO.md

3.1 KiB

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
  • 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
  • PORT GCC

Operation Viper

  • Port ncurses
    • Requires some terminal-related C library functions
  • Port Vim
    • Requires directory support
    • Disable command execution?

Development Targets as of 2011/10/21

I/O

  • /dev file system
  • /dev/fbN and /dev/ttyN for virtual framebuffer terminals and graphics
  • /dev/ttyS0 for serial I/O
  • 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

libc

  • 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
  • Consider working with glib?

GCC

  • Port GCC
  • Port yasm, make

Task Management

  • -Fix user-mode fork-
  • -Add user-mode wait- (with queues!)
  • Signals (signal(), kill(), etc.)

Signals and Exceptions

Signals have been implemented.

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.