L4Re 小知识

简介: L4Re 小知识



开发环境: ubuntu 20.04

编译目标平台:x86

验证平台:qemu

入口点:l4re 目录

看重性能

贡献代码前,需要使用 benkmark 工具对代码性能进行测评。


代码需要打开 CONFIG_PERFORMANCE 宏


具有可伸缩

可以用作大型操作系统,也可以用作小型嵌入式系统


架构和平台支持

x86

32 / 64 位

多核支持

虚拟化支持 (AMD 的 SVM、英特尔的VT,并支持嵌套映射)

ARM:

32 / 64 位

架构:ARMv5, ARMv6, ARMv7, ARMv8

CPU: 920T, 926, PXA, 11x6, MPCore, Cortex-A

平台:

QEMU 虚拟平台

ARM Realview, ARM Integrator, ARM Versatile Express

TI OMAP3EVM, OMAP4, Beagleboard(-xM), Pandaboard, OMAP5

NVIDIA Tegra2 and Tegra3

NXP/Freescale i.MX21, i.MX35, i.MX51, i.MX53, i.MX6, i.MX6UL, i.MX6ULL, i.MX7, i.MX8, Layerscape LS1021A, LS1012A, LS1046

NXP S32G

Samsung S3C, OpenMoko, Exynos4, Exynos5, Odroid

Marvell Kirkwood, Pogoplug, Armada 38x

Raspberry Pi 1 to 4

Xilinx Zynq, Zedboard, Parallela, ZynqMP Ultrascale+

Allwinner sunxi, Cubieboard, Cubietruck

Renesas RCar3

还有更多平台支持正在开发中

多核支持

虚拟化支持 (HYP/EL2)

支持 Trustzone

MIPS:

MIPS32 和 MIPS64, r2 / r6

虚拟化支持(VZ)

平台:

Sead3

Malta

Baikal-T

Ci20

Boston

多核支持

Fiasco-UX:

运行在 x86 主机 Linux上

工具介绍

backtrace                 查看调用 trace 的工具 
checkinitcalls 
circular  
config-tags  
configstat  
gdb                       调试工具
gen_kconfig               kconfig 生成工具 
gendotdeps  
genoffset.py  
kconfig                     
kobjdeps  
move-if-change  
parsedeps  
preprocess  
showdeps  
split_config

如何配置

make menuconfig

在 build 目录下会生成一些配置文件

Kconfig 配置来源

Makefile 指向

globalconfig.* 生成的各种形式的配置

include

rustc 的配置

scripts 相关脚本(比如depfix)

根据 Makefile 来编译源码,全局配置会以 C 头文件形式(还有其他)融入到代码中


编译成果

附录

L4Re

L4Re(原名为L4Ka::Pistachio)是一款基于微内核设计的操作系统,旨在为嵌入式系统和虚拟化提供支持。它是L4微内核操作系统家族的一部分,基于L4微内核设计。


L4Re的设计具有模块化和可定制化的特点,允许开发人员为特定用例创建自定义配置。它提供一个最小的内核来管理硬件资源并提供基本的系统服务,而大部分操作系统功能都是在内核之上运行的用户级进程实现的。


L4Re经常用于嵌入式系统中,如工业自动化、汽车和航空航天应用程序,以及虚拟化环境中,如虚拟机监视器和容器系统。它在GNU通用公共许可证(GPL)版本2下提供。


L4Re & Fiasco

Fiasco是L4架构的微内核组件。它是一个小巧且模块化的内核,提供基本的硬件抽象和管理低级硬件资源,如内存、中断和I/O。Fiasco还提供了一个接口,让用户级组件可以与硬件和其他用户级组件进行通信。


另一方面,L4Re是一个用户级框架,提供了一组库、工具和应用程序,可以运行在Fiasco微内核之上。L4Re利用Fiasco提供的基本功能创建了一个完整的操作系统,具有模块化和可定制化的特性。


