QSOE 0.1 版本发布:统一双内核系统,开启 RISC - V 操作系统新征程!

QSOE 系统资讯

QSOE 是一款受 QNX 启发的操作系统,具备可选择的内核。2026 年 6 月,QSOE 0.1 版本已发布,这是统一双内核系统的首个公开版本。

QSOE 变体情况

QSOE 有两种变体,它们共享一个用户空间和一个构建系统。QSOE/N 运行在专门为该项目从头编写的微内核 Skimmer(设计支持 SMP)上;QSOE/L 则以 seL4 作为内核。编译后,这两种变体都会提供可直接在如 U - Boot 加载器中使用的内核和 initrd 文件。两种变体的用户空间完全相同;每个内核特有的部分只有任务管理器 `taskman` 和 C 库 `libc.so` ,C 库在源代码层面约 85% 是共享的,仅在与内核交互的薄层有所不同。该设计遵循 QNX Neutrino 的传统:小内核,其余功能都在用户空间;采用同步消息传递 IPC;服务使用资源管理器模型。QSOE 目标是在 SiFive HiFive Unmatched (`FU740`) 上运行 64 位 RISC - V (`RV64`, `Sv39`) ,日常开发使用 QEMU。目前,两种 QSOE 变体都能在真实硬件上启动。该系统根据 Apache - 2.0 许可证发布。

QSOE 下载方式

QSOE 可以从源代码构建,也可以安装预构建的二进制文件。每个版本的现成镜像都发布在指定处(当前版本:0.1)。文件如下:

  • [`skimmer.bin`]:Skimmer 微内核,即 QSOE/N 变体的内核。这是一个原始二进制镜像,由引导加载器(或 QEMU)与下面的用户空间包一起加载。
  • [`modpkg.cpio`]:模块包,即共享的 QSOE 用户空间(任务管理器、`init`、C 库、shell、驱动程序和实用工具),以 CPIO 存档形式存在。QSOE/N 将其作为 initrd 与 `skimmer.bin` 一起启动。
  • [`qsoe - l - qemu.elf`]:QSOE/L 变体(基于 seL4 内核),是适用于 QEMU `virt` 机器的单个自包含 ELF 文件。它将 elfloader、seL4 内核、任务管理器和用户空间捆绑在一起,启动时无需其他文件。
  • [`qsoe - l - sifive.elf`]:同样的 QSOE/L 镜像,为 SiFive HiFive Unmatched (FU740) 开发板构建。
  • [`mrbml - riscv64.efi`]:mr - bml,QSOE 自己的引导加载器(适用于 RISC - V 的 EFI 应用程序)。它可以加载任何一种变体,并在真实硬件上驱动引导菜单。
  • [`nvme.img.gz`]:一个可直接运行的自引导 QEMU 磁盘镜像(GPT)。其 EFI 分区包含 `mr - bml`,磁盘根目录包含两个内核,因此 QEMU 可直接进入 mr - bml 菜单,无需 `- kernel` 参数。这是查看 QSOE 运行的最快方式。
  • [`virtio.img.gz`]:仅在 QEMU 下运行 QSOE/L 时使用的配套根磁盘(原生 seL4 早于 QEMU 的 NVMe 所需的中断控制器,因此它从 virtio 磁盘挂载根目录)。QSOE/N 或真实硬件不需要此文件。

简而言之,要在 QEMU 中运行,下载 `nvme.img.gz`(如果需要 QSOE/L,还需下载 `virtio.img.gz`),并参考在 QEMU 下运行部分。要安装到真实硬件上,需要 `mrbml - riscv64.efi` 加上内核 —— QSOE/N 使用 `skimmer.bin` + `modpkg.cpio`,QSOE/L 使用 `qsoe - l - *.elf` 镜像之一 —— 并参考安装部分。

在 QEMU 下运行 QSOE

这是查看 QSOE 运行的最快方式,无需硬件,也无需处理 `- kernel` 参数。下载的 `nvme.img` 是一个自引导 UEFI 磁盘:QEMU 的固件从该磁盘运行 `mr - bml`,mr - bml 的菜单可直接从磁盘启动任意一种变体。

所需条件
  • `qemu - system - riscv64`:QSOE/N 需要版本 11.0.1 或更高(其 NVMe 需要 AIA 中断控制器)。
  • edk2 RISC - V UEFI 固件:在 Debian/Ubuntu 系统上,可通过 `qemu - efi - riscv64` 包获取。
  • 来自 [os] 仓库的启动器 `[run - nvme.sh]`:它会为每种变体配置合适的 QEMU 机器、固件和磁盘,无需手动操作。
