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...
基于回忆整理 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...
netfilter & iptables Netfilter, 在 Linux 内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。 以上内容引自 Wikipedia,netfilter 做为一个内核框架,它可以在不同阶段将函数hook进网络栈,框架本身并不处理数据包 [^linux_fw]. ipta...
0x00 Introduction0x01 what is netlink?netlink 是一种用户进程和内核,或者进程之间的沟通机制,不能用于跨主机的沟通 ^manual. 0x02 the advantage of netlink?多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但是传统的 Unix 的 IPC (各类管道、消息队列、内存共享、信号量) 机制不能为进程与内...
0x00 NETLINK_ROUTErtnetlink基于netlink, 它允许 kernel 的路由表被读或者修改,它常被 kernel 用来和其他的子系统的用户态程序通讯。 0x01 introduction虽然被称为”Linux IPv4 routing socket”, 不过目前这个protocol已经支持了ipv6, 这个类型protocol主要提供了网络相关的信息。对于这个协议...
0x00 introduction这篇是对笔记是对 [^Understanding] 学习的记录,需要预备知识 [^layout], 其余 [^freebuf1] 与 [^freebuf2] 是阿里人对他的翻译整理补充,同时给正经的开发人员裂墙安利 [^source].学习这个主要目的是掌握堆运作的基本流程与可能存在的问题。这个可以为堆安全问题 (double free, unlink, u...
在操作系统教科书中进程是一个非常重要的概念,书中定义为“系统进行资源分配和调度的基本单位”,初步接触 Linux kernel 准备进程概念开始。 0x00 process descriptor在 Linux 中表示 PCB(进程控制块)的结构体叫 task_struct. task_strcut 相关的信息放在 include/linux/sched.h 中,而单独看 ...
0x00 foreword制作可启动软盘是为了弄明白 hurlex 项目里面那个软盘其制作过程 [^ubwiki], 后来想到启动是一个完成的过程便对这个笔记进行拓展,也就有了后面的软硬件启动过程。 0x01 install grub 0.97网上 wiki 太老,都是 base grub 1 的,所以使用 grub 0.97 节约时间,我系统是 fedora23 安装 grub 存在版本冲...