L4Re和Fiasco的关系可以比作房子和它的基础构架。Fiasco是构成操作系统基础的微内核,而L4Re则是在这个基础上建立的一个完整的用户级操作系统。L4Re依赖于Fiasco来提供底层的硬件管理和抽象层,同时还提供了一些高级的服务和库来方便应用程序的开发和运行。


总的来说,L4Re和Fiasco是L4微内核架构中不同层次的组件,它们紧密结合在一起构成了一个灵活、可定制和安全的操作系统架构。


seL4

L4Re是一个面向嵌入式系统和虚拟化的操作系统,它旨在提供一个模块化、可定制和高度灵活的用户级操作系统框架。它基于L4微内核和Fiasco微内核,提供了一组库、工具和应用程序来方便开发人员构建和部署各种嵌入式和虚拟化系统。


seL4是一个高度安全的操作系统,它旨在提供最高级别的保护和隔离。它采用了严格的形式化验证方法来证明其正确性和安全性,这使得它能够被广泛用于高度安全的领域,如国防、金融和关键基础设施。seL4的设计使得它能够提供严格的隔离和保护,从而防止恶意软件或攻击者对系统进行攻击或破坏。


尽管L4Re和seL4都是基于微内核的操作系统,但它们的设计和用例有所不同。L4Re旨在提供灵活和可定制的嵌入式和虚拟化系统,而seL4旨在提供高度安全的操作系统,可以用于安全性要求非常高的领域。


皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~

“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~


相关文章
|
9月前
|
安全 Ubuntu 测试技术
l4re Getting started
l4re Getting started
224 0
|
Rust 算法 网络安全
【密码学】一文读懂CMAC
介于上一篇文章比较水,然后这个和上一篇也比较相似,CMAC是为了解决DAA当中安全性不足的问题而出现的,这个算法一共有三个密钥,K, K1, K2, 其中K1和K2可以由K导出,接下来就来一起看一下CMAC的具体过程吧,这一篇文章其实也不长。
2891 0
【密码学】一文读懂CMAC
|
Unix Linux Shell
patch 命令用法详解(转)
patch,是打补丁的命令,有很多用法,见帮助#man patch patch -p0       (“p”指的是路径,后面的数字表示去掉路径的第几部分。"0",表示不去掉,为全路径) patch -p1       (“p”后面的数字"1",表示去掉前第一个路径) fetch http://people.
9468 0
|
9月前
SEL4 for aarch64 on qemu编译运行
SEL4 for aarch64 on qemu编译运行
181 0
|
6月前
|
存储 测试技术 Linux
深入了解KUnit:Linux内核新一代单元测试工具(下)
深入了解KUnit:Linux内核新一代单元测试工具
|
9月前
|
存储 消息中间件 缓存
深入理解Linux网络——内核是如何发送网络包的-1
一、相关实际问题 查看内核发送数据消耗的CPU时应该看sy还是si 在服务器上查看/proc/softirqs,为什么NET_RX要比NET_TX大得多
|
11月前
|
设计模式 缓存 Dubbo
一文读懂微内核架构
一文读懂微内核架构
279 0
|
消息中间件 存储 JSON
HarmonyOS系统中内核实现MQTT连接华为云的方法
大家好,今天主要和大家聊一聊,如何使用MQTT连接华为云平台的方法
401 0
HarmonyOS系统中内核实现MQTT连接华为云的方法
|
芯片 流计算 内存技术
【UCIe】初识 UCIe
【UCIe】初识 UCIe
1477 1
【UCIe】初识 UCIe
|
Linux 程序员 测试技术
Linux内核社区迁移到github?
github是目前最火的开源软件代码托管平台,那么Linux内核社区能否迁移到github上呢?Intel的Daniel Vetter写了一篇关于这个问题的博客,他给出的答案是NO。至于这个答案是否公允,就留给读者自己来判断了。
Linux内核社区迁移到github?