1、iptables
是一个用于配置Linux内核防火墙规则的工具。四表五链:在iptables中,有四个表(tables)和五个链(chains),用于管理不同类型的数据包过滤规则。如下:
表(Tables):Filter表(filter): 默认表,用于过滤功能,允许或拒绝数据包。NAT表(nat): 用于网络地址转换(Network Address Translation,NAT),允许连接到另一个网络或主机。Mangle表(mangle): 用于特殊处理数据包头部。Raw表(raw): 用于配置数据包处理的规则,通常不需要直接操作。链(Chains):INPUT链: 处理传入数据包。OUTPUT链: 处理传出数据包。FORWARD链: 处理转发数据包(经过主机)。PREROUTING链: 处理数据包进入路由前。POSTROUTING链: 处理数据包离开路由后。
2、Linux系统的组成
一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
内核 (Kernel): 是操作系统的核心部分,负责管理系统的资源和提供各种系统服务。它处理系统管理、内存管理、文件系统、设备管理等核心功能。
Shell:是用户与 Linux 内核之间的接口,用户可以通过 Shell 提供的命令行界面与系统交互。常见的 Shell 包括Bash、Zsh、Fish 等。
3、Linux内核的组成
Linux内核主要由五个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。
4、bootloader
bootloader、内核和根文件系统之间有密切的关系,它们是系统启动和运行的重要组成部分:
Bootloader(引导加载程序): Bootloader 是在计算机启动时运行的程序,负责引导操作系统的加载和启动过程。Bootloader 会首先运行,然后加载内核到内存中,并将控制权转交给内核。常见的 Linux 引导加载程序包括 GRUB(GRand Unified Bootloader)和 LILO(LInux LOader)。内核(Kernel): Linux 内核是操作系统的核心部分,负责管理系统的资源、提供各种系统服务以及与硬件交互。Bootloader 在加载内核后,内核开始初始化系统并启动各个子系统,最终创建用户空间环境。内核是整个系统的中枢。根文件系统(Root File System): 根文件系统是 Linux 系统中的最顶层文件系统,包含操作系统的核心文件和目录。根文件系统包括系统目录(如 /bin、/etc、/dev)、配置文件、用户数据等。在系统启动后,内核会挂载根文件系统,使其成为系统的根目录,用户空间程序可以在这里执行。
总结:Bootloader 在启动时负责加载内核,内核负责初始化系统并提供各种服务,最终挂载根文件系统作为用户空间程序的根目录。这三者确保系统能够正常启动和运行。
5、中断/异常
内中断:同步中断(异常)是由cpu内部的电信号产生的中断,其特点为当前执行的指令的指令结束后才转而产生中断,由于有cpu主动产生,其执行点必然是可控的。
外中断:异步中断是cpu的外设产生的电信号引起的中断,其发生的时间点不可预期。
6、MMU
(Memory Management Unit,内存管理单元)。负责虚拟地址(virtual address)转化成物理地址(physical address),转换过程较复杂。有些嵌入式处理器没有MMU,则不能运行依赖于虚拟内存管理的操作系统。
操作系统用MMU的是:Windows、MacOS、Linux、Android;不用MMU的是:FreeRTOS、VxWorks、UCOS……
CPU带MMU的是:Cortex-A系列、ARM9、ARM11系列;
不带MMU的是:Cortex-M系列……(STM32是M系列,没有MMU,不能运行Linux,只能运行一些UCOS、FreeRTOS等等)。
参考:https://blog.csdn.net/weixin_47397155/article/details/125357891
7、cache/buffer
缓存(Cache):
目的: 提高数据访问速度,在内存和处理器之间建立的一个快速访问的临时存储区域,存最近或预计会被频繁访问的数据。实际位于位于CPU内部。
工作原理: 用一种更快的存储介质来存储最常用的数据块。当处理器请求数据时,先检查缓存中是否存在,如存在则直接返回,否则从主存中读取并存储在缓存中。 局部性原理,采用缓存替换算法(如最近最少使用算法)。
缓冲(Buffer):
目的: 平衡数据传输速度不匹配的两个设备或组件之间的数据流,充当临时存储区域,提供数据传输的中间缓冲区。如内存中。
工作原理: 当两个设备或组件之间的数据传输速度不匹配时,缓冲用于存储数据块,以在传输速率匹配时进行传输。缓冲使发送方和接收方之间的数据传输更平滑,并确保数据不会丢失或被覆盖。
应用: 常用于网络通信、I/O 操作和数据传输过程中,在数据流动的不同阶段提供暂时性的存储。
8、lxcfs
在容器中top命令怎么能够看见属于自己的资源?
mount -t cgroup -o none,name=lxcfs cgroup /proc/sys/fs/cgroup
sudo apt-get install lxcfs #安装
systemctl start lxcfs #启动
lxcfs是一个用户空间文件系统,可以为容器提供关于资源使用的虚拟文件。使得容器内的应用程序可以像在独立的Linux系统上一样访问文件系统。让轻量级容器可享有与完整虚拟机相似的文件系统功能,而无需增加额外的性能开销。
9、NFS
一种分布式文件系统协议,允许一个系统上的用户访问另一个系统上的文件,就像访问本地文件一样。
主要用途包括:
1、 共享存储
2、 简化数据管理: 中央管理
3、 提高可用性和灵活性: 数据可以从网络的任何地方访问
10、