89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
# Short-Term Development Targets as of 2011/10/31
|
|
|
|
## Harddisk Support
|
|
* Write support for EXT2
|
|
* Port EXT2 drivers to IDE -read-/write (superblock read testing was successful)
|
|
* Build a better VFS with support for disk mounting
|
|
* -Get all of the example binaries onto a hard disk image-
|
|
* **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
|
|
|
|
SIGDIAF (Die in a fire)
|
|
|
|
# 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.
|