开放代码社区 › 础光 Linux 实时操作系统

础光 Linux 实时操作系统

基础设施与运维C

础光 Linux 是面向汽车场景的实时操作系统,基于原生 Linux 内核,从中断线程化、调度策略、进程切换等方面优化,兼顾可靠性与强实时性。适用于仪表、车载娱乐、自动驾驶等场景,支持 QEMU 虚拟环境与树莓派 4B 等硬件平台,并提供编译运行与实时性测试说明。

AI/机器学习Web后端前端工具部署/运维
作者:用户6868语言:C更新:2026-10-27
仓库地址
https://gitee.com/kernelsoft/photon-linux.git

前往原仓库

README

### 项目介绍

础光 Linux 是面向汽车的实时操作系统,在原生 Linux 内核基础上,确保系统可靠的前提下,从中断线程化、调度策略、进程切换等方面进行了优化,构建了专注于仪表/娱乐/自动驾驶场景的安全、可靠、强实时的基础操作系统。

### 编译环境准备

 推荐个人电脑的系统为 Ubuntu 18.04 LTS 及以上版本。

#### 安装基础依赖软件

```shell
sudo apt install git bc bison flex libssl-dev make
```

#### 安装交叉编译器

- 方式一:通过包管理器

```shell
  sudo apt install gcc-aarch64-linux-gnu
```

- 方式二:手动安装

```shell
  # 下载
  wget https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
  # 解压
  tar xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
  # 当前用户的 .barhrc文件中添加如下行, 注意将路径替换为当前系统的值
  export PATH=~/bin/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/:$PATH
```

- 验证安装

```shell
  # 输出信息中,确认 Target: aarch64-linux-gnu,即认为编译环境配置完成
  aarch64-linux-gnu-gcc -v
```

### 运行环境

系统支持在以下平台运行:

- 虚拟环境:QEMU
- 硬件环境:树莓派 4B 及其它通用平台

以下将以虚拟环境 QEMU 和树莓派 4B 作为示例介绍编译运行过程。



### 编译与运行

#### 在 QEMU 平台上运行

##### 1. 安装 QEMU

```shell
sudo apt install qemu-system-aarch64
```

##### 2. 下载源码

```shell
git clone https://gitee.com/kernelsoft/photon-linux.git
```

##### 3. 编译
```shell
# 在 photon-linux 源码根目录中执行如下命令完成编译的配置(只需执行一次)
cd photon-linux
./quick-start.sh devel
# 执行如下命令编译内核
./quick-start.sh image
```

##### 4. 准备 rootfs.img

```shell
# 通过如下链接下载预制的版本并重命名为 rootfs.img,保存到 build 目录
mkdir build && cd build
wget https://www.kernelsoft.com/api/media?path=static/files/rootfs.img -O rootfs.img
```

##### 5. 运行系统

编译完成,可以通过 QEMU 运行 Photon Linux
```shell
 ./quick-start.sh run
```


#### 在树莓派 4B 上运行

##### 1. 制作 Rsapberry Pi 启动盘

  在编译环境中进行以下操作制作启动盘:

- 准备镜像
  ```shell
  # 从 Raspberry 官网(https://www.raspberrypi.com/software/operating-systems/)下载 Raspberry Pi 最新镜像
  wget https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip
  ```
- 烧录镜像到SD卡中
  ```shell
  # 1 准备一个空白SD卡并插入到电脑
  # 2 下载镜像烧录工具 Raspberry Pi Imager并安装,以 Ubuntu 系统为例
  wget https://downloads.raspberrypi.org/imager/imager_latest_amd64.deb
  dpkg -ivh imager_latest_amd64.deb
  # 3 启动图形化烧录工具,选择镜像文件以及SD卡即可进行烧录
  ```
- 修改默认配置:
  - 编辑`SD卡第一分区/config.txt` 配置文件,追加下面两项配置以显示串口的打印输出: `uart_2ndstage=1` `enable_uart=1`
  - 编辑`SD卡第一分区/cmdline.txt`,去掉 `quiet` 参数,以显示内核打印信息。
  - 验证启动盘烧录成功: 将SD卡启动盘插到树莓派4B上,查看是否可正常启动。<br>
    本例中系统账户沿用树莓派的默认账户。
    - 登录账号:pi
    - 登录密码:raspberry

##### 2. 交叉编译并替换原生 Linux 内核

  在编译环境中进行以下操作:

- 交叉编译 Photon Linux 内核
   ```shell
  cd photon-linux
  make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- pi4b_defconfig
  make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules -j4
  ```
- 替换SD卡启动盘上原生 Linux 内核镜像和模块
  ```shell
  # 插入SD卡,并手动挂载sd卡的2个分区
  make modules_install INSTALL_MOD_PATH=SD卡第二分区/
  cp arch/arm64/boot/Image SD卡第一分区/kernel8.img
  ```

##### 3. 运行系统

  将SD卡插入树莓派,在树莓派上启动运行 Photon Linux:

  ```shell
  # 验证内核安装成功,检查uname命令的输出是否为 Chushi 内核信息:
  pi@raspberrypi:~$ uname -r
  5.10.147-22.08.chushi.aarch64-rt74
  ```

### 性能测试

开发者可将对比样本与 Photon Linux 进行实时性的对比,我们通过调度延迟测试工具 Cyclictest 对不同优化措施的 Linux 系统进行了对比,得出如下实验结果:

**中断/调度延迟优化对比结果**

|             优化措施             | **标准内核5.10** | **Photon Linux** |
| :------------------------------: | :--------------: | :----------------: |
| **不加实时补丁,只打开抢占** |      59 ms       |        4 ms        |
|         **加入实时补丁**         |      1.7 ms      |       1.5 ms       |
|        **实时性增强优化**        |      200 us      |       100 us       |

### 项目规划
接下来,我们会在以下方面持续投入:
- 在更多的场景进行验证和测试
- 联合业界厂商提供基于 Photon Linux 的 BSP
- 针对汽车、机器人等领域的嵌入式操作系统进行的特定功能、性能增强
- 持续优化

### 成为社区贡献者

如果您对内核有一定了解,希望通过提交代码进行社区贡献:

- Fork 项目至你的 Gitee 账户
- Git Clone 到本地仓库
- checkout 到 bugfix 分支
- 在本地仓库中编写代码并测试
- Push 已经 commit 的代码至远程仓库
- 创建一个新的 PR
- 我们会审核您的 PR,从代码是否存在 bug 或者是创新点,请注意查收站内信息,如果您的代码被接受,欢迎您加入代码贡献者部队,我们会在开发者社区联系您,对您的贡献进行激励

如果您在汽车、机器人等实时系统环境有使用经验,或者您对操作系统感兴趣,也欢迎参与我们的文档建设,成为内容贡献者。参与方式与上述流程相似,请选择 docs 仓库。

当然,您有任何对系统的建议、特性需求,都可以通过提交 [Issue](https://gitee.com/kernelsoft/photon-linux/issues) 与项目组沟通。