2 16
Linux内核学习:虚拟文件系统

Linux的成功因素之一是它具有与其它操作系统和谐共存的能力,其中代表作之一就是虚拟文件系统(VFS)。

VFS的思想是把不同类型文件的共同信息放入内核,具体思路是通过Linux在用户进程(或C库)和文件系统之间引入了一个抽象层,该抽象层称之为虚拟文件系统(VFS)。

vfs arch

VFS的任务主要是提供一种操作文件、目录以及其他对象的统一方法还有它必须能够与各种方法给出的具体文件系统实现达成妥协。

1 27
Linux内核学习:内存管理

理解Linux内存管理能够更好地理解进程的虚拟空间排布(当一个进程需要某块内存时,它会把自己的一个内存地址交由OS处理)。

虽然进程只关心如何使用自己的线性排列的虚拟地址,而不需要关心物理内存的实际容量,以及如何使用真实的物理内存,但内存管理是内核最复杂的同时也是最重要的一部分;它是协作处理器与内核的关键流程,所以本文我们主要介绍Linux内存管理的相关知识点。

典型的进程内存排布如下:

process mem

操作系统有保护措施,阻止堆和栈的越界行为发生

1 20
Linux内核学习:进程

进程基本概念

进程是Unix及其衍生操作系统的根本,通常我们把一个程序的执行称为一个进程,换句话说,进程用于描述程序的执行过程。进程不能笼统地作为程序+执行的结果,从内核的观点看,进程的目的就是担当分配系统资源的实体,也是操作系统进行资源分配的一个基本单位。

进程所涉及的资源一般指:内存地址空间、文件描述符、线程栈和寄存器等。

进程并不仅仅局限于一段可执行的代码段,通常进程还包含各种资源(打开的文件、挂起的信号、内存管理信息、处理器状态、一个或多个内存映射的内存地址空间以及一个或多个线程,当然还包含用来存放全局变量的数据段等)。

总结一句就是:程序本身并不是进程,进程(内核也叫任务)是处于执行期间的程序以及相关的资源的总称。

11 12
通过sed命令对kv方式的配置文件进行修改

sed是unix下的面向字符流的编辑器,即stream editor, 它是面向行的,以行为单位进行处理,同时,sed是非交互式的,一旦执行便要处理完整个文件。

日常后台服务配置文件多以key-value的方式存在,例如ini文件、toml文件或一些自定义配置文件,当我们某些情况下需要编写自动化脚本对配置文件进行更改的时候,我们可以通过shell的sed命令进行正则匹配快速修改,十分简单快捷,减少很多“高级语言”编写的繁琐,下面主要列出两种比较常见的配置变更情况和命令参考例子:

前一页 后一页