Linux八股积累与笔记

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、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/480234.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乐鑫发布 esp-iot-solution v2.0 版本

今天,乐鑫很高兴地宣布,esp-iot-solution v2.0 版本已经发布,release/v2.0 分支下的正式版本组件将为用户提供为期两年的 Bugfix 维护(直到 2027.01.25 ESP-IDF v5.3 EOL)。该版本将物联网开发中常用的功能进行了分类整…

【爬虫框架:feapder,管理系统 feaplat】

github:https://github.com/Boris-code/feapder 爬虫管理系统 feaplat:http://feapder.com/#/feapder_platform/feaplat 爬虫在线工具库 :http://www.spidertools.cn :https://www.kgtools.cn/1、feapder 简介 对于学习 Python…

uni-app 蓝牙开发

一. 前言 Uni-App 是一个使用 Vue.js 开发(所有)前端应用的框架,能够编译到 iOS、Android、快应用以及各种小程序等多个平台。因此,如果你需要快速开发一款跨平台的应用,比如在 H5、小程序、iOS、Android 等多个平台上…

C语言——海龟作图(对之前所有内容复习)

一.问题描述 海龟作图 设想有一只机械海龟,他在C程序控制下在屋里四处爬行。海龟拿了一只笔,这支笔或者朝上,或者朝下。当笔朝下时,海龟用笔画下自己的移动轨迹;当笔朝上时,海龟在移动过程中什么也不画。 …

【Maven】继承和聚合

5. Maven的继承和聚合 5.1 什么是继承 Maven 的依赖传递机制可以一定程度上简化 POM 的配置,但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本,且这些模块之间不存在依赖关系,这就导致同一个依赖…

Android 性能优化:内存优化(理论篇)

内存作为App程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。喜马直播随着近些年的业…

技能之发布自己的依赖到npm上

目录 开始 解决 步骤一: 步骤二: 步骤三: 运用 一直以为自己的项目在github上有了(之传了github)就可以进行npm install下载,有没有和我一样萌萌的同学。没事,萌萌乎乎的不犯罪。 偶然的机…

【选择排序和交换排序】直接选择排序、堆排序、冒泡排序、快速排序

【选择排序和交换排序】直接选择排序、堆排序、冒泡排序、快速排序 1. 选择排序1.1 直接选择排序1.1.1详细过程1.1.2 代码实现1.1.3 复杂度和稳定性 1.2 堆排序 2. 交换排序2.1 冒泡排序2.1.1 代码实现2.1.2 复杂度和稳定性 2.2 快速排序——挖坑法2.2.1详细过程2.2.2 代码实现…

DI依赖注入详解

DI依赖注入 声明了一个成员变量(对象)之后,在该对象上面加上注解AutoWired注解,那么在程序运行时,该对象自动在IOC容器中寻找对应的bean对象,并且将其赋值给成员变量,完成依赖注入。 AutoWire…

51c大模型~合集79

我自己的原文哦~ https://blog.51cto.com/whaosoft/12661268 #还是回谷歌好 创业一年半,胖了30斤,AI大佬感叹 回到大厂,和老领导重聚。 「由于工作强度和不健康的生活方式,我已胖了 15 公斤。」 本周一,知名 AI 学…

工业AI质检 AI质检智能系统 尤劲恩(上海)信息科技有限公司

来的现代化工厂,将逐步被无人化车间取代,无人工厂除了产线自动化,其无人质检将是绕不开的话题。尤劲恩致力于帮助工业制造领域上下游工厂减员增效、提高品质效率,真正实现无人质检IQC/IPQC/OQC的在线质检系统。分析生产环节真实品…

【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例

当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…

ELK(Elasticsearch + logstash + kibana + Filebeat + Kafka + Zookeeper)日志分析系统

文章目录 前言架构软件包下载 一、准备工作1. Linux 网络设置2. 配置hosts文件3. 配置免密登录4. 设置 NTP 时钟同步5. 关闭防火墙6. 关闭交换分区7. 调整内存映射区域数限制8. 调整文件、进程、内存资源限制 二、JDK 安装1. 解压软件2. 配置环境变量3. 验证软件 三、安装 Elas…

视频汇聚平台Liveweb国标GB28181视频平台监控中心设计

在现代安防视频监控领域,Liveweb视频汇聚平台以其卓越的兼容性和灵活的拓展能力,为用户提供了一套全面的解决方案。该平台不仅能够实现视频的远程监控、录像、存储与回放等基础功能,还涵盖了视频转码、视频快照、告警、云台控制、语音对讲以及…

Linux 内核 调用堆栈打印函数

文章目录 内核函数调用堆栈打印1. dump_stack()一、作用二、工作原理三、实现方式四、示例实际演示 2.WARN_ON()3. panic()一、函数作用二、函数行为三、panic() 函数的参数四、使用场景 4. BUG_ON()使用场景 内核函数调用堆栈打印 1. dump_stack() dump_stack()是Linux内核中…

C语言——指针初阶(一)

目录 一.什么是指针??? 指针是什么? 指针变量: 总结: 总结: 二.指针和指针类型 指针-整数: 总结: 指针的解引用 总结: 三.野指针 如何规避野指针 往期…

【Redis】Redis 预备知识

目录 1. 基本全局命令 KEYS EXISTS DEL EXPIRE TTL TYPE 2. 数据结构和内部编码 3. 单线程架构 Redis 提供了5种数据结构,理解每种数据结构的特点对于 Redis 开发运维非常重要,同时掌握每种数据结构的常见命令,会在使用 Redis 的时…

Facebook广告无法投放是什么原因?

Facebook作为全球知名的社媒平台,同时也成为许多知名海外企业的广告首选。但很投手在投放过程中也发现,Facebook 广告投放失败或者被拒投,那到底为什么呢? 其实Facebook广告有着非常严格的审核制度,通常投放失败可能是…

【uniapp】轮播图

前言 Uniapp的swiper组件是一个滑块视图容器组件&#xff0c;可以在其中放置多个轮播图或滑动卡片。它是基于微信小程序的swiper组件进行封装&#xff0c;可以在不同的平台上使用&#xff0c;如微信小程序、H5、App等。 效果图 前端代码 swiper组件 <template><vi…

【JavaEE】多线程(3)

首先回顾一下线程不安全的原因&#xff1a; 线程是随机调度&#xff0c;抢占式执行的修改共享数据&#xff0c;多个线程修改同一个变量多个线程修改共享数据的操作不是原子性&#xff0c;&#xff08;count是3个CPU指令&#xff0c;但是赋值操作就是原子性的&#xff09;内存可…