随笔分类 -  Linux内核

Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 11:00 AlanTu 阅读(1053) 评论(0) 推荐(0) 编辑

内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:58 AlanTu 阅读(1589) 评论(0) 推荐(0) 编辑

X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:56 AlanTu 阅读(1324) 评论(0) 推荐(0) 编辑

进程间通信机制(管道、信号、共享内存/信号量/消息队列)、线程间通信机制(互斥锁、条件变量、posix匿名信号量)
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:53 AlanTu 阅读(1434) 评论(0) 推荐(0) 编辑

时间系统、进程的调度与切换
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:50 AlanTu 阅读(2824) 评论(0) 推荐(0) 编辑

进程控制块PCB结构 task_struct 描述
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:49 AlanTu 阅读(1261) 评论(0) 推荐(0) 编辑

中断机制和中断描述符表、中断和异常的处理
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:47 AlanTu 阅读(1577) 评论(0) 推荐(0) 编辑

80386的分段机制、分页机制和物理地址的形成
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:46 AlanTu 阅读(881) 评论(0) 推荐(0) 编辑

80386的各种寄存器一览
摘要:注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早 阅读全文

posted @ 2018-02-26 10:42 AlanTu 阅读(2532) 评论(0) 推荐(0) 编辑

linux内核数据结构之kfifo
摘要:1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟 阅读全文

posted @ 2018-02-25 11:42 AlanTu 阅读(672) 评论(0) 推荐(0) 编辑

linux内核数据结构之链表
摘要:1、前言 最近写代码需用到链表结构,正好公共库有关于链表的。第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域。后来看代码注释发现该代码来自linux内核,在linux源代码下include/Lish.h下。这个链表具备通用性,使用非常方便。只需要在结构定义一个 阅读全文

posted @ 2018-02-25 11:28 AlanTu 阅读(3194) 评论(0) 推荐(0) 编辑

linux下core dump
摘要:1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后 阅读全文

posted @ 2018-02-25 11:14 AlanTu 阅读(13052) 评论(0) 推荐(0) 编辑

RCU介绍
摘要:RCU原理: RCU(Read-Copy Update),顾名思义就是读-拷贝修改,它是基于其原理命名的。对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重 阅读全文

posted @ 2018-02-25 11:11 AlanTu 阅读(2300) 评论(0) 推荐(0) 编辑

linux系统调用sysconf
摘要:1、前言 当前计算机都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程。linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数。 2、sysconf 函数 man一下sysconf,解释这个函数用来获取系统执行的配置信息。例如 阅读全文

posted @ 2018-02-24 15:03 AlanTu 阅读(563) 评论(0) 推荐(0) 编辑

linux可重入、异步信号安全和线程安全
摘要:一 可重入函数 当一个被捕获的信号被一个进程处理时,进程执行的普通的指令序列会被一个信号处理器暂时地中断。它首先执行该信号处理程序中的指令。如果从信号处理程序返回(例如没有调用exit或longjmp),则继续执行在捕获到信号时进程正在执行的正常指令序列(这和当一个硬件中断发生是所发生的事情相似。) 阅读全文

posted @ 2018-02-24 08:53 AlanTu 阅读(1549) 评论(0) 推荐(0) 编辑

epoll讲解
摘要:首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数 阅读全文

posted @ 2018-02-23 16:25 AlanTu 阅读(278) 评论(0) 推荐(0) 编辑

进程上下文与中断上下文
摘要:1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。 2、用户空间与内核空间 我们知道现在操作系统都是采 阅读全文

posted @ 2018-02-23 10:38 AlanTu 阅读(2306) 评论(0) 推荐(0) 编辑

linux page buffer cache深入理解
摘要:Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1 2 3 4 5 61 total u 阅读全文

posted @ 2018-02-22 22:39 AlanTu 阅读(962) 评论(0) 推荐(0) 编辑

Linux内核(17) - 高效学习Linux驱动开发
摘要:这本《Linux内核修炼之道》已经开卖(网上的链接为: 卓越、当当、china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释 阅读全文

posted @ 2018-02-14 20:28 AlanTu 阅读(1152) 评论(0) 推荐(0) 编辑

Linux内核(16) - 高效学习Linux内核
摘要:世界悲结束了,章鱼哥也退役了,连非诚勿扰中的拜金女也突然的少了很多。这本《Linux内核修炼之道》在卓越、当当、china-pub上也已经开卖了,虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量 阅读全文

posted @ 2018-02-14 20:26 AlanTu 阅读(456) 评论(0) 推荐(0) 编辑

导航