运行步骤
# 解压镜像(如果需要 QSOE/L,添加 virtio.img.gz)gunzip nvme.img.gz virtio.img.gz# 将启动器指向镜像,并从菜单中选择一个变体NVME_IMG=./nvme.img VIRTIO_IMG=./virtio.img ./run - nvme.sh

可以传递 `n` 或 `l` 跳过菜单(`./run - nvme.sh n`)。脚本会自动选择匹配的 QEMU 机器 —— QSOE/N 使用带有 NVMe 根目录的 AIA 机器,QSOE/L 使用带有 virtio 根磁盘的 PLIC 机器。mr - bml 菜单和系统控制台都会显示在终端上,选择一个变体后,系统会启动到 `login:` 提示符。使用用户名 `root` 和密码 `QSOE` 登录。

QSOE 安装方法

适用于真实硬件和真实磁盘。QSOE 0.1 可在 SiFive HiFive Unmatched (FU740) 上启动,未来目标是 SpaceMiT K3。此安装过程假设开发板已运行 Linux,需要将文件放置在现有的 EFI 和引导分区上,因此需要熟悉开发板的固件。引导模型很简单:mr - bml 位于 EFI 系统分区;它从 ext2/3/4 分区读取菜单和内核;所选变体随后从 fs - qrv 分区挂载自己的根目录。

安装步骤
  1. 将 `mrbml - riscv64.efi` 复制到 ESP 中,命名为 `EFI/BOOT/BOOTRISCV64.EFI`(UEFI 可移动媒体路径),或者使用 `efibootmgr` 将其注册为引导条目。
  2. 在引导/根文件系统上创建 `/boot/qsoe/` 目录,并将内核复制到该目录:QSOE/N 使用 `skimmer.bin` + `modpkg.cpio`,QSOE/L 使用 `qsoe - l - sifive.elf`。
  3. 创建 `/boot/mr - bml/mr - bml.cfg` 文件,每种变体对应一个条目,例如:
# /boot/mr - bml/mr - bml.cfg  — 根据磁盘调整 mainfs= 分区menuentry 'QSOE/N (Skimmer)' {    kernel /boot/qsoe/skimmer.bin mainfs=/dev/nvme0n1p8    modpkg /boot/qsoe/modpkg.cpio}menuentry 'QSOE/L (seL4)' {    kernel /boot/qsoe/qsoe - l - sifive.elf mainfs=/dev/nvme0n1p8}

`mainfs=` 指定了包含 QSOE 根文件系统(fs - qrv)的分区,需将其设置为开发板上分配给 QSOE 的分区。在真实硬件上,没有 QEMU virtio 分区的区别,两种变体都直接驱动 NVMe 磁盘。

从源代码构建 QSOE

QSOE 使用 `riscv64 - linux - gnu -` 交叉工具链(rv64gc)和标准 `make` 进行构建,QEMU 可用于测试。主仓库负责协调构建过程,并拉取与发布标签匹配的组件仓库。

git clone https://gitlab.com/qsoe/oscd osmake prepare   # 获取此标签对应的组件(详见 component.list)make           # 构建两种变体:先 QSOE/N,再 QSOE/Lmake dist      # 可选:生成 QEMU 磁盘镜像(nvme.img.gz, virtio.img.gz)

QSOE/L 在 `make prepare` 过程中还会浅克隆 seL4 内核。构建过程会生成下载列表中的所有文件。整个项目遵循 Apache - 2.0 许可证,源代码位于指定处。

QSOE 文档情况

QSOE 手册以 PDF 格式与版本一同发布:

  • [`Design.pdf`]:架构文档,介绍双内核模型、任务管理器、IPC 和资源管理器设计。
  • [`UserGuide.pdf`]:用户指南,涵盖安装、shell、基本命令、文本编辑器和实用工具。
  • [`ProgrammingBook.pdf`]:编程手册,包括资源服务器框架章节。
  • [`AppPortingGuide.pdf`]:应用移植指南,介绍如何将 Unix(和 QNX)软件移植到 QSOE,包括 `fork()`、`brk()`、`select()` 等的处理。

QSOE 路线图规划

