首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

Linux Signal 一网

Linux Signal 一网尽 前言 Linux Signal想毕很多人都用过,比如在命令行下想要结束某个进程,我们会使用kill pid或者kill -9 pid,其实就是通过给对应的进程发送信号来完成...下面我们就来进入到Linux Signal的世界吧~~~ 信号的使用 我们先通过一段代码实例来看一下信号量的使用吧。...信号的发送 信号的发送,有人说那还不简单,只要知道一个进程的pid, 那就发呗~~~ 之前写过一篇文章Linux PID 一网尽, 里面介绍了在Linux系统里面,有进程,线程,线程组,进程组这几个概念...实时信号 从Linux2.2版本开始,支持了real-time信号,这些real-time信号量被定义在宏SIGRTMIN 和 SIGRTMAX之间,Linux系统没有给它们预先定义含义,它们可以被应用程序自由定义...用户态的handler执行完成后,我们还需要返回内核态,这是怎么做到的呢?

2.2K20

Linux Epoll 一网

前言 epoll同样是linux上的IO多路复用的一种实现,内核在实现时使用的数据结构相比select要复杂,但原理上并不复杂,我们力求在下面的描述里抽出主干,理清思路。...epoll也利用了上文中介绍过的Linux中的重要数据结构 wait queue, 有了上面select的基础,其实epoll就没那么复杂了。...Epoll events */ epoll_data_t data; /* User data variable */ } __EPOLL_PACKED; 乍一看,为什么这两种定义不一样,这怎么调用啊...主要函数 epoll_create 创建一个epoll的实例,Linux里一切皆文件,这里也不例外,返回一个表示当前epoll实例的文件描述符,后续的epoll相关操作,都需要传入这个文件描述符。...主要分以下几步: 校验传入参数flags, 目前仅支持 EPOLL_CLOEXEC 一种,如果是其他的,立即返回失败; 调用ep_alloc, 创建 eventpoll结构体; 在当前task的打开文件描述符表中获取一个

1.6K10

Linux PID 一网

Linux PID 一网尽 前言 Linux 进程 PID 大家都知道,top命令就可以很容易看到各个进程的 PID, 稍进一步top -H,我们还能够看到各个线程的ID, 即TID。...今天我们想深入到Linux Kernel, 看一看在 Kernel里PID的来龙去脉。...pid.png 内核中进程相关ID的表示 我们以Linux Kernel 5.4.2 为例介绍 你想象中的进程pid的样子 我们在写代码时偶尔会需要获取进程的pid和父进程id, 这通常通过getpid...好了,我们接着往下看 Kernel中的pid PID Namespace Linux Kernel为了实现资源隔离和虚拟化,引入了Namespace机制,比如docker就充分利用了Namespace...前面我们说过了,进程相关的ID除了PID(TID),还有TDID, PGID, SID(Session ID), 在kernel中它们都被大一统起来,用struct pid表示, 它定义在incluse/linux

3.2K51

怎么编译Linux内核?

Linux 内核介绍 Linux内核(英语:Linux kernel)是一种开源的类Unix操作系统宏内核。...整个Linux操作系统家族基于 该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台,如路由器、无线接入点、专用小交换机、机顶盒、FTA接收器、智能电视、数字视频录像机...工作于平板电脑、智能手机及智能手表的Android操作系统,它的底层操作系统也是Linux。尽管在桌面计算机的占用率较低,但基于Linux的操作系统统治了几乎从移动设备到主机的其他全部领域。...实际Linux的发行版Ubuntu,其易用性也逐渐接近Windows。...Linux kernel官网:https://www.kernel.org/ linux Kernel维基百科:https://www.wiki.kernel.org/ 在线阅读linux kernel

9.9K20
领券