toaruos/TODO.md

143 lines
4.5 KiB
Markdown
Raw Normal View History

# TODO for 0.4.0 Distribution Release
* CD support
* Boot from "CD"
* Distribute with Grub
* CD image generator in-repo
* User Interface
* Graphical Login
* More applications
* Stable Harddisk writes
* Screenshot functionality
* Attempt an installer?
2012-10-10 08:01:38 +04:00
# Doc Revamp
* Get rid of old, outdated TeX/PDF manual
* Build a modern doxygen-powered documentation system for
kernel functions for use by kernel developers.
* Also include doxygen documentation for included libraries
(lib/graphics, etc.)
# Keyboard Library
* Capture all key events in kernel
* Send all of them through the keyboard device
* Include ctrl/alt/shift up/down
* Do translations in library
* shift to key numbers
* ctrl/alt to modes
* Convert to terminal codes in library
* For use in terminal, primarily
* Revamp compositor keyboard events
* Focus on complete key events
* Add support for modes for ctrl/alt
2012-09-29 11:37:30 +04:00
# TODO for Microkernel Launch (0.5.0?)
* Replace ramdisks with ELF service executables
* Boot with multiple modules = boot with multiple services.
* vfs.srv, for example
* VFS as a service.
* It would be super awesome to write this in a language that is more flexible.
* Actual file system drivers as separate modules, or what?
* Service bindings
* Essentially, a system call interface to discovering available services.
* `require_service(...)` system call for usable errors when a service is missing?
* Deprecate old graphics applications
* And rename the windowed versions.
* Environment variables
* Support them in general
* Push things like graphics parameters to environment variables
* Integrate service-based VFS into C library
* Which probably means integrating shmem services into the C library
* Services in a separate ring
* Compositor as a service
* Compositor shmem names integrated with service discovery
* For VFS, need better IPC for cross-process read/write/info/readdir/etc. calls
## Service Modules (aka "Services")
* `vfs.srv` The virtual file system server. (required to provide file system endpoints)
* `ext2.srv` Ext2 file system server. (provides `/`)
* `ata.srv` ATA disk access server. (provides `/dev/hd*`)
* `compositor.srv` The window compositing server. (provides shmem regions)
* `ps2_hid.srv` The keyboard/mouse server. (provides `/dev/input/ps2/*`)
* `serial.srv` UART serial communication server (provides `/dev/ttyS*`)
### Future Servers
* `usb.srv` Generic USB device server (provides `/dev/input/usb/*`)
* `proc.srv` Process information server (provides `/dev/proc`; uses lots of kernel bindings)
* `net.srv` Networking server (provides `/dev/net`)
* `gfx.srv` Block-access graphics server (provides `/dev/fb*`)
## Things that are not services
* ELF support is not a service
2012-09-05 04:46:59 +04:00
# TODO as of Septemember 2012
## C++
* Build with C++ support
2012-09-05 04:46:59 +04:00
## Terminal Fixes ##
* Mouse features; mouse support in windowed mode
* Tab completion in shell (this is mostly a shell-specific thing)
## Windowing System ##
* Graphical Login Manager
* Finish GUI toolkit
* File manager app
## Harddisk Drive Extras
* VFS support is still almost entirely non-existent
* Write support for EXT2 is still sketchy
* Still lacking fast read/write for IDE - needs more DMA!
## Toolchain
* Finish GCC port
* Still missing a few things in the underlying C library
* Ideally, also want to be able to build natively, so need scripting, build utils, etc.
* Port ncurses/vim/etc.
* Native development requires good tools.
* Also port genext2fs.
* Directory support needs to be better integrated into the C library still
## Microkernal Readiness
* Deprecate ramdisks
* Haven't used them in development in over a year
* Not useful anywhere else due to their limiting sizes
* Implement module execution
* Instead of loading a ramdisk, modules should be standard binaries
* The binaries will be executed in a new "service mode"
* Implement "servicespace"
* Userspace, but at a different ring
* Special access features, like extended port access
* Higher priority scheduling
### Services to Implement
* PCI Service
* Graphics Management Service
* Compositor as a service?
* Virtual File System Service
Heh... Consider writing some of these in better languages than C. May a D servicespace?
TODO: Get D working.
2012-09-05 04:46:59 +04:00
## Old I/O goals
### I/O
2011-10-23 03:20:57 +04:00
* `/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
* SATA read/write drivers (`/dev/sdaN`)
* `/dev/ramdisk` (read-only)
* EXT2 drivers should operate on a `/dev/*` file
* Mounting of `/dev/*` files using a filesystem handler
* VFS tree