人们常说 Linux 内核没有路线图,但 QSOE 有。从当前的 0.1 版本到统一的 1.0 版本,规划了十个版本。这是一个工作计划,而非承诺,随着工作推进,里程碑可能会调整。

  • `0.1`:首次公开版本。双内核基础,共享用户空间,`/usr` 目录下为只读 `fs - qrv`,支持交互式 getty + 登录,源代码开放。(当前版本)
  • `0.2`:在 GK208(“Kepler”)上实现文本模式控制台,可在设备上显示,便于在硬件上查看实时音频工作,而不仅通过串口查看。
  • `0.3`:首个可写文件系统:qrvfs 支持文件创建/删除、`O_CREAT`/`O_TRUNC`、`realpath` 和符号链接解析。
  • `0.4`:经典的双面板文件管理器:QSOE 的旗舰应用,全面测试可写文件系统和用户空间。
  • `0.5`:首个 `deva - hdmi` 音频设备,为硬实时路径奠定优先级/中断/调度基础。
  • `0.6`:全面的一致性套件和音频实时包(在 N 核系统上支持最多 N 个硬实时任务)。
  • `0.7`:临近时确定具体内容。
  • `0.8`:第二个硬件目标(SpaceMiT K3,RVA23 类)和 AIA 中断架构(IMSIC/APLIC),使 MSI/MSI - X 在各开发板上统一工作。
  • `0.9`:推动 QNX - libc 兼容性:重新编译并运行一组 QNX 源代码实用工具,填补剩余的 libc 差距。
  • `1.0`:首个稳定版本:API 与 QNX 6.x 相当,旨在移植 QNX 用户空间软件(`fork` → `posix_spawn`)。

其他相关项目

早期及相关工作:

  • [GateMate PC]:基于 Cologne Chip GateMate FPGA 构建的个人计算机。
  • [GateMate System/359]:受 IBM S/360 启发的 FPGA 计算系统实现,具备 I/O 通道和强大的宏汇编器。
  • [QRV]:QNX 到 RISC - V 的移植(历史项目),为 QSOE/N 提供了硬件启动经验。

QSOE 服务内容

提供底层和系统软件的咨询与开发服务:

  • 基于微内核的操作系统
  • 系统库和底层运行时
  • 实时应用的虚拟化
  • RISC - V 系统启动
  • FPGA 的 AI 辅助开发

服务范围从专注的启动工作到长期的架构设计和实现。欢迎联系讨论具体需求。

关于 QSOE 系统

QSOE 系统是 Yuri Zaporozhets 的独立项目。Yuri Zaporozhets 是一位拥有 25 年以上底层软件开发经验的系统软件开发者,曾参与内核、操作系统、运行时以及相关硬件启动工作。

联系 QSOE

电子邮件是联系的最佳方式。

邮箱地址及其他相关平台信息可获取。

QSOE 系统未来会如何发展,能否顺利达成路线图中的目标呢?

