Linux内核代码分析(个人笔记)
清风浅醉
SSD
展开
-
函数1、Linux下的打印函数printk
从今天开始好好看看Linux的内核代码,听说学习代码最好的老师就是看内核中的代码,学习内核中代码的编写习惯,我打算整理一些学习笔记来督促自己学习,可恨自己太懒,呵呵呵。只打算学习内核代码,所以从源码的start_kernel函数看起,遇见不错的函数就记录两笔。至于详尽的函数代码分析这里不是重点,这里我们只分析函数用法中的亮点。 第一个函数:printk 源码:重点分析多参数函数用法。 as原创 2015-01-30 20:00:46 · 733 阅读 · 0 评论 -
4、Linux源代码中的关键字解释汇集
1、asmlinkage 函数定义前加宏asmlinkage ,表示这些函数通过堆栈而不是通过寄存器传递参数。 gcc编译器在汇编过程中调用c语言函数时传递参数有两种方法:一种是通过堆栈,另一种是通过寄存器。缺省时采用寄存器,假如你要在你的汇编过程中调用c语言函数,并且想通过堆栈传递参数,你定义的c函数时要在函数前加上宏asmlinkage。 定义:在/usr/include原创 2015-04-22 11:03:49 · 816 阅读 · 0 评论 -
5、Linux进程编程设计(知识汇集 清风浅醉)
1、进程概念 进程是一个动态实体,是程序的一次执行过程,是操作系统资源分配的基本单位。 线程基本上不拥有系统资源,它与同属于一个进程的其他线程共享进程拥有的全部资源。 Linux下可以通过ps或pstree查看当前系统中的进程。 2、进程标识 PID: 进程控制符(PID),英文全称为Process Identifier。也常被称为进程标识符。顾名思义,它是各进程的身份标识,原创 2015-04-22 14:53:08 · 495 阅读 · 0 评论 -
6、Linux线程编程设计
1、线程相对于进程的优点 a、在多进程情况下,创建一个新的线程花费时间少。 b、在系统调度方面,线程的切换速度快。 c、在通信机制方面,进程间的数据空间相互独立,通信需要专门的通信方式,需要操作系统的参与。线程共享数据空间,通信不用通过操作系统。 d、线程可以提高应用程序的相应速度,耗时线程用完时间片后,让出CUP,其他操作容易得到相应。 e、线程可以提高多处理器效率,让多个线程在不同的原创 2015-04-24 16:16:30 · 404 阅读 · 0 评论 -
8、linux进程间的通信方式
1、进程间通信 (1)、管道(pipe):半双工,亲愿关系间通信(父子进程或兄弟进程关系叫亲缘关系)。 (2)、有名管道(named pipe):半双工,容许无亲缘关系进程间的通信。 (3)、信号量(semophore):计数器,控制多个进程对共享资源的访问,进程间以及同一进程内不同线程间的同步手段。 (4)、消息队列(message queue):消息的链表,传递信息量大。原创 2015-05-06 13:56:28 · 279 阅读 · 0 评论 -
10、套接字socket的编程(学习笔记)
1、套接字 socket是最通用的网络通信应用程序的开发接口。linux的网络编程就是套接字编程。 套接字编程的头文件: #include #include #include 2、套接字地址结构 1)套接字地址结构: struct sockaddr{ //不用此结构体编程 unsigned short sa_family;原创 2015-05-13 10:10:17 · 608 阅读 · 0 评论 -
17、gcc的__builtin_函数介绍
原文:http://blog.csdn.net/jasonchen_gbd/article/details/44948523 GCC提供了一系列的builtin函数,可以实现一些简单快捷的功能来方便程序编写,另外,很多builtin函数可用来优化编译结果。这些函数以“__builtin_”作为函数名前缀。 很多C标准库函数都有与之对应的GCC builtin函数,例如strcpy()有对应的_转载 2016-12-16 11:57:25 · 1520 阅读 · 0 评论