2025年linux可以这样学(linux怎么学 知乎)

linux可以这样学(linux怎么学 知乎)写在前面 我们这次先从进程往后说 后续讲的过程中我们还会串入竞争 独立 并发和并行的概念 还会涉及到进程调度和切换的理解 简单来说进程是一个运行起来的程序 最开始还是要了解先描述再组织 这个对 Linux 的学习很关键 在操作系统中 我们把描述进程的结构体称为 extrm PCB Process Ctrl Block 在很多教材中 会把 PCB 称为进程控制块



写在前面

我们这次先从进程往后说,后续讲的过程中我们还会串入竞争、独立、并发和并行的概念,还会涉及到进程调度和切换的理解。

简单来说进程是一个运行起来的程序。
最开始还是要了解先描述再组织,这个对Linux的学习很关键。

在操作系统中,我们把描述进程的结构体称为 extrm{PCB} (Process Ctrl Block) 。
在很多教材中,会把PCB称为进程控制块。

因为这是为了管理进程而描述进程所设计的结构体类型,将来当有一个进程加载到内存时,
操作系统在内核中一定要为该进程创建 task_struct 结构体变量,
并且要将该变量链入到全局的链表当中。要删掉一个进程,实际上就是遍历所有的链表结点,
把对应进程的 和代码都释放掉,这就叫对链表做管理。
最终你会发现,操作系统对进程的管理,最终变成了对链表的增删查改。

操作系统不相信任何人的,不会直接暴露自己的任何数据结构,代码逻辑,其他数据相关的细节。
想做系统是通过 系统调用 的方式,对外提供接口服务的。
Linux 操作系统是用C语言写的,这里所谓的 “接口”,本质就是C函数。
我们学习系统编程,本质上就是学习这里的系统接口。

每一个进程在系统中,都会存在一个惟一的标识符!
这就如同每个人都有身份证号一样,进程也需要标号的,所以每个进程都存在有一个 id号。

进程状态在 Linux 内核中就是个 整数,这个整数在进程的 task_stuct 中: int status。
学过操作系统这门课的应该都知道,一个进程通常有三种状态:就绪、运行、阻塞。
进程的状态,想仔细了解可以搜一搜其他博客。

Linux 中的进程优先级由两部分组成:PRI+ NI​

PRI:优先级 (priority),默认进程优先级为 80​。
NI​:nice 值 (nice value) ,进程优先级的修正属性,取值区间为 [-20, 19]​ ,默认值为 0​ 。
另外优先级是可以修改的。

我们要先清楚他的结构
内核空间(1GB)+环境变量区域+栈+共享区+堆+未初始化的数据+初始化的数据+正文代码。
注意:static被当作全局变量。
要知道虚拟地址的存在。

有了虚拟地址空间,就是给访问内存添加了一层软硬关键层,可以对转化过程进行审核,非法的访问就可以被直接拦截了,可以 保护内存。
还能够将 进程管理 和 Linux 内存管理,通过地址空间进行功能模块的解耦。
让进程或者程序可以以一种统一的视角看待内存!
有了虚拟地址空间,还可以让进程或者程序可以 以统一的视角看待内存。方便以统一的方式来编译和加载所有的可执行程序。如此一来,就可以简化进程本身的设计和实现。

编程小号
上一篇 2025-09-30 16:40
下一篇 2025-03-06 23:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/74008.html