linux内核编程学习——草稿】的更多相关文章

第一章 1.1 文件IO c标准函数与系统函数的区别 FILE文件类型是一个结构体类型,包括文件描述符(inode).位置指针(f_pos).缓冲器(buffer)(8192byte). c标准文件函数都是带有缓冲区的,系统函数是不带缓冲区的.对于网络编程是不能有缓冲区的. c标准函数->应用层API->内核层API->驱动函数->设备 写一个hello到文件中:用c标准函数fopen和fwrite将hello写入文件,这之间首先将hello写入C标准缓冲区然后调用应用层API的w…
目录 . 进程相关数据结构 ) struct task_struct ) struct cred ) struct pid_link ) struct pid ) struct signal_struct ) struct rlimit . 内核中的队列/链表对象 ) singly-linked lists ) singly-linked tail queues ) doubly-linked lists ) doubly-linked tail queues . 内核模块相关数据结构 ) st…
source: https://www.kernel.org/doc/html/latest/process/coding-style.html translated by trav, travmymail@gmail.com 这是一篇阐述Linux内核编程代码风格的文档,译者以学习为目的进行翻译. 1 缩进 Tab的宽度是八个字符,因此缩进的宽度也是八个字符.有些异教徒想让缩进变成四个字符,甚至是两个字符的宽度,这些人和那些把 PI 定义为 3 的人是一个路子的. 注意:缩进的全部意义在于清晰…
Linux 系统编程 学习:00-有关概念 背景 系统编程其实就是利用系统中被支持的调度API进行开发的一个过程. 从这一讲开始,我们来介绍有关Linux 系统编程的学习. 知识 在进行Linux系统编程有关的开发之前,我们需要了解有关的概念. 进程(Process) 当一个进程创建以后,会被分配到一块虚拟内存中. 后面,我们还会知道:描述进程所涉及的所有信息和数据的那条记录叫做 PCB(process control block),每个进程有且仅有一个PCB. 通常,一个程序占用一块资源,不可…
Linux 系统编程 学习:01-进程的有关概念 与 创建.回收 背景 上一讲介绍了有关系统编程的概念.这一讲,我们针对 进程 开展学习. 概念 进程的身份证(PID) 每一个进程都有一个唯一的身份证号码,称之为进程号PID(Process Identity Number). 每一个进程都有其双亲进程,称之为父进程(或许称为双亲进程更贴切). 所有的进程都是祖先进程init的后代,除了init进程,每一个进程都有一个父进程. 通过 pstree 命令,可以清楚地看到系统中各个进程间的内在关系.…
Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道 背景 上一讲我们介绍了创建子进程的方式.我们都知道,创建子进程是为了与父进程协作(或者是为了执行新的程序,参考 Linux exec族函数解析 ) 我们也知道,进程之间的资源在默认情况下是无法共享的,所以我们需要借助系统提供的 进程间通信(IPC, InterProcess Communication) 有关的接口. 进程间通信 由于进程间的地址空间相对独立.进程与进程间不能像线程间通过全局变量通信,所以进程之间要交换数…
Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) System V IPC:消息队列.信号量.共享内存 Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍Unix IPC,中有关信号(Signal)的处理. 信号(Signal) Signal :进程给操作系统或进程的某种信息,…
Linux 系统编程 学习:04-进程间通信2:System V IPC(1) 背景 上一讲 进程间通信:Unix IPC-信号中,我们介绍了Unix IPC中有关信号的概念,以及如何使用. IPC的方式通常有: Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) System V IPC:消息队列.信号量.共享内存 BSD套接字:Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍System V IPC:消息队列.共享内存.信号量(下一讲) 知识…
Linux 系统编程 学习:05-进程间通信2:System V IPC(2) 背景 上一讲 进程间通信:System V IPC(1)中,我们介绍了System IPC中有关消息队列.共享内存的概念,以及如何使用. todo: shm 有关例程 IPC的方式通常有: Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) System V IPC:消息队列.信号量.共享内存 BSD套接字:Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍System…
Linux 系统编程 学习:006-基于socket的网络编程1:有关概念 背景 上一讲 进程间通信:System V IPC(2)中,我们介绍了System IPC中关于信号量的概念,以及如何使用. 这一讲我们来讨论"BSD socket(简称socket)",作为Linux中进程间通信的最后一种方式.实际上,socket可以跨主机通信. 本来文章标题应该以"进程间xxx"为字眼的,但是在开发中,我们更多提及"基于socket的网络编程". 知…