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

Docker 基础技术之 Linux namespace 源码分析

上篇我们从进程 clone 的角度,结合代码简单分析了 Linux 提供的 6 种 namespace,本篇从源码上进一步分析 Linux namespace,让你对 Docker namespace...我用的是 Linux-4.1.19 的版本,由于 namespace 模块更新都比较少,所以,只要 3.0 以上的版本都是差不多的。...从内核进程描述符 task_struct 开始切入 由于 Linux namespace 是用来做进程资源隔离的,所以在进程描述符中,一定有 namespace 所对应的信息,我们可以从这里开始切入代码...创建新的 namespace 初始化完之后,下面看看如何创建一个新的 namespace,通过前面的文章,我们知道是通过 clone 函数来完成的,在 Linux kernel 中,fork/vfork...IS_ERR(p)) { struct completion vfork; struct pid *pid; trace_sched_process_fork(current, p)

1.8K40

linux 中断机制《Rice linux 学习笔记》

这篇文章以按键为例子讲解linux的中断原理,中断的架构,中断的实现。 在我们的开发中,检测按键是否触发,无非就两种方法—轮询和中断。作者认为两种方法最大的区别就是CPU的利用率。...Linux的中断原理: 中断:处理器异常的一种,它是一种特殊的电信号,用硬件发给处理器,处理器接收到中断后,会马上向操作系统反映此信号的到来,然后就由操作系统负责处理这些新到来的数据。...Linux中断实现: 这里例子采用等待队列的方式实现(也就是上述的第二种方法)。...0, DEVICE_NAME, &buttons_fops); button_class = class_create(THIS_MODULE, "button_driver"); if (IS_ERR...button_class_device = class_device_create(button_class, NULL, MKDEV(major, 0), NULL, "button"); if (unlikely(IS_ERR

4.6K10
领券