3.1 KiB
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.