Update TODO.md
[ci skip]
This commit is contained in:
parent
0cdecac8e0
commit
d19083f2aa
109
TODO.md
109
TODO.md
@ -1,88 +1,49 @@
|
|||||||
# Short-Term Development Targets as of 2011/10/31
|
# TODO as of Septemember 2012
|
||||||
|
|
||||||
## Harddisk Support
|
## Build Fixes ##
|
||||||
* Write support for EXT2 *working, but needs more work, if that makes any sense*
|
* Update userspace syscalls.h to include `sys_func` system call.
|
||||||
* Port EXT2 drivers to IDE -read-/write (superblock read testing was successful)
|
* Fix "no .eh_frame_hdr table will be created." warning when building userspace apps.
|
||||||
* Build a better VFS with support for disk mounting *oh, please, yes...*
|
* Fix all other [legtimate] warnings when building userspace apps.
|
||||||
* -Get all of the example binaries onto a hard disk image- *did this, sort of*
|
* Silence warnings on obfuscated C examples in build process or remove them as unecessary (we have `nyancat`)
|
||||||
* **PORT GCC**
|
|
||||||
|
|
||||||
## Operation Viper
|
## Terminal Fixes ##
|
||||||
* Port ncurses
|
* Investigate issues with slow terminal pipes (`yes` running amok)
|
||||||
* Requires some terminal-related C library functions
|
* Mouse features; mouse support in windowed mode
|
||||||
* Port Vim
|
* Tab completion in shell (this is mostly a shell-specific thing)
|
||||||
* Requires directory support
|
* Unicode support
|
||||||
* Disable command execution?
|
* UTF-8 parsing
|
||||||
|
* UCS storage of characters in the terminal screen display
|
||||||
|
* Font fallback for characters not in core font
|
||||||
|
* Character width detection from fonts (for determining double-width characters)
|
||||||
|
|
||||||
# Development Targets as of 2011/10/21
|
## 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!
|
||||||
|
|
||||||
## I/O
|
## 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
|
||||||
|
|
||||||
|
## Old I/O goals
|
||||||
|
|
||||||
|
### I/O
|
||||||
* `/dev` file system
|
* `/dev` file system
|
||||||
* `/dev/fbN` and `/dev/ttyN` for virtual framebuffer terminals and graphics
|
* `/dev/fbN` and `/dev/ttyN` for virtual framebuffer terminals and graphics
|
||||||
* `/dev/ttyS0` for serial I/O
|
* `/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`)
|
* SATA read/write drivers (`/dev/sdaN`)
|
||||||
* `/dev/ramdisk` (read-only)
|
* `/dev/ramdisk` (read-only)
|
||||||
* EXT2 write support (including file creation, directory creation, rm, unlink, etc.)
|
|
||||||
* EXT2 drivers should operate on a `/dev/*` file
|
* EXT2 drivers should operate on a `/dev/*` file
|
||||||
* Mounting of `/dev/*` files using a filesystem handler
|
* Mounting of `/dev/*` files using a filesystem handler
|
||||||
* VFS tree
|
* 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.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user