soword科技言
永久公益免费API接口
提供永久免费的API接口,查看更多API接口,如果您有其他免费API资源,请联系我们,造福人类。
提供商务开发:小程序,系统,APP
定制开发,免费评估,免费咨询,价格便宜,售后保障,前往开发服务中心联系开发客服中心
第4天:进程与线程以及内核模块!

昨天又有Linux Kernel Club!我们花了大约一半的时间解释进程和线程之间的区别,这使我的大脑更加清楚。这是我的理解:

每个进程都有自己的PID和地址空间,线程共享单个进程的PID和地址空间。

什么是地址空间

每个进程都有一块允许使用的内存,因此进程无法踩到彼此的脚趾。

这包括

  • 代码文本的程序

  • 程序的数据(字符串和常量)

  • (动态,其中使用所述存储器中分配生长malloc生活)

  • 堆栈(固定大小,实时调用局部变量和函数。相关术语:堆栈溢出堆栈跟踪

  • 环境变量

  • 命令行参数

我不确定它们中的大多数是什么意思,但是请参见以“此可伸缩结构中每个字段的含义如下:”开头的列表。

为什么要穿线?

好东西:

  • 它们之间可以更轻松地进行通信,因为它们可以只写入同一内存

  • 不需要为每个新线程制作地址空间的副本

坏事:

  • 因为它们写入相同的内存,所以您可以拥有各种竞争条件。因此,您需要使用互斥对象。

内核模块

我们还讨论了内核模块。共识是编写内核模块是开始Linux内核开发的一种非常好的方法,所以我想我将在周一尝试编写一个!

我们讨论了一些漏洞利用和rootkit,以及内核模块可以做的令人毛骨悚然的事情。



2023-03-22 10:04:19

新人小程序+APP定制199元起


发放福利,助力中小企业发展,真正在互联网中受益

点击询问定制

广告服务展示