Fiwix 是一个从头开始编写的操作系统内核,基于 UNIX 架构,完全专注于符合 POSIX 标准。它主要是作为一个业余操作系统而设计和开发的,由于它也用于教育目的,因此为了方便学生和操作系统爱好者,内核代码尽可能保持简单。其大小很小(代码行数少于 50K),运行在 i386 硬件平台上,并与大量现有的 GNU 应用程序兼容。
特点
- 使用 ANSI C 语言编写 (仅在需要的部分使用汇编)。
- 符合 GRUB Multiboot 规范 v1。
- 全 32 位保护模式非抢占式内核。
- 适用于 i386 处理器及更高版本。
- 抢占式多任务处理。
- 符合 POSIX 标准 (大部分)。
- 进程组、会话和作业控制。
- 进程间通信,使用管道、信号和 UNIX 域套接字。
- UNIX System V IPC (信号量、消息队列和共享内存)。
- BSD 文件锁定机制 (POSIX 仅限于文件和建议)。
- 虚拟内存分割 (用户/内核):3GB/1GB 和 2GB/2GB。
- 根据需求分页,具有写时复制功能。
- Linux 2.0 i386 ABI 系统调用兼容性 (大部分)。
- 支持 ELF-i386 可执行文件格式 (静态和动态链接)。
- 基于 Round Robin 的调度算法 (尚无优先级)。
- VFS 抽象层。
- 支持 Multiboot 规范 v1 和 Linux 开机协议的 Kexec。
- 支持 EXT2 文件系统,具有 1KB、2KB 和 4KB 的块大小。
- 支持 Minix v1 和 v2 文件系统。
- 支持类似 Linux 的 PROC 文件系统 (只读)。
- 支持 PIPE 假文件系统。
- 支持 ISO9660 文件系统,具有 Rock Ridge 扩展。
- 支持 RAM 磁盘设备。
- 支持初始 RAM 磁盘 (initrd) 映像。
- 支持基于 SVGAlib 的应用程序。
- 支持 PCI 本地总线。
- 支持 QEMU/Bochs 图形适配器。
- 支持 UNIX98 假终端 (pty) 和 devpts 文件系统。
- 支持虚拟控制台 (最多 12 个)。
- 支持 Linux 键映射的键盘驱动程序。
- 支持 PS/2 鼠标。
- 支持 VESA VBE 2.0+ 兼容图形卡的帧缓存设备。
- 支持帧缓存控制台 (fbcon)。
- 支持串行端口 (RS-232) 驱动程序。
- 远程