菲维克斯
Fiwix 是一个从头开始编写的操作系统内核,基于 UNIX 架构,完全专注于 POSIX 兼容。它主要是作为业余爱好操作系统而设计和开发的,并且由于它也用于教育目的,因此为了学生和操作系统爱好者的利益,内核代码尽可能保持简单。它体积小(少于 50K 行代码),在 i386 硬件平台上运行,并与现有 GNU 应用程序良好兼容。
特征
- 用ANSI C语言编写(仅在需要的部分使用汇编)。
- 符合 GRUB 多重引导规范 v1。
- 完整的 32 位保护模式非抢占式内核。
- 适用于 i386 处理器及更高版本。
- 抢占式多任务处理。
- 符合 POSIX 标准(大部分)。
- 进程组、会话和作业控制。
- 使用管道、信号和 UNIX 域套接字进行进程间通信。
- UNIX System V IPC(信号量、消息队列和共享内存)。
- BSD 文件锁定机制(POSIX 仅限于文件和咨询)。
- 虚拟内存划分(用户/内核):3GB/1GB 和 2GB/2GB。
- 具有写入时复制功能的请求分页。
- Linux 2.0 ABI 系统调用兼容性(大部分)。
- ELF-i386 可执行格式支持(静态和动态链接)。
- 基于循环的调度算法(还没有优先级)。
- VFS抽象层。
- Kexec 支持多重启动规范 v1 和 Linux 启动协议。
- EXT2 文件系统支持 1KB、2KB 和 4KB 块大小。
- Minix v1 和 v2 文件系统支持。
- 类似 Linux 的 PROC 文件系统支持(只读)。
- PIPE 伪文件系统支持。
- ISO9660 文件系统支持 Rock Ridge 扩展。
- RAMdisk 设备支持。
- 初始 RAMdisk (initrd) 映像支持。
- 基于 SVGAlib 的应用程序支持。
- PCI 本地总线支持。
- QEMU PCI 串行设备支持。
- QEMU/Bochs 图形适配器支持。
- Intel PIIX3 PCI ISA IDE 控制器。
- 支持 Linux 键映射的键盘驱动程序。
- PS/2 鼠标支持。
- 帧缓冲设备支持 VESA VBE 2.0+ 兼容显卡。
- 帧缓冲控制台 (fbcon) 支持。
- 串行端口 (RS-232) 驱动程序支持。
- 远程串行控制台支持。
- QEMU Bochs 风格的调试控制台支持。
- 并行端口打印机驱动程序支持。
- 伪随机数生成器的基本实现。
- 软盘设备驱动和DMA管理。
- IDE/ATA ATAPI CD-ROM 设备驱动程序。
- IDE/ATA硬盘设备驱动程序。
编译
构建 Fiwix 内核所需的命令是make clean ; make
。这将在源代码树的根目录中创建文件fiwix (内核本身)和System.map.gz (符号表)。
在编译之前,您可能需要通过更改include/fiwix/config.h
和include/fiwix/limits.h
中的默认值来调整内核配置。
请记住,内核本身不会执行任何操作,您需要创建一个用户空间环境才能使用它。启动时,内核会挂载根文件系统并尝试在其上运行/sbin/init
,因此您需要自己提供此程序。幸运的是,FiwixOS 提供了一个完整的用户空间类 UNIX 环境来测试 Fiwix 内核。
安装中
您可以通过从 CD-ROM 或软盘引导来继续在硬盘上安装 FiwixOS。如果您选择后者,您还需要插入安装光盘来安装构成所有系统环境的软件包。
让系统启动,准备好后,只需输入install.sh
。
最低硬件要求如下:
- 标准 IBM PC-AT 架构。
- i386 处理器(带浮点处理器)。
- 4MB RAM 内存(推荐 128MB)。
- IDE/ATAPI CD-ROM 或软盘(3.5 英寸,1.44MB)。
- 1GB ATA 硬盘。
请记住,这是一个处于早期阶段的内核,很可能存在尚未识别或解决的严重错误和损坏的功能。
让我重复一遍。
请记住,这是一个处于早期阶段的内核,很可能存在尚未识别或解决的严重错误和损坏的功能。
*****************************
*** USE AT YOUR OWN RISK! ***
*****************************
参考
执照
Fiwix 是根据 MIT 许可证条款获得许可的免费软件,请参阅许可证文件了解更多详细信息。
版权所有 (C) 2018-2024,Jordi Sanfeliu。
制作人员
Fiwix 由 Jordi Sanfeliu 创建。
您可以通过 [email protected] 联系我。另请参阅 CREDITS 文件。