
看表情包学Linux | 订阅量200+🔥
文章平均质量分 97
大家好,我是练习时常两年半的个人练习生柠檬叶子C,喜欢唱,跳,rap,编程。Music~ 欢迎订阅 《看表情包学Linux》!本专栏将从零开始讲解 Linux 操作系统!我将持续更新,写作风格还是延续 《C++要笑着学》,用表情包有趣地去讲解知识点。
王平渊
流量操盘手,主要从事互联网知识付费项目研发工作,专注于跨平台引流以及私域变现。
展开
-
【看表情包学Linux】IPC 进程间通信 | PIPE 管道 | 匿名管道 | 管道通信的原理 | 系统调用: pipe 接口
IPC(Inter-Process Communication,进程间通信)原创 2023-08-02 21:15:46 · 2232 阅读 · 63 评论 -
【看表情包学Linux】软硬链接 | 软连接数 | 创建软硬链接 | 动静态库 | 生成静态库 | 生成动态库
上一章我们讲解了 inode,为文件系统收了尾,这几章我们充分地讲解完了文件系统的知识点,现在我们开始开始学习软硬链接了。如果没有文件系统的铺垫,想直接理解软硬链接难免有些困难。但我们讲完了文件系统再去理解软硬链接,你就会发现没有那么难,因为我们是从底层开始,向上去学习的!让我们开始吧。原创 2023-07-21 18:42:44 · 3517 阅读 · 62 评论 -
【看表情包学Linux】磁盘基础知识 | CHS 寻址 | 逻辑扇区 LBA | 索引节点 inode | 伪删除 inode bitmap 1→0
上面我们学到的所有东西,全部都是在内存中的。是不是所有的文件都被打开了呢?不是所有的文件,都被打开的,我们之前研究的是进程打开的文件,是由操作系统去管理文件的动态特性,但是我们还有大量的文件,大多数文件都在磁盘上静静地 "躺着" 的。这批文件非常多、杂、乱,本章我们就要探讨在磁盘上 "躺着" 的文件。然后我们将学习 Inode,带着大家理解文件系统,为下一章介绍软硬链接做铺垫。原创 2023-05-05 10:08:03 · 2563 阅读 · 62 评论 -
【看表情包学Linux】文件描述符 | 重定向 Redirection | dup2 函数 | 缓冲区的理解 (Cache)
在上一章中,我们已经把 fd 的基本原理搞清楚了。本章我们将开始探索 fd 的应用特征,探索文件描述符的分配原则。讲解重定向,上一章是如何使用 fflush 把内容变出来的,介绍 dup2 函数,追加重定向和输入重定向的知识。最后我们讲解缓冲区,研究缓冲区的刷新策略。原创 2023-04-15 09:56:23 · 2343 阅读 · 58 评论 -
【看表情包学Linux】初识文件描述符 | 虚拟文件系统 (VFS) 初探 | 系统传递标记位 | O_TRUNC | O_APPEND
本章我们将学习系统传递标志位,介绍 O_WRONLY, O_TUNC, O_APPEND 和 O_RDONLY。之后我们就正是打开文件描述符 fd 的大门了,之前我们所探讨讲解的系统文件操作,都是为了给文件描述符做铺垫的,可见这这一块知识点是相当的重要。话不多说,让我们正式开始本章的学习!原创 2023-03-27 07:54:23 · 2993 阅读 · 63 评论 -
【看表情包学Linux】系统下的文件操作 | 文件系统接口 | 系统调用与封装 | open,write,close 接口 | 系统传递标记位 O_RDWR,O_RDONLY,O_WRONLY...
本章我们将正式接触系统接口 (syscall),为斯坦福大学官方 OS 项目Pintos 做铺垫,系统调用是非常重要的前置知识。本篇主要讲解底层文件系统接口,详细介绍 open 接口和它的 flags 参数 (即系统传递标记位),重点讲解O_RDWR, O_RDONLY, O_WRONLY, O_CREAT 和 O_APPEND 这些操作模式。flags 标记位这一块的知识点,再一次出现了对 "位图" 的使用,这一块的知识点尤为重要,后期可能会大量涉及这样的设计手法。然后再顺带讲解 close 接口和原创 2023-03-18 09:23:08 · 3623 阅读 · 84 评论 -
【看表情包学Linux】插叙:实现简易的 Shell | 通过内建命令实现路径切换 | 再次理解环境变量
本章是个 "插叙",前几章我们学了程序替换,现在我们可以尝试动手做一个 "会创建,会终止,会等待,会程序替换" 的简易shell 了。通过本章的内容,可以进一步巩固进程替换,学习内建命令的概念以实现路径切换,并再次理解环境变量。原创 2023-03-23 08:07:03 · 1766 阅读 · 58 评论 -
【看表情包学Linux】进程阻塞 | 轮询检测 | 基于非阻塞等待的轮询方案 | 进程程序替换 | exec 函数簇
在上一章中我们讲了 waitpid的 status参数,本章我们讲解它的options参数。在讲解之前我们需要理解进程阻塞,介绍非阻塞的轮询检测机制,学会waitpid。然后我们重点讲解二进程程序替换,这是本章的重点,如何让子进程执行一个新的程序?本章之前,我们都是让子进程执行父进程代码的,本章我们让子进程能够开启属于自己的 "全新旅程",这听上去很 cool,通过讲解进程替换的替换原理,然后先介绍一个进程替换函数 execl,通过介绍这个函数来打开突破口,引入进程创建的知原创 2023-03-13 09:04:52 · 1759 阅读 · 47 评论 -
【看表情包学Linux】进程等待 | wait/waitpid 的 status 参数 | 获取退出码与退出信号 | 初识核心转储
在上一章中我们讲解了进程创建与进程终止,本章我们开始讲解进程等待。进程等待这部分知识相较于前面还是较为复杂的,我会由浅入深地讲解这部分的知识点,值得一提的是在学习本章前需要掌握进程状态的知识,复习链接我会贴到下面。我们先谈论进程等待的必要性,简单地讲解 wait 函数,然后我们主要讲解waitpid 函数。由于 wait 只有一个参数 status,且 waitpid 有三个参数且其中一个也是 status,我们本章重点讲解这个 status 参数。因为要控制篇幅,本章没办法讲清楚 waitpid 的其余原创 2023-03-04 18:03:04 · 5981 阅读 · 61 评论 -
【看表情包学Linux】进程创建 | 进程终止 | 分叉函数 fork | 写时拷贝 | 内核数据结构缓冲池 | slab 分派器
本章我们主要讲解进程的创建与终止。首先讲解进程创建,fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数,在上个章节我们讲解了"进程地址空间" 后,我们解释了 fork 函数有两个返回值的问题,本章我们要学习进程的创建,所以我们要正式介绍一下 fork 函数。随后讲解进程终止,我们需要对终止有一个正确的认识,在本章我们会详细探讨 主函数 return 0 到底是个什么情况,从而引发进程退出码和错误码的概念。再探讨一下进程退出的常见方法,最后引出内存数据结构缓冲池,简单介绍一下 slab 分原创 2023-03-03 10:01:37 · 1808 阅读 · 54 评论 -
【看表情包学Linux】进程地址空间 | 区域和页表 | 虚拟地址空间 | 初识写时拷贝
本章核心主题为"进程地址空间",会通过验证 Linux 进程的地址空间来开头,抛出 "同一个值能有不同内容" 的现象,通过该现象去推导出 "虚拟地址" 的概念。然后带着大家理解为什么虚拟地址不能是物理内存、讲解进程地址空间的概念以及如何设计。讲解什么是区域,对区域的理解,再引出内核中的数据结构是如何维护的,如何加载的问题。最后我们会揭秘文章开头的验证抛出的问题,从而引出 "写时拷贝" 的概念。讲解完写时拷贝后,我们就能理解为什么 "同一个值能有不同内容"的现象,并且也能解释本专栏进程开篇时抛出的 "for原创 2023-02-14 14:08:40 · 3263 阅读 · 83 评论 -
【看表情包学Linux】进程优先级 | 查看系统进程 | 优先级修改 | 进程的切换 | 竞争性与独立性 | 并行并发的概念 | 环境变量
我们先讲解进程的优先级,探讨为什么会存在优先级,以及如何查看系统进程、进程优先级的修改。然后讲解进程的切换,首次介绍进程的竞争性、独立性,以及并行和并发的概念,在通过讲解进程抢占引出可见寄存器与不可见寄存器。最后我们讲解环境变量,介绍环境变量 PATH,并且做一个 "让自己的可执行程序不带路径也能执行"的实践,讲解环境变量的到如何删除,最后再讲几个常见的环境变量。原创 2023-02-10 14:05:12 · 2681 阅读 · 104 评论 -
【看表情包学Linux】(12) 进程状态解析 | 运行态 | 终止态 | 进程挂起与阻塞 | 运行态R | 阻塞态S/D | 死亡态X | 僵尸态Z | 暂停态T/t | 僵尸进程 | 孤儿进程
本章我们专门讲解进程的状态。我们先学习具体的 Linux 系统状态,再去介绍 OS 学科面对的概念如何理解 —— 运行态、终止态、阻塞态以及挂起态。最后我们再把操作系统的概念对接,理解终止、阻塞和挂起。原创 2023-02-02 13:16:40 · 3698 阅读 · 66 评论 -
【看表情包学Linux】(11) 进程的概念 | 进程控制块 PCB | 父进程与子进程 | 进程 ID | task_struct
首先会明确冯诺依曼体系结构的概念,旨在帮助大家理解体系结构在硬件角度去理解数据流走向的问题。理解完之后我们再去谈操作系统,这个在之前的章节已经有所铺垫,当时我们只讲解了操作系统是什么,而这一章我们会讲解更多有关操作系统的细节,着重谈谈操作系统概念与定位、操作系统是如何去做管理的。讲解完这些之后我们将带着大家深入理解 "进程" 的概念,"进程" 这个概念其实使我们一直在接触的东西,只不过这个概念我们没有框出进行详细讲解罢了,本章我们就把 "进程" 这货挖出来好好地深入理解一番!引出进程的概念后原创 2023-01-27 14:45:11 · 5255 阅读 · 62 评论 -
【看表情包学Linux】(10) 冯诺依曼架构 | 理解操作系统 | 基于 Pintos 实现新的用户级程序的系统调用
大家好,我是段程式。本章我们首先会明确冯诺依曼体系结构的概念,旨在帮助大家理解体系结构在硬件角度去理解数据流走向的问题。理解完之后我们再去谈操作系统,这个在之前的章节已经有所铺垫,当时我们只讲解了操作系统是什么,而这一章我们会讲解更多有关操作系统的细节,着重谈谈操作系统概念与定位、操作系统是如何去做管理的。原创 2023-01-19 09:14:58 · 2811 阅读 · 61 评论 -
【看表情包学Linux】(9) 缓冲区的概念 | Git 三板斧 | 实现简易进度条
本章我们先对缓冲区的概念进行一个详细的探究,之后会带着大家一步步去编写一个简陋的"进度条" 小程序,过程还是挺有意思的,这也可以算是 Linux 专栏中第一个小程序。在讲解进度条的实现之前还会讲解一下"回车和换行" 的区别。最后我们来介绍一下 Git,着重讲解一下 Git 三板斧,一般只要掌握三板斧就基本够用了。原创 2023-01-16 16:45:56 · 3502 阅读 · 62 评论 -
【看表情包学Linux】(8) 探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
本章我们要学习的是 makefile。会不会写 makefile,从一个侧面说明一个人是否具备完成大型工程的能力。一个工程中的源文件不计其数,按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译 ,甚至于更复杂的功能操作。话不多说,让我们开始吧!原创 2023-01-05 07:30:00 · 2853 阅读 · 95 评论 -
【看表情包学Linux】(7) GDB 调试教学 | gcc 和 g++ | 函数库
本章我们将学习 gcc 和 g++,系统讲解程序运行时的各个过程。顺带着将函数库也归并着讲解讲解。然后带着大家高雅的学一学令众多习惯图形化页面的朋友难受的 gdb 调试,这部分知识可以选择性学习学习,以后倘若遇到一些问题时能在 Linux 内简单调试,还是很香的。原创 2022-09-19 06:09:37 · 1960 阅读 · 60 评论 -
【看表情包学Linux】(6) 软件包管理器 yum | Vim 编辑器介绍 | Vim 文本批量化操作 | 配置 Vim
本章首先介绍 Linux 软件包管理器 yum,学习如何在 Linux 上安装和卸载软件。最后我们讲解一下 vim 编辑器,我采会用实际操作去讲解 vim 的文本操作。对于 vim 的这些操作按键,不需要死记,用的多了自然就会熟。默认的 vim 配置简陋不堪,没有代码提示、没有缩进甚至没有行号,但至少还是有语法高亮的。在这一章我们主要去学习 vim 的基础操作,对于 vim 的配置我打算放到下一章去讲。.........原创 2022-07-26 08:17:14 · 1996 阅读 · 25 评论 -
【看表情包学Linux】(5) shell 命令及运行原理 | Linux 权限 | 文件权限的修改和转让 | 目录的权限 | Sticky bit 粘滞位
本章我们将重点讲解 Linux 权限,这是 Linux 基础部分中非常重要的一部分。内容比较干,我会稍稍正经些去讲解。话不多说,我们直接切入正题。原创 2022-07-14 07:30:00 · 3206 阅读 · 38 评论 -
【看表情包学Linux】(4) Redirect 重定向 | 时间相关指令 | 文件查找 | 打包与压缩
本章仍然是继续对Linux 常用指令进行介绍,将讲解重定向、时间相关的指令、文件查找和打包压缩等指令。我们将初次理解 "Linux下一切皆文件"这一概念,我将通过一个有趣的故事去讲解它。原创 2022-07-11 08:00:00 · 1639 阅读 · 10 评论 -
【看表情包学Linux】(3) man 手册 | 复制文件或目录 | 移动文件和重命名操作 | 查看目标文件内容
本篇将继续讲解 Linux 基本命令行操作,对 Linux 手册、复制文件或目录、移动文件与重命名操作和查看目标文件内容进行讲解。我会手把手去演示操作每一个指令的用法以及常用选项,这些命令不需要可以的去记它,记不得就去翻一翻,用多了自然就会记住滴。...............原创 2022-07-08 14:18:20 · 2492 阅读 · 25 评论 -
【看表情包学Linux】(2) 了解操作系统 | 目录内容的显示 | 目录跳转 | 基本创建与删除操作
本章将浅谈一下 "操作系统是什么" 的问题,随后通过讲解一些Linux 下的基本指令,显示目录内容、跳转操作和文件的创建与删除。在讲解的同时我会穿插一些知识点,比如 Linux 隐藏文件、路径等基础知识。..................原创 2022-07-04 10:45:58 · 3198 阅读 · 51 评论 -
【看表情包学Linux】(1) 环境安装 | 安装XShell | 基本的账号管理
欢迎订阅 《看表情包学Linux》!本专栏将从零开始讲解 Linux 的知识,将涉及Linux 基本入门、Linux 系统编程、Linux 网络编程和 MySQL数据库。我将持续更新,写作风格还是延续 《C++要笑着学》,用表情包有趣地去讲解知识点。..................原创 2022-07-02 13:53:19 · 2866 阅读 · 17 评论