Linux八股积累与笔记

news2024/11/28 6:27:40

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.coloradmin.cn/o/2248880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51c自动驾驶~合集38

我自己的原文哦~ https://blog.51cto.com/whaosoft/12358456 #GaussianPretrain 万能3D高斯预训练表示!爆拉3D检测、Occ、高精地图等四大任务! 受Tesla的技术的推动,越来越多的厂商开始走"纯视觉"的路线,多数方案还…

STM32笔记(串口IAP升级)

一、IAP简介 IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产 品中的固件程序进行更新升级。 通常实…

VsCode 插件推荐(个人常用)

VsCode 插件推荐(个人常用)

解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题

解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题 一、错误原因分析二、解决方法方法一:使用`dos2unix`工具方法二:使用`sed`命令方法三:使用`tr`命令方法四:在文本编辑器中转换方法五:在Windows系统中使用适当的工具三、预防措施四、总结在使…

Excel如何设置超出单元格的内容不显示?

如图,在使用EXCEL时经常出现超出单元格显示的情况: 如果想要把超出单元格的部分隐藏,需要进行以下设置: 选中想要设置的单元格,然后点击对齐方式右边的按钮,对齐设置,选择“对齐”选项卡&#…

【干货分享】Boosting算法简单案例

Boosting算法是一种集成学习方法,通过逐步迭代训练弱分类器,并通过加权组合它们的预测结果来构建一个强分类器。 下面是Boosting算法(以AdaBoost为例)的详细过程和一个案例: 1. 数据准备:首先,将…

如何搭建高效的实时美颜直播APP?美颜SDK与美颜API的开发详

时下,搭建一款高效的实时美颜直播APP,尤其是集成美颜SDK与美颜API,已成为开发者们的技术难题。本篇文章,小编将详细探讨如何利用美颜SDK与美颜API来搭建一款高效的实时美颜直播APP,提升产品的竞争力。 一、实时美颜技…

Spring Boot教程之十一:获取Request 请求 和 Put请求

如何在 Spring Boot 中获取Request Body? Java 语言是所有编程语言中最流行的语言之一。使用 Java 编程语言有几个优点,无论是出于安全目的还是构建大型分发项目。使用 Java 的优点之一是 Java 试图借助类、继承、多态等概念将语言中的每个概念与现实世…

【JAVA进阶篇教学】第二十篇:如何高效处理List集合数据及明细数据

博主打算从0-1讲解下java进阶篇教学,今天教学第二十篇:如何高效处理List集合数据及明细数据。 Java 8 Stream API 助力高效处理集合数据(订单明细查询优化案例) 目录 一、前言 二、问题回顾 三、优化思路与 Stream API 的运用…

Linux的介绍及虚拟机centOS系统的下载与应用

1、什么是Linux Linux 是一种类 Unix 操作系统,它的内核(Kernel)由 Linus Torvalds 于 1991 年首次发布。作为一个开源、免费的操作系统,Linux 被广泛用于服务器、桌面计算机、嵌入式设备、移动设备等各种场景。 1、操作系统 操…

ORACLE数据库直接取出数据库字段JSON串中的 VALUE内容

字段内容类似这种: 如果是12c以上版本可以使用 SELECT JSON_VALUE(MEMO, $.supplyExercisePrice) AS supplyExercisePrice FROM your_table;如果是11g版本可以使用 SELECT REGEXP_SUBSTR(MEMO, "supplyExercisePrice":"([^"])", 1, 1, …

业务分组:流量隔离

RPC中常用的保护手段“熔断限流”,熔断是调用方为了避免在调用过程中,服务提供方出现问题的时候,自身资源被耗尽的一种保护行为;而限流则是服务提供方为防止自己被突发流量打垮的一种保护行为。虽然这两种手段作用的对象不同&…

数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!

文章目录 前言一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare版本 快排1.2.2 挖坑法 快排1.2.3 lomuto前后指针 快排 二、归并排序总结 前言 继上篇学习了排序的前面两个部分:直接插入排序和选择排序 今天我们来学习排序中常用的交换排序以及非常稳定的归并排序 快排可是有多…

【JavaEE初阶 — 网络编程】Socket 套接字 & UDP数据报套接字编程

1. Socket套接字 1.1 概念 Socket 套接字,是由系统提供用于网络通信的技术,是基于TCP / IP协议的网络通信的基本操作单元。基于 Socket 套接字的网络程序开发就是网络编程。 1.2 分类 Socket套接字主要针对传输层协议划分为如下三类&#x…

熔断限流:业务实现自我保护

服务端-限流 服务端主要是通过限流来进行自我保护,实现限流时要考虑到应用和IP级别,方便在服务治理的时候,对部分访问量特别大的应用进行合理的限流;服务端的限流阈值配置都是作用于单机的,而在有些场景下&#xff0c…

linux系统误操作,设置nofile值超过限制,导致无法登录,permission denied

1.问题描述(虚拟机复现) 在k8s集群运行某些服务时,对文件描述符要求比较大,在提高这个值前未查询这个值的限制,最后设置了一个超过限制的值导致登录被拒绝 [roottest4 ~]# tail -3 /etc/security/limits.conf * sof…

从零开始配置Qt+VsCode环境

从零开始配置QtVsCode环境 文章目录 从零开始配置QtVsCode环境写在前面扩展安装及配置Qt Configure配置 VsCode创建Qt工程VsCodeQMakeMinGwVsCodeQMakeMsvcVsCodeCMakeMinGwVsCodeCMakeMsvcQtCreatorQMakeMinGw->VsCodeQtCreatorQMakeMsvc->VsCodeQtCreatorCMakeMinGw-&g…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具,但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作,常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化,还重新定义了效率与创意的关系…

【Linux】Make/Makefile

这个3/4行的语法和1/2行是一样的。也是依赖关系和依赖方法。 make命令扫描makefile文件时,从上向下扫描,默认形成一个目标文件。 指定make clean的时候才回去执行对应的清除。 为什么要给我们的clean.PHONY:clean声明它是伪目标呢? PHONY类…

HarmonyOS:@Provide装饰器和@Consume装饰器:与后代组件双向同步

一、前言 Provide和Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,Provide和Consume摆脱参数传递机制的束缚,实现跨层级传递。 其中Provi…