Skip to content

Releases: HeBitOS/HBOS

0.1 Beta4 release

Choose a tag to compare

@lpifx lpifx released this 09 Jul 04:11

HBOS v0.1 beta4

64-bit 高分辨率图形命令行操作系统。beta4 是自 beta3 以来最大的一次更新:全新图形桌面、真实的 C 编译器与动态链接、BusyBox 命令行工具集、网络协议栈打通,以及大量真机兼容性修复。

✨ 亮点

  • 全新图形桌面:窗口管理器(缩放/拖拽/吸附/最大化最小化动画)、Windows 11 风格居中任务栏、可搜索开始菜单、HarmonyOS Sans SC 抗锯齿字体、扁平矢量图标
  • 11 个内置桌面应用:文件管理器、任务管理器(新)、计算器(long long + 科学计数法)、代码工作台、控制台终端(真实 shell)、浏览器、记事本、时钟、贪吃蛇、设置、文件统计
  • TinyCC (TCC) C 编译器移植:系统内可直接编译运行 C 程序,支持 #include 头文件解析
  • 真实动态链接dlopen/dlsym/dlclose,支持运行时加载共享库
  • BusyBox 移植:16 个真实 coreutils 命令(ls cat cp mv rm mkdir touch which whoami wc head dirname basename true false echo pwd
  • 网络协议栈:DHCP/ARP/ICMP/DNS/TCP/HTTP,Intel E1000 网卡驱动,socket() 用户态 API
  • 真机兼容性:修复真实硬件上的显示卡顿、USB 鼠标识别失败、PS/2 鼠标初始化问题

图形桌面

  • 全新窗口管理器:任意方向拖拽缩放(带专属光标)、贴边吸附预览、最大化/最小化动画、窗口切换器(F6)
  • Windows 11 风格居中任务栏:日历弹窗、亮度滑杆、"是否显示秒数"开关
  • 开始菜单重做:居中弹出、图标网格、支持拼音/英文关键词搜索过滤,键入即可启动应用
  • F1 一键呼出开始菜单(原来只能鼠标点击任务栏图标)——纯键盘即可到达任意应用
  • HarmonyOS Sans SC 抗锯齿比例字体,F2/F3 运行时切换字号;代码编辑器与终端使用等宽点阵字体保证对齐
  • 扁平矢量图标图集(文件管理器、磁盘、计算器、贪吃蛇、浏览器等均有专属图标)
  • PS/2 鼠标从"卡顿加速曲线"改为线性 1:1 映射,真机与虚拟机手感一致;修复 IRQ12/IRQ2 级联未解除屏蔽导致真实鼠标失灵的问题
  • 新增应用:
    • 任务管理器:查看运行中任务的 PID/名称/状态/父 PID,可结束任务,显示物理内存占用条
    • 计算器:数据类型升级为 long long(原为 int,溢出上限约 21 亿),溢出后自动切换科学计数法显示(D.DDDDDDDDe+NN),历史记录同步支持
    • 文件管理器:显示区域跟随窗口缩放/最大化动态放大,不再被裁死在固定像素高度
    • 设置、时钟、控制台终端(跑真实 shell)
  • 修复一批窗口/绘制越界问题:任务管理器与计算器内容曾画出窗口边界,文件管理器列表框固定高度导致最后几行叠在状态栏上

应用生态

  • TinyCC (TCC) 编译器移植:tcc file.c -o out 系统内原生编译运行,修复了 #include 头文件解析、-shared 动态库输出等问题
  • 动态链接:新增 dlopen/dlsym/dlclose 系统调用,接入内核 ELF 加载器,支持运行时加载 .so 共享库并调用其中符号
  • .hax 应用格式:自动发现 ./app 下的用户程序,提供 SDK(hax.h),TUI/GUI 双模式支持
  • BusyBox / coreutils 移植(16 个):ls-l/-a/-R/-dcat cp mv rm mkdir touch which whoami wc head dirname basename true false echo pwd,均为独立 .hax 程序,与 shell 内置命令共存
  • make ask 新增交互式应用选择:可逐个选择是否将 app/ 下的用户程序打进 ISO

网络

  • Intel E1000 网卡驱动完整实现(MMIO、收发环、中断轮询)
  • 协议栈:DHCP 自动配置、ARP、ICMP ping、DNS 解析、TCP(单连接)、HTTP GET(wget
  • 用户态 socket()/connect()/send()/recv() API,经真实互联网连接测试可用
  • 修复 send() 系统调用返回值错误(原样返回内部状态码而非发送字节数,导致所有用户程序都误以为"发送了 0 字节")
  • 无 DNS 服务器时自动回退到 8.8.8.8

底层修复

  • 任务切换时正确保存/恢复 FPU/XMM 寄存器状态(此前浮点/SSE 状态在任务间会互相污染)
  • 修复 HBOS_SYS_GETDENTS 系统调用返回整个文件系统而非当前打开目录的严重 bug
  • 修复用户态 struct stat 与内核 struct stat 内存布局不一致(nlink_t 宽度不匹配),导致跨越户态边界的 stat()/fstat() 返回垃圾大小/时间戳
  • 修复 printf("%d"/"%u"/"%x") 在 TCC 编译的程序中截断负数/大数的问题(可变参数按错误宽度读取,-7 曾被打印成 4294967289
  • 真机图形卡顿修复:显存映射从写回(write-back)改为写合并(write-combining),解决真实硬件上画面每 5~6 秒才刷新一次的问题
  • USB HID 鼠标识别修复:兼容未声明 boot-protocol 的真实鼠标(此前仅 QEMU 模拟鼠标能被识别)
  • 用户态 hax 应用输入回显修复:此前运行 hax 应用时键盘输入不会显示在屏幕上

已知限制

  • RTL8139、VirtIO-net 网卡驱动已检测但未实现,仅 Intel E1000 路径完整可用
  • TCP 协议栈单一时刻仅正确追踪一个连接的收发序列号,尚非真正的并发多路复用
  • dlopen 加载的共享库暂不能回调宿主程序自身定义的符号(TCC 默认不生成完整符号表,强制生成会触发另一个未解决的函数指针崩溃问题,已在代码中详细记录)

升级方式:直接使用新构建的 build/hbos-bios.iso / build/hbos-uefi.iso,或 make release 生成 VMware/VirtualBox 镜像。无持久化用户数据需要迁移(ramfs 为主,HBFS 磁盘数据不受影响)。

0.1-beta3-pre3

Choose a tag to compare

@lpifx lpifx released this 21 Jun 03:56
v0.1-beta3-pre3

Release version 0.1 beta3-pre3

0.1 Beta 2

Choose a tag to compare

@lpifx lpifx released this 30 May 08:41

第一周进展

HBOS 0.1 beta2 是面向开发者的阶段版本,

重点完善 BIOS/UEFI 双 ISO 构建、UEFI 虚拟机启动、POSIX/ramfs 文件工作流、HBFS 磁盘路径、Shell 文件命令、用户应用入口和 ACPI 关机支持。

该版本适合内核、文件系统、Shell、系统调用和用户程序方向的成员继续开发测试。

大家周末快乐

配置需求:bios请下载hbos-bios.iso ; uefi请下载hbos-uefi.iso

0.1 Beta 1

Choose a tag to compare

@lpifx lpifx released this 23 May 02:58

HBOS beta

这是 HBOS 的 beta 预发布版本,主要集中在中文显示、图形终端、Shell 命令模块化、键盘输入增强和初步多任务框架上。本版本已构建并生成 ISO 镜像:build/hbos.iso

主要更新

中文/CJK 显示支持

  • 支持构建时从 TTF 字体生成 HZK16 点阵字库。
  • 内核可直接输出 UTF-8 中文/CJK 字符。
  • 应用程序可通过控制台输出接口显示中文内容。
  • 增加 CJK 标点和全角字符支持。

图形终端改进

  • 基于 framebuffer 图形终端输出。
  • 保留 VGA 文本模式回退路径。
  • 修复中文字符定位、背景遮挡、标点显示等问题。
  • 补齐图形 API,包括 console_set_title()fb_fill_rect()

Shell 与命令系统

  • 基础命令已拆分到 src/tools/ 目录。
  • 命令模块分类为 help、system、debug、history。
  • 支持 history、clearhistory、search 等历史命令。
  • 支持交互式 help 模式。

键盘输入增强

  • 支持方向键、Home、End、PgUp、PgDn。
  • 支持小键盘输入。
  • 增加 NumLock 状态切换和键盘 LED 更新。
  • NumLock 开启时小键盘输出数字,关闭时小键盘作为导航键使用。
  • 修复删除字符时显示不同步的问题。

终端上下文浏览

  • 支持 PgUp/PgDn 浏览终端历史上下文。
  • 增加简单行级 scrollback 缓冲区。

初步多任务框架

  • 加入协作式任务调度框架。
  • 支持任务创建、主动让出、任务退出。
  • 加入 x86_64 汇编上下文切换实现。

构建与工程整理

  • 更新 README,记录 bata 版本能力。
  • 内核启动横幅与 version 命令显示更新为 beta1。
  • 完成一次全量代码审核并修复多个确定性问题。
  • 已通过构建验证。

下载

请下载本 Release 附件中的 ISO 镜像:hbos.iso

运行方式

可使用 QEMU 启动 ISO 镜像:

qemu-system-x86_64 -cdrom hbos.iso -m 512M -boot d -serial stdio -vga std -monitor none

或在源码目录中使用 Makefile 提供的运行目标。

已知状态

  • 文件系统仍处于框架阶段。
  • ATA、PCI、完整内存管理和系统调用仍待继续开发。
  • 当前多任务为协作式框架,尚不是完整抢占式调度。

0.1 alpha fix 3

Choose a tag to compare

@lpifx lpifx released this 16 May 01:41

增加UEFI支持(可能无法生效

0.1 alpha fix2

Choose a tag to compare

@lpifx lpifx released this 03 May 13:36

实现vmware、virtualbox等常用虚拟机的支持
help指令交互式(仿python)

v0.1 alpha fix1

v0.1 alpha fix1 Pre-release
Pre-release

Choose a tag to compare

@lpifx lpifx released this 03 May 04:27

v0.1 alpha fix1
增加1个命令 & 输出字符功能升级 & 命令记忆功能(MAX=64)

v0.1 alpha

v0.1 alpha Pre-release
Pre-release

Choose a tag to compare

@lpifx lpifx released this 03 May 02:51

v0.1 alpha

Note: This beta version may contain many bugs; we recommend using virtualization software such as QEMU or VMware.
This version includes only a subset of commands (see README.md for details).

注意:此测试版可能会有许多的bug,建议使用QEMU、VMware等虚拟机软件
此版本只加入了部分命令(详情请看README.md)