-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
91 lines (89 loc) · 2.62 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
better makefile and build system
fix clang build (qemu cannot run it, multiboot header issue perhaps ?)
clean up code base
add -v flag for booting (for now will be hardcoded as enabled) for printk, to not show logs
terminal scrolling (shift lines by -1)
ps2 keyboard driver (make a function to convert scan code to ascii print / operation depending on input and implement qwerty and azerty keyboard layouts with a keyboard layout switching function)
malloc(), free(), realloc(), calloc()
atoi(), atol(), atoll() [if applicable to architecture]
printf(), sprintf(), snprintf(), vprintf(), vsprintf(), vsnprintf() [use va_list for printf] (allow %b using -DNON_STANDARD_LIBC_EXTS flag)
strings.h implementation
implement tty, console and serial
qemu serial driver
32bit protected mode
ramdisk (fat32, ustar)
FILE* functions ( fopen(), fread(), fclose(), ferror(), fseek(), ...)
graphical mode generic VGA/VESA driver (use inport/outport)
IDE driver
rw fat32 support
usb stack
usb keyboard, pendrive, ... support
elf program loading
syscalls interface
bismuth libc (possible musl libc port ?) (*printf %b and itoa activated using -DNON_STANDARD_LIBC_EXTS flag)
simple /bin/sh implementation
basic fs layout* (bin,boot,etc,home,dev,lib,...):
networking TCP and UDP stack
userspace storage, fat32fs, tarfs, networking drivers
kernelspace vfs,io,memmgmt,display drivers
simple bootloader (BismuthLDR) (nt osloader style) with boot.jsonc support
boot parameters support (check -append mem addr with qemu)
uefi support (use posix-uefi)
64 bit long mode **support** (not imposed)
multicore, 128TB ram support
multitasking
background tasks
port some software over (7z, vim, python, lua, libarchive, xz, gzip, bzip2, fastfetch, qemu, gmake, curl, llvm+clang, mksh/yash, zenithutils)
* fs layout (may change in the future):
/
|- EFI/Bismuth/Bismuthldr_[ia32/x64].efi
|- boot/
| |- Bismuth-[version].sys
| |- boot.jsonc
| -- boot_utils/
| |- Bismuth-config.h
| |- Bismuth-config.mk
| -- Bismuthldr_BIOS.mbr
|
|- etc/
|- users/
| -- root/
| |- pics
| |- vids
| |- dl
| |- docs
| -- music
|
|- dev/
| |- graphics/
| |- disk/
| | |- sata0disk0p1
| | |- usbdrv0p1
| | |- cdrom
| | |- floppya
| | -- floppyb
| |- console
| | |- tty0...15
| | -- ttyserial1...3
| |
| |- sys_api/ (equivalent to /sys on *nix)
| |- proc/
| |- stdio/
| | |- stdin
| | |- stdout
| | -- stderr
| -- input/
| |- ps2_mouse
| -- ps2_kbd
|
|- programs/
| |- bin/
| |- sbin/
| |- opt/
| | |- i486-elf-utils (example, not in final product)
| | -- i486-elf-utils (example, not in final product)
| |- lib
| |- include
| -- share
|
-- media/