础光 Linux 是面向汽车的实时操作系统,在原生 Linux 内核基础上,确保系统可靠的前提下,从中断线程化、调度策略、进程切换等方面进行了优化,构建了专注于仪表/娱乐/自动驾驶场景的安全、可靠、强实时的基础操作系统。
推荐个人电脑的系统为 Ubuntu 18.04 LTS 及以上版本。
sudo apt install git bc bison flex libssl-dev make
sudo apt install gcc-aarch64-linux-gnu
# 下载
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
# 输出信息中,确认 Target: aarch64-linux-gnu,即认为编译环境配置完成
aarch64-linux-gnu-gcc -v
系统支持在以下平台运行:
以下将以虚拟环境 QEMU 和树莓派 4B 作为示例介绍编译运行过程。
sudo apt install qemu-system-aarch64
git clone https://gitee.com/kernelsoft/photon-linux.git
# 在 photon-linux 源码根目录中执行如下命令完成编译的配置(只需执行一次)
cd photon-linux
./quick-start.sh devel
# 执行如下命令编译内核
./quick-start.sh image
# 通过如下链接下载预制的版本并重命名为 rootfs.img,保存到 build 目录
mkdir build && cd build
wget https://www.kernelsoft.com/api/media?path=static/files/rootfs.img -O rootfs.img
编译完成,可以通过 QEMU 运行 Photon Linux
./quick-start.sh run
在编译环境中进行以下操作制作启动盘:
# 从 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
# 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
参数,以显示内核打印信息。在编译环境中进行以下操作:
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卡,并手动挂载sd卡的2个分区
make modules_install INSTALL_MOD_PATH=SD卡第二分区/
cp arch/arm64/boot/Image SD卡第一分区/kernel8.img
将SD卡插入树莓派,在树莓派上启动运行 Photon Linux:
# 验证内核安装成功,检查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 |
接下来,我们会在以下方面持续投入:
如果您对内核有一定了解,希望通过提交代码进行社区贡献:
如果您在汽车、机器人等实时系统环境有使用经验,或者您对操作系统感兴趣,也欢迎参与我们的文档建设,成为内容贡献者。参与方式与上述流程相似,请选择 docs 仓库。
当然,您有任何对系统的建议、特性需求,都可以通过提交 Issue 与项目组沟通。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. Open source ecosystem
2. Collaboration, People, Software
3. Evaluation model