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.mzph.cn/web/61031.shtml

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

相关文章

Qt5.14.2的安装与环境变量及一些依赖库的配置

目录 1.Qt5.14.2安装 2.Qt环境变量及一些依赖库的配置 1.Qt5.14.2安装 QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 - 博客园 2.Qt环境变量及一些依赖库的配置 假设QT安装目录为: D:\Qt\Qt5.14.2 将目录: D:\Qt\Qt5.14.…

初识Linux(4):Linux基础环境工具(下)

1. Git Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制。 而我们常见的Gitee和Gitehub都是基于Git(Git是开源的)实现的在线代码仓库,而前者服务器位于中国,后者服务器位于美国。 总的来说&…

12.Three.js纹理动画与动效墙案例

12.Three.js纹理动画与动效墙案例 在Three.js的数字孪生场景应用中,我们通常会使用到一些动画渲染效果,如动效墙,飞线、雷达等等,今天主要了解一下其中一种动画渲染效果:纹理动画。下面实现以下动效墙效果&#xff08…

《白帽子讲Web安全》13-14章

《白帽子讲Web安全》13-14章 《白帽子讲Web安全》13-14章13、应用层拒绝服务攻击13.1、DDOS简介13.2、应用层DDOS13.2.1、CC攻击13.2.2、限制请求频率13.2.3、道高一尺,魔高一丈 13.3、验证码的那些事儿13.4、防御应用层DDOS13.5、资源耗尽攻击13.5.1、Slowloris攻击…

【电子元器件】Nand Flash基础介绍

本文章是笔者理论结合实践进行整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、什么是Nand Flash Flash主要分两种,Nand Flash和Nor flash。 Nor的成本相对高&#xff0c…

JVM_垃圾收集器详解

1、 前言 JVM就是Java虚拟机,说白了就是为了屏蔽底层操作系统的不一致而设计出来的一个虚拟机,让用户更加专注上层,而不用在乎下层的一个产品。这就是JVM的跨平台,一次编译,到处运行。 而JVM中的核心功能其实就是自动…

python除了熟悉的pandas,openpyxl库也很方便的支持编辑Excel表

excel表格是大家经常用到的文件格式,各行各业都会跟它打交道。之前文章我们介绍了使用openpyxl和xlrd库读取excel表数据,使用xlwt库创建和编辑excel表,在办公自动化方面可以方便我们快速处理数据,帮助我们提升效率。 python之open…

网络知识1-TCP/IP模型

从用户端到服务端,tcp/ip模型可分为应用层、传输层、网络层、网络接口层 以下使用寄快递为例进行解释 应用层职责: 只关注与为用户提供应用功能,如HTTP、FTP、telnet、DNS、SMTP等 ,应用层的职责就像我们寄快递时将快递给快递员…

机器学习(二十五):决策树算法以及决策树和神经网络的对比

一、决策树集合 单一决策树会对训练数据的变化很敏感。例子:输入十个数据,判断是否是猫。只替换其中一个数据,信息增益最高的分裂特征就发生了改变,决策树就发生了变化。 使用决策树集合可以使算法更加健壮。例子:使用…

通俗理解人工智能、机器学习和深度学习的关系

最近几年人工智能成为极其热门的概念和话题,可以说彻底出圈了。但人工智能的概念在1955年就提出来了,可以说非常古老。我在上小学的时候《科学》课本上就有人工智能的概念介绍,至今还有印象,但那些年AI正处于“寒冬”,…

CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标

注:本文为 “CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标” 几篇相关文章合辑。 文章中部分超链接、图片异常受引用之前的原文所限。 相机自动对焦原理 TriumphRay 于 2020-01-16 18:59:41 发布 凸透镜成像原理 这一部分大家中学应该就学过…

文件上传upload-labs-docker通关

(图片加载不出,说明被和谐了) 项目一: sqlsec/ggctf-upload - Docker Image | Docker Hub 学习过程中,可以对照源码进行白盒分析. 补充:环境搭建在Linux虚拟机上的同时,以另一台Windows虚拟机进行测试最…

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

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

如何在 Ubuntu 22.04 上安装 Metabase 数据可视化分析工具

简介 Metabase 提供了一个简单易用的界面,让你能够轻松地对数据进行探索和分析。通过本文的指导,你将能够在 Ubuntu 22.04 系统上安装并配置 Metabase,并通过 Nginx 进行反向代理以提高安全性。本教程假设你已经拥有了一个非 root 用户&…

spring +fastjson 的 rce

前言 众所周知&#xff0c;spring 下是不可以上传 jsp 的木马来 rce 的&#xff0c;一般都是控制加载 class 或者 jar 包来 rce 的&#xff0c;我们的 fastjson 的高版本正好可以完成这些&#xff0c;这里来简单分析一手 环境搭建 <dependency><groupId>org.spr…

js 高亮文本中包含的关键词标红

在开发中&#xff0c;遇到需要将文本中包含的关键字高亮的情况&#xff0c;可以做以下处理。 <div class"title"v-html"highlightKeywords(item.title, state1.tags1.concat(state2.tags2).concat(state3.tags3))"> </div> ...... ...... con…

从迭代器到生成器:小内存也能处理大数据

有的对象可以用for循环比如字符串和列表,有的对象不可以比如整数 my_str 123 for s in my_str;print(s)my_lst [1,2,3] for i in my_lst:print(i)my_int 123 for n in my_int:print(n) # 报错python中能够使用for循环迭代的对象叫可迭代对象也叫iterables iterables包含__i…

第29天:安全开发-JS应用DOM树加密编码库断点调试逆向分析元素属性操作

时间轴&#xff1a; 演示案例&#xff1a; JS 原生开发-DOM 树-用户交互 DOM&#xff1a;文档操作对象 浏览器提供的一套专门用来操作网页代码内容的功能&#xff0c;实现自主或用户交互动作反馈 安全问题&#xff1a;本身的前端代码通过 DOM 技术实现代码的更新修改&#xff…

“蜀道山”高校联合公益赛 Web (部分)

文章目录 奶龙牌WAF海关警察训练平台恶意代码检测器 奶龙牌WAF <?php if ($_SERVER[REQUEST_METHOD] POST && isset($_FILES[upload_file])) {$file $_FILES[upload_file];if ($file[error] UPLOAD_ERR_OK) {$name isset($_GET[name]) ? $_GET[name] : basen…

docker-compose搭建xxl-job、mysql

docker-compose搭建xxl-job、mysql 1、搭建docker以及docker-compose2、下载xxl-job需要数据库脚本3、创建文件夹以及docker-compose文件4、坑来了5、正确配置6、验证-运行成功 1、搭建docker以及docker-compose 略 2、下载xxl-job需要数据库脚本 下载地址&#xff1a;https…