- 驱动代码
- Makefile
- 编译和加载驱动
- 编写应用程序测试驱动
落叶的一生,只为了归根么?
容器=cgroup(资源控制)+namespace(访问隔离)+rootfs(文件系统隔离)+容器引擎(生命周期控制)
pid = clone(fun, stack, flags, clone_arg);
(flags: CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWUSER | CLONE_NEWNET | CLONE_NEWPIC | CLONE_NEWUTS | ...)
当进程在执行用户自己的代码时,则称其处于用户运行态,即此时处理器在特权级最低的(3级)用户代码中运行。当一个进程执行系统调用而陷入内核态执行时,就称为进程处于内核态,此时处理器处于特权级较高的(0级)内核代码中执行。
当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。
1. 下载内核源码
https://mirrors.edge.kernel.org/pub/linux/kernel/
2. 安装内核编译所需的环境
sudo apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison -y
全虚拟化也称为硬件虚拟化,需要处理器、主板芯片、BIOS等的虚拟化支持,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,但是性能方面不如裸机。
Bridged(桥接模式)
将虚拟机的虚拟网络适配器(虚拟网卡)与主机的物理网络适配器(虚拟网卡)进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之,这就好像在局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。
桥接模式网络连接支持有线和无线主机网络适配器。如果想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。
特点:
Kernel2.6之后引入,由美国国家安全局开发,作为一个强制访问控制架构。
SELinux主要是红帽以及它的衍生发行版linux 的一个工具;Ubuntu/SUSE以及它的衍生发行版本使用的是AppArmor。但也可以在ubuntu上安装SELinux。
Linux上传统的访问控制标准是自主访问控制Discretionary Access Control(DAC)。在这种形式下,一个软件或守护进程以User ID(UID)或Set owner User ID(SUID)的身份运行,并且拥有该用户的目标(文件、套接字、以及其它进程)权限。这使得恶意代码很容易运行在特定权限之下,从而取得访问关键的子系统的权限。
另一方面,强制访问控制Mandatory Access Control(MAC)基于保密性和完整性强制信息的隔离以限制破坏。该限制单元独立于传统的Linux安全机制运作,并且没有超级用户的概念。