the virtual address of process
之前读 ULKe3 并没有配合最近版本的源码一起食用,导致理解不够深刻。后来又读了一遍 Linux kernel development,感觉虽然成文内容有点老,但是结构非常清晰,但是细节少。于是凭借着对 Linux kernel development 的理解又拿去 ULK 和 kernel 3.10 读了一遍,整理如下。 kernel task_struct 中 struct mm_st...
之前读 ULKe3 并没有配合最近版本的源码一起食用,导致理解不够深刻。后来又读了一遍 Linux kernel development,感觉虽然成文内容有点老,但是结构非常清晰,但是细节少。于是凭借着对 Linux kernel development 的理解又拿去 ULK 和 kernel 3.10 读了一遍,整理如下。 kernel task_struct 中 struct mm_st...
梳理一下 Linux 物理内存的组织,有了这个铺垫可以快速什么页框回收,KSM(kernel samepage merging),cgroup mm 是在内存那个层面玩的,能玩出什么花样,还能玩出什么花样。 现代的 Linux 都是支持 NUMA,它和普通的 SMP 机器区别在于同一个 cpu 访问不同的地址的时间开销可能不一样,所以叫不一致。 12345678910111213141516...
0x00 workflowgit 的工作流程,已 k8s devel 的开发者文档里面图来说明: workflow 首先在 fork 代码,然后 clone 到本地,创建分支并修改代码,commit 发 PR 或者 rebase/fetch 别人的代码后修改发 PR. 0x01 tips Merge another branch of the same git-repo 1git...
0x00 background因新项目与 kubernetes 本身相关,而我对 kubernetes 的复杂一无所知,所以需要探索它。这个 post 主要记录学习 k8s 梳理出来的 XCx 基本概念以及如何参与开发,部分图片来源于 [^slideshare], 大量资料来自 [^officialdoc], 有点补充”官网的文档不如 repo 里面来的全面”! 0x01 what’s ku...
0x00 design在 kubernetes 项目中一般的提案会在 repo 的docs/proposals下面,这次我主要关注networkPolicy相关提案,关于 networkpolicy 早期的会议讨论可以见 [^meeting], 提供一个 case[^draft2] 可以看到典型的应用方式,社区讨论定稿为 [^manuscript], 第一次提交的代码在 patch #256...
0x00 starting公司准备开容器项目且我被分到了项目组,但对容器技术一无所知,所以这个 post 来记录目前工业界主流容器技术 –docker 的实践过程。 0x01 what’s docker? Docker is the world’s leading software containerization platform. 0x02 why docker? Docker’s c...
从北京到上海。北方热也与南方不一样,南方的热软绵绵的好像中了分筋错骨手一样有力使不出来,北方的热好像铁砂布打磨着你让你狂躁。 试炼の魔都六月上旬,寻思着京城好远而实习补贴很少,因未毕业导致往返学校的开销导致收不抵支,就准备华东找个新实习并提出了离职。然后在拉钩上面投了个简历,就收到了面试,和面试官 (现在的 leader) 聊聊一下 Linux, 然后就收到了 offer, 于是就来到现...
基于回忆整理 0x00 beginning昨天早上我还在吃早餐,老大对我讲我们的服务器挂了,kernel 在临死前留下了一个 dump. 0x10 autopsy然后,尸检的活让我来! 0x11 kernel version确认一下尸体信息,以及死因。 123456789101112 KERNEL: /usr/lib/debug/lib/modules/3.10.0-229.e...
0x00 cgroups implementation因为cgroups其他子系统的应用远比net_cls要简单的多,所以后面不是介绍其他子系统使用,而是分析一下cgroups的实现 (base kernel 3.10).在正式切入实现之前回顾一下,cgroups子系统的介绍 [^lwn]. blkio — 这个子系统为块设备设定输入 / 输出限制,比如物理设备(磁盘,固态硬...
0x00 what is cgroup?cgroups 是 Linux 内核的一个功能,用来限制,控制与分离一个进程组群的资源(如 CPU, 内存,网络,磁盘输入输出等). 0x01 The begin of cgroups这个项目最早是由 Google 的工程师在 2006 年发起 (主要是 Paul Menage 和 Rohit Seth), 最早的名称为进程容器 (process co...