海风林影

一个代码可以创造一个世界,也能毁灭一个世界~

Linux 内核版本命名

Linux 内核版本命名在不同的时期有其不同的规范,我们熟悉的也许是 2.x 版本奇数表示开发版、偶数表示稳定版,但到 2.6.x 以及 3.x 甚至将来的 4.x ,内核版本命名都不遵守这样的约定。本文就简单总结一下关于 Linux 内核版本号那点事: Linux 内核版本号命名四个不同的阶段...

2013-11-13 09:25:54

阅读数:14217

评论数:0

Linux 内核进程管理之进程ID

Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一。该数据结构在内核文件 include/linux/sched.h 中定义,在Linux 3.8 的内...

2013-10-03 17:01:32

阅读数:2416

评论数:1

Linux Kernel代码艺术——数组初始化

前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑: const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { /* * Smells like a compiler bu...

2013-09-26 15:18:14

阅读数:2624

评论数:0

Linux 下系统调用的三种方法

系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口。当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系统调用函数。下面介绍Linux 下三种发生系统调用的方法: 通过 glibc 提供的库函数 gl...

2013-09-22 12:16:20

阅读数:1790

评论数:1

Linux Kernel代码艺术——系统调用宏定义

我们习惯在SI(Source Insight)中阅读Linux内核,SI会建立符号表数据库,能非常方便地跳转到变量、宏、函数等的定义处。但在处理系统调用的函数时,却会遇到一些麻烦:我们知道系统调用函数名的特点是sys_×××,例如我们想找open函数的内核系统调用代码,在SI提供的符号表中搜索sy...

2013-09-19 21:51:21

阅读数:4187

评论数:3

内核探测工具systemtap简介

systemtap是内核开发者必须要掌握的一个工具,本文我将简单介绍一下此工具,后续将会有系列文章介绍systemtap的用法。 什么是systemtap 假如现在有这么一个需求:需要获取正在运行的 Linux 系统的信息,如我想知道系统什么时候发生系统调用,发生的是什么系统调用等这些信息,有...

2013-09-17 19:17:53

阅读数:1518

评论数:0

Linux吃掉我的内存

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能。而当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统...

2013-07-16 22:42:50

阅读数:1640

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