the virtual address of process

之前读 ULKe3 并没有配合最近版本的源码一起食用,导致理解不够深刻。后来又读了一遍 Linux kernel development,感觉虽然成文内容有点老,但是结构非常清晰,但是细节少。于是凭借着对 Linux kernel development 的理解又拿去 ULK 和 kernel 3.10 读了一遍,整理如下。 kernel task_struct 中 struct mm_st...

Posted on 

the organization of linux physical memory

梳理一下 Linux 物理内存的组织,有了这个铺垫可以快速什么页框回收,KSM(kernel samepage merging),cgroup mm 是在内存那个层面玩的,能玩出什么花样,还能玩出什么花样。 现代的 Linux 都是支持 NUMA,它和普通的 SMP 机器区别在于同一个 cpu 访问不同的地址的时间开销可能不一样,所以叫不一致。 12345678910111213141516...

Posted on 

git usage

0x00 workflowgit 的工作流程,已 k8s devel 的开发者文档里面图来说明: workflow 首先在 fork 代码,然后 clone 到本地,创建分支并修改代码,commit 发 PR 或者 rebase/fetch 别人的代码后修改发 PR. 0x01 tips Merge another branch of the same git-repo 1git...

Posted on 

kubernetes I - learn & install

0x00 background因新项目与 kubernetes 本身相关,而我对 kubernetes 的复杂一无所知,所以需要探索它。这个 post 主要记录学习 k8s 梳理出来的 XCx 基本概念以及如何参与开发,部分图片来源于 [^slideshare], 大量资料来自 [^officialdoc], 有点补充”官网的文档不如 repo 里面来的全面”! 0x01 what’s ku...

Posted on 

kubernetes II - network policy

0x00 design在 kubernetes 项目中一般的提案会在 repo 的docs/proposals下面,这次我主要关注networkPolicy相关提案,关于 networkpolicy 早期的会议讨论可以见 [^meeting], 提供一个 case[^draft2] 可以看到典型的应用方式,社区讨论定稿为 [^manuscript], 第一次提交的代码在 patch #256...

Posted on 

docker usage

0x00 starting公司准备开容器项目且我被分到了项目组,但对容器技术一无所知,所以这个 post 来记录目前工业界主流容器技术 –docker 的实践过程。 0x01 what’s docker? Docker is the world’s leading software containerization platform. 0x02 why docker? Docker’s c...

Posted on 

internship in Shanghai

从北京到上海。北方热也与南方不一样,南方的热软绵绵的好像中了分筋错骨手一样有力使不出来,北方的热好像铁砂布打磨着你让你狂躁。 试炼の魔都六月上旬,寻思着京城好远而实习补贴很少,因未毕业导致往返学校的开销导致收不抵支,就准备华东找个新实习并提出了离职。然后在拉钩上面投了个简历,就收到了面试,和面试官 (现在的 leader) 聊聊一下 Linux, 然后就收到了 offer, 于是就来到现...

Posted on 

analysis of kernel crash

基于回忆整理 0x00 beginning昨天早上我还在吃早餐,老大对我讲我们的服务器挂了,kernel 在临死前留下了一个 dump. 0x10 autopsy然后,尸检的活让我来! 0x11 kernel version确认一下尸体信息,以及死因。 123456789101112 KERNEL: /usr/lib/debug/lib/modules/3.10.0-229.e...

Posted on 

cgroups II - cgroup implementation overview

0x00 cgroups implementation因为cgroups其他子系统的应用远比net_cls要简单的多,所以后面不是介绍其他子系统使用,而是分析一下cgroups的实现 (base kernel 3.10).在正式切入实现之前回顾一下,cgroups子系统的介绍 [^lwn]. blkio — 这个子系统为块设备设定输入 / 输出限制,比如物理设备(磁盘,固态硬...

Posted on 

cgroups I - usage

0x00 what is cgroup?cgroups 是 Linux 内核的一个功能,用来限制,控制与分离一个进程组群的资源(如 CPU, 内存,网络,磁盘输入输出等). 0x01 The begin of cgroups这个项目最早是由 Google 的工程师在 2006 年发起 (主要是 Paul Menage 和 Rohit Seth), 最早的名称为进程容器 (process co...

Posted on 
134567