-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTODO
50 lines (37 loc) · 2.07 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
* Console stuff:
* "clear" command in the user mode shell
* Color support (ANSI escapes?)
Combined, this likely means adding some terminfo-ish terminal support; I have *NO* idea how that works, so it'll have to wait a bit.
* Copy-on-write fork()
* Rewrite the sleep/block system to handle:
* sleep()
* wait*()
* mutexes
* I/O (pipes, ATA)
* Pipes:
* Proper blocking, including notifying tasks waiting when the last reader/writer is closed
* initrd:
* Document the new initrd format (create_initrd.py, initrd.c)
* Try to recreate and fix the OS not running under QEMU 1.0 (qemu-kvm-1.0/x86_64)
* Improve the user-mode shell
* Tab completion escaping (also add support for escaped spaces in argument parsing)
* Pipe support
* ; && and ||
* !! and !cmd (and perhaps !-n) to look through history
* Better parsing, e.g. 2>&1 works the same as 2> &1 does now; echo a>b writes 'a' to the file 'b' even without the space in between, etc.
* ext2:
* ext2_read()
* CHECK_ACCESS_* are very inadequate! It should be *trivial* to give an unmapped address and have the kernel page fault and panic! Not that this truly matters, since it's trivial to get the kernel to panic anyway -- I'm still doing that on purpose on every minor problem, so that bugs are not missed.
* create basic "find" utility, with little more than -name and/or -iname to begin with...?
* scandir on FAT returns < 0, but errno is not set! Why does it fail?
* serial input as a supplement to the keyboard? interrupt-driven, of course.
Could be nice to use the native keymap inside the OS easily!
* VFS:
* Improve /etc/mounts and fs_mount to specify disk+partition instead of the current system of autodetecting and only supporting 1 initrd, 1 FAT and 1 ext2 partition
* if getdents() is called *again* after returning 0, it will likely start over again; test this behaviour (also under Linux) and fix if necessary
* FAT: write support!
* DMA for ATA transfers?
* Signal support
* Proper VFS
* Implement queues for mutexes
* Directory caching - searching and stat()ing a "large" (20+ entries) directory is slow! 100+ is *very* slow!