Os8088: 一款强大的类Mac操作系统,适用于IBM XT、286、386
os8088 1.0 可能为IBM XT设计的图形操作系统 一个类似Macintosh System 1风格的桌面,针对Intel 8086,完全使用实模式汇编编写并从软盘启动。重叠窗口,下拉菜单,串行鼠标,可加载程序——还有实时抢占式多任务处理,1984年真正的Macintosh并没有这些。 像素640x480 颜色16 内存256K字节 内核52,718 任务槽12 抢占18.2Hz os8088 在1978年的CPU上同时运行五个程序。一个从软件软盘加载的记事本,一个走动的时钟,一个弹跳的球,控制面板和任务管理器,每个都是单独的实例,有自己的停靠图标。任务管理器报告机器在70%忙碌状态,147K内存正在使用。 什么是os8088 os8088从软盘的第一个扇区启动到图形桌面。底下没有DOS,任何地方也没有命令行——512字节的引导扇区加载一个40KB的内核,内核找出机器的显示适配器,并将其切换为图形模式,借用视频卡本身的8x8字符集,并放出一个菜单栏。之后的一切都是你从1984年Macintosh记得的界面:你可以通过标题栏拖动窗口,带有橡皮筋轮廓的窗口,下拉并拖动的菜单,关闭框和最小化框,代表每个软盘驱动器的图标,以及底部的一个停靠区,每个正在运行的程序都有一块图标。程序从第二个软盘中加载,并以一等公民的身份运行,同时可以有多个程序运行。整个系统在256K内存下适用于Intel 8086或8088——原始IBM PC和PC/XT中的处理器。这是一个爱好项目,已经足够完成以供使用,源代码是66,183行NASM,你可以在一个下午阅读。 根据数据 每个下面的数字均来自构建,而不是记忆。 os8088的验证规格 内核大小 52,718字节 调度器、窗口管理器、VGA驱动程序、鼠标驱动程序、声音层、文件管理器、加载程序、任务管理器和控制面板,所有这些。 启动扇区 512字节 LBA到CHS的翻译和重试BIOS软盘读取。如果组装到其他任何值,构建失败。 段占用 59,031字节 代码加上内核通过DS访问的每个缓冲区。它必须适合64K段——当前留下6,505字节的头部空间。任务栈、磁盘缓冲区和每个加载的程序都在段外,不计算在这里。 汇编行数 66,183 手写的实模式8086。没有C,没有链接器,没有运行时库。 显示 VGA、Hercules或CGA 启动时探测。VGA模式12h是640x480,16种颜色——四个1位平面,每条扫描线80字节;Hercules是720x348,CGA是640x200,都是单色的并且是分段的。所有三者都是直接绘制到帧缓冲区中。 后备缓冲区可选,默认关闭 屏幕的离线拷贝为153,600字节,占用机器内存的一半以上,因此256K的机器总是会直接绘制到显示器,就像1984年的Macintosh那样。在500K或更多时,控制面板可以打开一个。 任务 12个槽,1,536字节栈 每个时钟和每个弹跳窗口都是自己的抢占任务。 上下文切换频率 18.2065 Hz PC的标准定时器速率。每次滴答,处理程序保存九个寄存器,交换堆栈指针,并返回到另一个程序中。 可加载程序 每个段 从第二个软盘加载的包进入它们自己的常规内存区域——在512K机器上约107K的场地,640K上为233K——同时可以有多个驻留,每个程序关闭时释放其内存。 鼠标 1200波特率,7N1 一只在COM1上的微软串行鼠标,每次报告三字节,由一个在中断处理程序中解码的程序处理,该程序还绘制光标。 目标硬件 IBM PC/XT,8088以4.77MHz 256K内存,一只串行鼠标,以及VGA、Hercules或CGA显卡中的任何一种。 重绘速度慢到可见。 指令集 仅限8086,强制执行cpu 8086加上-w +error,因此任何更新的CPU都会导致构建失败。1978年的指令集,机械保证。 它能做什么 四个它实际上擅长的事情。更多内容请查阅截图页面。 抢占式多任务 任何东西都不需要配合。两个时钟保持时间,两个球在你输入其他内容时保持移动。定时器中断每秒发生18.2次,保存正在运行的任务,交换堆栈指针并返回到下一个任务——大约三十条指令。那个时期的Macintosh根本无法做到这一点:System 1同时只能运行一个应用程序,1987年MultiFinder到来时它是合作式的。 橡皮筋拖动 窗口不会移动,直到你放手。一个1像素的XOR轮廓跟随指针,窗口在释放时会吸附到这个位置——因为在4.77MHz下,每次鼠标报告时重绘整个窗口根本不可能,正如1984年那样。 可加载软件 从第二个软盘加载程序。在磁盘窗口中双击一个文件,它会加载到独立的段并作为真实应用程序运行。扫雷游戏大小为1,510字节,包括其图标。多个包——或者同一个包的多个副本——可以同时驻留。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