LXC(Linux Container)在嵌入式Linux设备上的使用

LXC简介

LXC即Linux Container,是利用Linux内核容器特性为用户提供空间接口的开源工具,用户可以通过其提供的API创建和管理系统或者应用程序容器。LXC利用内核支持的资源隔离以及控制机制,通过对容器的配置,使用一系列工具对容器进行控制,可以快速部署,具有较小的虚拟化开销的优点。
LXC功能的实现主要依赖Linux内核的命名空间(Namespace)资源隔离机制和控制群(Cgroup)资源控制机制。命名空间将LXC启动的进程隔离放入独立的Namespace,形成独立的一组进程视图。同时Cgroup机制负责不同系统的资源的配置,分配CPU节点和Memory节点,以及监控容器空间内系统的运行状况。这样在容器空间内的进程只能感受到当前容器的状况。Cgroup可以为不同用户层面的资源管理,提供一个统一化的接口。从单个进程的资源控制到操作系统层面,Cgroup主要提供三个主要功能。一是资源限制,对进程组使用的资源总额进行限制。二是优先级分配,通过分配CPU时间片数量及硬盘IO带宽大小,实际上就相当于控制进程的优先级。三是资源统计,可以统计系统的资源使用量,如CPU使用时长、内存使用量等。一般地,LXC机制的系统架构图大致如下。多套不同类型的OS可运行在同一套硬件上,除了宿主OS以外其它OS均运行在LXC虚拟出的容器空间。

在这里插入图片描述
车载系统往往存在多屏显示的需求,例如传统上车辆的中控屏显和仪表系统各自运行在独立的SOC硬件上,多套屏显就要对应多套硬件设备。随着汽车电子化的发展,车载传感器数量越来越多,汽车整体能耗和线路复杂性也随之增加,同时汽车行业的竞争越来越激烈,各车厂各车型越来越利薄,因此车企在智能驾驶舱的屏显方案中,降低硬件成本成为他们重点考虑的方面之一。例如信大捷安提出的智能座舱LXC容器化安全系统方案,就是一种“单硬件-多系统-多屏幕”的车载系统解决方案,同时满足仪表盘、IVI系统屏、副驾屏、HUD屏等的显示。

LXC源码编译

LXC项目的网站地址是https://linuxcontainers.org/,该站点给出了LXC项目的介绍、LXC工具的操作说明、相关API的使用方法、相关文章和论坛以及源码的下载方法等。源码在github上的地址是https://github.com/lxc/lxc,目前有9个稳定版本(stable-0.7.4 ~ stable-6.0)的源码可供使用,不同版本对Linux内核的要求以及编译方法略有不同,我们这里使用的是stable-1.0版本,它要求内核版本大于2.6.32,要求使用glibc或musl库,支持arm64架构,我们使用的开发板设备满足这些要求。源码stable-1.0的原始目录结构如下。其中src/lxc目录存放了LXC功能实现的核心代码,autogen.sh是编译的入口脚本。

在这里插入图片描述
利用开发板交叉工具编译链环境编译源码,首先执行“./autogen.sh”,这个脚本根据configure.ac文件的配置项生成了configure文件,这个文件包含几个主要的配置变量,变量“prefix”指将来生成的LXC编译产物存放路径,“host”指宿主系统所在硬件的架构,“target”指LXC运行的目标架构,通常和“host”一致,“build”指编译LXC的环境架构,我们是在U

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值