关闭

linux内核编程--2自定义内核与用户态通信方式(sock选项)

1.   简介 前篇博文(linux内核编程一:模块的装载和卸载)中我们已经知道了自定义内核模块的装载和卸载。由于linux内核本身非常强大,编写自定义的内核模块往往是为了实现我们独特的功能或需求,这经常涉及到内核态与用户态之间通信。Linux本身提供丰富的系统调用(如ioctl、open)来实现用户态与内核态交互,此文基于getsockopt系统调用,介绍一种简单的用户态与内核态通信方法:增加...
阅读(7) 评论(0)

<深入linux内核架构>--第五章 锁与进程间通信

内容简介:主要讲解了Linux各个独立进程间(或线程间)相互通信的机制(主要是System V机制),由于涉及到进程间资源共享,引入资源保护问题,也就是Linux的锁。 5.1 控制机制          首先通过一个竞态条件的例子引入需要对锁的需求,然后介绍了Linux系统锁控制机制:临界区。一种典型的使用临界区机制的锁方法:信号量。 5.2 内核锁机制          讲解了Linu...
阅读(17) 评论(0)

linux内核编程一:模块的装载和卸载

1.   简介 linux模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。 也就是说:模块就是整个内核的一部分。但是跟C程序中函数不一样的一点是,内核模块可以在它所认为适当的时候,插入到内核或者从内核中删除...
阅读(21) 评论(0)

《深入理解计算机系统》----总结

第一章     计算机系统漫游 主要内容:主要是全面精炼的概括了本书的内容,也就是“计算机系统概述”,包括: a)      解释计算机系统中“信息”的概念:就是二进制位; b)      解释源程序(以C源程序为例)到可执行程序的过程:    预处理 → 编译 → 汇编 → 链接 c)      通过可执行程序被shell加载执行流程,讲解了计算机的硬件组成:  总线、I/O设备、主...
阅读(15) 评论(0)

Linux开机自启动/服务注册的几种方式:

1. 原理 假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。 1.1 加载内核 LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器...
阅读(55) 评论(0)

ubuntu14.04下安装配置使用openCV3.0

http://www.cnblogs.com/lyutian/p/4425956.html 请测可用。 在第三步中,可以将  -D WITH_OPENGL=ON 选项去掉...
阅读(72) 评论(0)

一个poll函数使用的例子

一个poll函数使用的例子:(代码抄自《UNIX网络编程》P147),for循环嵌套很深,例子很一般。此处仅做记录代码使用。 int main(int argc, char **argv) { INT iConfd = 0; INT iReadLen = 0; INT iMaxFd = 0; INT iMaxIndex = 0; struct pollfd as...
阅读(103) 评论(0)

一个select函数使用的例子

一个select函数使用的例子:(代码抄自《UNIX网络编程》P141),for循环嵌套很深,例子很垃圾,好像还有一个bug,此处仅做记录代码使用。 int main(int argc, char **argv) { INT iConfd = 0; INT iReadLen = 0; INT iMaxFd = 0; INT iMaxIndex = -1; INT...
阅读(203) 评论(0)

打印动态链接时进程堆栈的初始化信息(摘自<程序员的自我修养>)

进程在初始化时,堆栈里面保存了关于进程执行环境和命令行参数等信息。此外,还保存了动态链接器所需要的辅助信息数组。辅助信息的格式如下数组: typedef struct { uint32_t a_type; union { uint32_t a_val; }a_un; }Elf32_auxv_t; 以下小程序可以堆栈的初始化信息: #incl...
阅读(161) 评论(0)

snprintf连续打印封装:可变参数的宏定义

问题来源: 假设有个结构有很多成员,需要根据成员的不同类型,将所有成员封装在一个CHAR类型的buf中输出。 例: 有结构体: typedef struct CON_PRINTF { CHAR szElem1[BUF_LEN_20]; CHAR szElem2[BUF_LEN_100]; INT iIntElem; }CON_PRINTF_ST...
阅读(507) 评论(0)
53条 共6页1 2 3 4 5 ... 下一页 尾页