当前位置:网站首页 > 编程语言 > 正文

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



写在前面

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

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

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

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

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

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

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

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

到此这篇linux可以这样学(linux怎么学 知乎)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 104协议报文解析工具(104报文解析实例)2025-01-28 15:45:04
  • 断开了连接(断开连接图片)2025-01-28 15:45:04
  • ubuntu镜像iso下载(ubuntu2004镜像iso下载)2025-01-28 15:45:04
  • linux操作系统怎么学(linux操作系统学了有什么用)2025-01-28 15:45:04
  • 原位癌基底膜是什么(原位癌和基底细胞癌癌的区别)2025-01-28 15:45:04
  • 小米蓝牙耳机怎么断开连接(小米耳机怎么断开手机蓝牙)2025-01-28 15:45:04
  • xmouse官网(xmouse使用)2025-01-28 15:45:04
  • to翻译为中文(to 翻译成中文)2025-01-28 15:45:04
  • 二级域名解析记录值(二级域名解析是什么意思)2025-01-28 15:45:04
  • 主板nvme接口(主板nvme接口识别不了)2025-01-28 15:45:04
  • 全屏图片