Visopsys 是一个 PC 机的操作系统,系统小型、快速而且开源。有着丰富的图形界面、抢先式多任务机制以及支持虚拟内存。Visopsys 视图兼容很多操作系统,但并不是他们的克隆版本。Visopsys 0.92 现已发布,此维护版本引入了多任务处理程序、文件系统、文本编辑器和网络程序的可用性和稳定性改进,以及许多错误修复。
具体更新内容包括:
- 添加了对 64 位 EXT 文件系统的支持(read-only,和以前一样)。
- 实施了一系列步骤来更改内核的多任务处理程序以使用软件任务切换,而不是使用处理器功能。这是添加 x86_64 版本的先决条件。
- 实现了 contextSwitch () 函数。
- 添加了一个 “collector” 线程来完成清理已完成进程的工作,而不是在调度程序本身内进行。
- 取消了 x86 IDT task gates 的使用,并删除了多任务程序的调度程序进程并将其转换为中断处理程序。
- 更新了 “edit” 文本编辑器程序以添加 “New” 和 “Save As” 菜单项,使其更符合其他编辑器使用的惯例。当在没有文件名的情况下调用或创建 “New” 文档时,“Save” 菜单项将被禁用。停止为未保存文档使用临时文件。
- 添加了一个窗口库 “cancel” 对话框,用于停止正在进行的操作。
- 由于通过 TCP 连接可能会阻塞相当长的时间,因此网络程序现在使用可以通过新的 “cancel” 对话框终止的连接线程。
- 为数据包嗅探器添加了过滤(例如仅 TCP、仅 ARP 等)。默认情况下,显示所有网络数据包。左侧面板底部的一个新按钮将弹出一个对话框窗口,允许用户(取消)选择要显示的各种类型的数据包。
- 添加了 “errno” 程序来打印与错误代码相关的错误消息。
- 更新了内核的 MD5 hashing 函数以(正确)匹配更现代的 SHA1 和 SHA256 代码的用法和行为。
- 删除了 “md5” 程序,并将其替换为 “md5pass” 和 “md5sum” 程序,分别用于 hashing 字符串和文件。
- 在 kernelFile.c 中的 freeEntries 列表中添加了一个锁。
- 在目录 fileEntry 结构中添加或删除条目列表时添加了锁定。
- 添加了标准 C 库函数 strndup ()。
- 向 C 库添加了全局错误字符串表,并将 strtol () 和 family 的定义从 <stdio.h> 移至 <stdlib.h>。
- 更改了 “test” 程序的 file_ops 测试以在 /temp 中创建其临时目录,以便即使在只读启动磁盘上它也可以默认工作。
- 已修复:VmWare 虚拟 SATA 磁盘的 SATA 驱动程序问题。初始磁盘枚举期间 SATA AHCI DMA 模式设置出错。
- 已修复:创建缩略图或单击多个图像时 Jpeg 加载和 / 或调整图像大小的问题。在许多情况下,创建了缩略图,但 View 程序在加载缩略图时会报错。
- 已修复:从只读文件系统 (CD) 启动时,按 PrtScn 可能会导致页面错误,并在控制台上显示错误消息,显示 “文件系统是只读的” 和 “无法打开 [文件] 进行写入”。
- 已修复:当从只读介质 / 磁盘(例如 CD/DVD)启动时,单击程序窗口中的文本编辑器时,会显示错误对话框 “Error -11 loading fil”。
- 已修复:挂载新文件系统时,它会出现在目录列表中按字母顺序排序的其他项目之前。最近安装的文件系统始终作为其安装点父目录中的第一个条目插入,因为尚未设置文件名。
- 已修复:内核 API 在 high 32 bits 中返回不正确的 64 位值。例如,“ls” 命令显示的空闲字节值和 “ping” 命令显示的时间值显然是错误的。
- 已修复:尝试遍历空窗口容器可能会导致 “Can’t allocate zero bytes” 错误被记录到控制台,例如在首次启动屏幕上切换语言后。
- 修复了使用 “clang” 编译器构建时产生的一些警告。