内容概要:本文是一份锂电池基础知识的学习课件,系统介绍了锂电池的种类、方形电池的结构与制造工艺流程,以及出货不良的常见类型与分析。文章首先按形状和材料体系对方形、圆柱、软包等锂电池进行分类,并重点对比了钴酸锂、锰酸锂、三元材料和磷酸铁锂在电压、能量密度、循环寿命、成本和安全性等方面的差异。随后详细阐述了方形电池的内部结构,包括正负极柱、盖板组件、防爆阀、极组和隔膜等关键部件的功能与设计原理。在工艺部分,全面讲解了从匀浆、涂布、辊压、模切到装配、焊接、注液、化成等全流程的关键步骤、技术参数与质量控制要点,尤其对叠片与卷绕工艺进行了深入对比。最后,针对生产中常见的出货不良问题,如厚度、电压、容量、外观等方面异常,进行了归因分析与改进方向说明。; 适合人群:从事锂电池研发、生产、品质管理等相关工作的技术人员,以及对电池制造工艺感兴趣的工程类学生或初学者。; 使用场景及目标:①用于锂电池生产工艺培训与知识普及;②作为现场工艺优化与不良问题分析的参考依据;③帮助理解电池结构设计与性能之间的关系,提升工艺控制能力。; 阅读建议:建议结合实际生产流程图与设备操作规范对照学习,重点关注各工艺环节的技术参数设定与失效模式,便于在实际工作中快速定位和解决质量问题。
下载代码方式:https://pan.quark.cn/s/5bafd19a7805 创维E900 4K智能机顶盒是一款专门为高清电视节目设计的设备,其特点是配置过程迅速便捷,非常适合那些喜欢自行安装软件以及具备较强实践操作能力的用户群体。在开始配置之前,用户必须确认所有硬件设备均已正确连接,这包括使用HDMI或MiniCVBS线缆将机顶盒与电视机相连接,同时核实电视信号源已设定无误,此外还需连接电源适配器,并确保网线已正确接入机顶盒与光猫或家庭网络设备,且网络状态良好。尤其需要注意,采用有线网络连接通常比无线连接方式更为稳定,能够有效避免因网络波动或卡顿所引发的异常情况,进而保障机顶盒的正常运行。配置向导包含若干步骤,首要环节是平台的选择。在机顶盒启动后,于视频播放结束界面进入“平台选择”功能,用户需依据自身所在地域挑选适当的平台,例如华为平台或中兴平台等。完成平台选定后,接下来的步骤是设定IPTV业务的用户名和密码,这是接入IPTV服务的必要前提。随后是接入方式的选择环节,用户应依据实际的网络环境决定采用有线还是无线接入。鉴于有线网络通常更为可靠,因此推荐采用有线接入方式。在网络配置环节,智能机顶盒通过DHCP协议与家庭网关建立连接。配置流程结束后,用户将进入launcher桌面,该界面是机顶盒的主要用户交互界面,负责展示各类应用及服务。若在初次配置完成后进入launcher桌面时遭遇加载时间过长或因网络连接问题无法显示桌面的情况,用户应当检查网络配置是否准确,并核实机顶盒已成功接入互联网。在整个配置过程中,用户或许会碰到各类错误提示信息,如IPTV业务账号或密码设置错误、网络未成功连接、接入平台未能实现以及特定的错误编号等。这些错误提示通常意味着需要重...
代码下载链接: https://pan.quark.cn/s/129d2f33dfde 《小米平板5 Pro 5G版基带QCN文件解析》 小米平板5 Pro 5G版是一款配备了前沿5G通信技术的智能设备,其内部的基带芯片是构建高速无线网络连接的核心构成部分。基带,英文全称为Baseband,是手机或平板电脑中的核心单元,承担着处理无线通信所有基础信号处理任务的责任,包括数据的解码与编码,使其能够顺利在移动网络中传输。在本讨论中,我们将详尽研究“小米平板5 Pro 5G版【代码ENUMA】完整设备备份基带qcn”这一核心知识点。 基带QCN文件是专属于小米平板5 Pro 5G版的一种固件文件,其中存储了设备的无线通信参数及配置详情。QCN全称为Qualcomm Communication Network,是由高通公司(Qualcomm)为其基带芯片定制的一种文件格式,用于储存网络设置和密钥数据。该QCN文件是设备在制造时预置的,一般与设备的IMEI(国际移动设备识别码)相联结,旨在保证设备在网络中的独特性和安全性。 在所述内容中提及的“完整设备备份的基带qcn”,指的是从状态良好的小米平板5 Pro 5G版设备上提取并保存下来的基带文件。备份基带QCN文件的主要意图是为了在设备遭遇故障,例如系统崩溃、升级失误或基带损坏等情况时,能够迅速恢复至正常运作的状态。此外,备份的基带QCN文件同样适用于固件刷爱好者,使其在安装的固件或定制ROM时维持网络功能的完整性。 然而,需要留意的是,“推荐修改原始串码在使用”的提示显示,如果打算使用这个备份的基带QCN文件,可能需要将文件内的IMEI信息调整为与目标设备相吻合的IMEI。这是由于IMEI作为设备的身份象征,每个设备...
内容概要:本文聚焦于“模拟风电不确定性——拉丁超立方抽样生成及缩减场景研究”,系统阐述了如何采用拉丁超立方抽样(LHS)方法生成风电出力的不确定性初始场景集,并结合场景缩减技术(如聚类算法与权重调整)有效降低场景数量,从而在保证代表性的前提下显著减少后续优化计算负担。研究提供了完整的Matlab代码实现,涵盖了概率分布建模、LHS抽样、场景聚类(如k-means)、距离计算与场景权重重置等关键环节,旨在为处理风电等可再生能源强随机性与波动性问题提供可靠的技术路径,广泛适用于微电网优化调度、电力系统可靠性评估、风险分析及鲁棒优化等研究领域。; 适合人群:具备电力系统分析、随机优化或能源系统建模背景,熟悉Matlab编程语言,正在从事能源并网、不确定性建模、场景生成与削减、随机规划等相关课题的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握拉丁超立方抽样相较于传统蒙特卡洛方法在抽样效率与空间填充性上的优势;② 学习并实现从原始不确定性数据到精简场景集的完整流程,提升随机优化模型的求解效率与实用性;③ 将该方法应用于含高比例风电的电力系统调度、储能配置、风险评估及综合能源系统优化等需精确刻画不确定性的科研与工程项目中。; 阅读建议:建议读者结合提供的Matlab代码进行逐行调试与变量监控,深入理解抽样与聚类算法的核心逻辑与参数设置,同时推荐查阅文中提及的YALMIP等优化工具包文档以增强建模能力,应按照“理论理解→代码复现→案例验证→拓展应用”的顺序系统学习,避免因概念跳跃导致理解障碍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值