8
8
9
9
- [ 参考文献] ( ./docs/others/参考文献.md )
10
10
11
+ ## 主要功能
12
+
13
+ - 系统引导:
14
+ - [x] bootloader
15
+ - [x] multiboot2
16
+ - 设备驱动:
17
+ - [x] PIC 8259 中断控制器
18
+ - [x] PIT 8254 定时计数器
19
+ - [x] 蜂鸣器
20
+ - [x] CMOS 时钟 / 实时时钟
21
+ - [x] CRTC 控制台 ` 0xb8000 `
22
+ - [x] PS/2 键盘
23
+ - [x] 串口设备
24
+ - [x] CPU 功能检测
25
+ - [x] FPU 浮点处理单元
26
+ - [x] IDE 硬盘 (PIO)
27
+ - [x] 声霸卡驱动 (🐛 一些情况下播放卡顿)
28
+ - [x] 软盘驱动
29
+ - [x] PCI 总线枚举
30
+ - [x] IDE 硬盘 (UDMA)
31
+ - [x] e1000 网卡驱动
32
+ - [x] ATAPI 光盘驱动
33
+ - [ ] PS/2 鼠标 (🌱 panda)
34
+ - [ ] VESA 图形驱动 (🌱 panda)
35
+ - [ ] ACPI:控制关机和重启 [ @lihanrui2913 ] ( https://github.com/lihanrui2913 ) (🌱 acpi)
36
+ - [ ] RTL8139 网卡驱动
37
+ - [ ] USB
38
+ - 内存管理:
39
+ - [x] 保护模式和全局描述符
40
+ - [x] ** 页映射** (核心功能)
41
+ - [x] 堆内存管理
42
+ - 任务管理:
43
+ - [x] ** 任务调度** (核心功能)
44
+ - [x] 同步与互斥 (锁)
45
+ - [x] 定时器
46
+ - [x] 信号机制
47
+ - 用户程序:
48
+ - [x] ELF 文件解析
49
+ - [x] ELF 文件加载运行
50
+ - [ ] 动态链接库
51
+ - 系统调用
52
+ - 文件系统:
53
+ - [x] 管道
54
+ - [x] 套接字
55
+ - [x] Minix1 文件系统
56
+ - [x] ISO9660 文件系统
57
+ - 网络协议:
58
+ - [x] Ethernet 以太网协议
59
+ - [x] ARP 协议
60
+ - [x] IPv4 协议
61
+ - [x] ICMP 协议
62
+ - [x] UDP 协议
63
+ - [x] TCP 协议
64
+ - [x] DHCP 协议:局域网 IP 地址获取
65
+ - [x] DNS 协议:域名解析
66
+ - [x] HTTP 协议:简单的 HTTP 服务器
67
+ - 开发环境:
68
+ - [x] WSL2 [ @znyin ] ( https://github.com/znyinyyniu )
69
+ - [ ] docker (🌱 docker)
70
+
11
71
## 使用方法
12
72
73
+ > 目前不支持 USB 驱动,无法使用 U 盘直接在实体机启动,谨慎测试!
74
+
13
75
iso 文件的使用参考 [ 版本 1.0.0] ( ./docs/13%20系统优化/179%20版本%201.0.0.md ) ;
14
76
15
77
对于 ` qemu ` 模拟器,需要提前配置 ` tap0 ` 设备,用于网络:
16
78
17
79
qemu-system-i386 -m 32M -audiodev pa,id=snd -machine pcspk-audiodev=snd -device sb16,audiodev=snd -rtc base=localtime -chardev stdio,mux=on,id=com1 -serial chardev:com1 -netdev tap,id=eth0,ifname=tap0,script=no,downscript=no -device e1000,netdev=eth0 -drive file=onix_1.0.0.iso,media=cdrom,if=ide -boot d
18
80
19
- ## 开发中的功能
20
-
21
- ### 硬件驱动
22
-
23
- - [ ] ACPI:控制关机和重启 [ @lihanrui2913 ] ( https://github.com/lihanrui2913 )
24
- - [x] 网卡驱动 RTL8139
25
-
26
81
## Pull Request 约定
27
82
28
83
1 . 确保每个修改的文件都是有意义的,不要添加与系统无关的文件;
@@ -49,11 +104,14 @@ Commit Decription 前面加上 emoji ❤️ 提高阅读性:
49
104
- bochs >= 2.7 [ ^ bochs ]
50
105
- qemu >= 6.2.0 [ ^ qemu ]
51
106
- gcc >= 11.2.0 [ ^ gcc ]
52
- - gdb == 12.1 [ ^ gdb ]
53
- - nasm == 2.15.05
54
- - binutils >= 2.38
55
- - vmware >= 16.1
56
- - vscode == 1.74.3
107
+ - gdb >= 12.1 [ ^ gdb ]
108
+ - nasm >= 2.15.05 [ ^ nasm ]
109
+ - binutils >= 2.38 [ ^ binutils ]
110
+ - vmware >= 16.1 [ ^ vmware ]
111
+ - vscode >= 1.74.3 [ ^ vscode ]
112
+ - ffmpeg >= 6.0 [ ^ ffmpeg ]
113
+ - python >= 3.6 [ ^ python ]
114
+ - pyelftools >= 0.29 [ ^ pyelftools ]
57
115
58
116
## Star History
59
117
@@ -66,4 +124,9 @@ Commit Decription 前面加上 emoji ❤️ 提高阅读性:
66
124
[ ^ gcc ] : < https://gcc.gnu.org/ >
67
125
[ ^ gdb ] : < https://www.sourceware.org/gdb/ >
68
126
[ ^ nasm ] : < https://www.nasm.us/ >
69
-
127
+ [ ^ binutils ] : < https://www.gnu.org/software/binutils/ >
128
+ [ ^ vmware ] : < https://www.vmware.com/products/workstation-pro.html >
129
+ [ ^ vscode ] : < https://code.visualstudio.com/ >
130
+ [ ^ ffmpeg ] : < https://ffmpeg.org >
131
+ [ ^ python ] : < https://www.python.org/ >
132
+ [ ^ pyelftools ] : < https://github.com/eliben/pyelftools >
0 commit comments