学习之余
文章平均质量分 55
rupert123456
在校小硕
展开
-
Linux检测硬盘坏道
使用SMART检测硬盘 SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及每一块硬盘(包括IDE、SCSI),在运行的时候都会将自身的若干参数记录下来,这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。硬盘运行了几千小时后,很多内在的物理参转载 2011-09-15 14:46:47 · 2208 阅读 · 0 评论 -
Linux Epoll介绍
Linux Epoll介绍和程序实例 1. Epoll 是何方神圣? Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘转载 2011-09-22 20:47:59 · 288 阅读 · 0 评论 -
poll调用
poll函数类似于select,但与select不同的是,poll不是为每个状态(可读、可写、异常)构造一个描述符集,而是构造一个pollfd结构数组。每个数组元素指定一个描述符标号以及所关心的状态。struct pollfd {int fd;short even原创 2011-09-23 10:14:45 · 344 阅读 · 0 评论 -
Linux内核中ioremap映射的透彻理解
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器转载 2011-09-27 15:03:58 · 248 阅读 · 0 评论 -
内核管理进程的虚拟地址空间
当进程需要内存时,内核首先会为进程分配一段虚拟地址,即所谓的Memory Region。由于进程虚拟地址的使用情况记录在vm_area_struct中,所有的vm_area_struct都按照顺序连接在一个链表上,因此寻找某大小的虚拟地址十分简单,扫描这个链表,碰到一块大于或等于转载 2011-10-14 10:00:22 · 410 阅读 · 0 评论 -
如何判断两个链表是否相交
判断两个链表是否相交,首先想到的办法估计是比较结点地址,但这个方法是行不通的,因为无法知道链表的规模。于是可以想到一个方法,反转一个链表A,然后从链表B的头结点开始访问,看是否能访问到原来链表A的头结点。原创 2011-10-08 14:42:20 · 316 阅读 · 0 评论 -
getopt()函数
在看libnemesi源码的时候,发现getopt()这个函数,先还以为是库中的函数,但怎么也看不到原型。后来查看APUE才明白原来还有这个系统调用可以用。到现在才明白之前做了好多无用功,不过还不算晚。 #includeint getopt(int argc,char * const argv[ ],const char * optstring);extern int opti原创 2011-11-01 16:54:26 · 253 阅读 · 0 评论 -
编译libnemesi库的pkg-config问题
开始以为 pkg-config没有装, 或者没有在 $PATH里面, 但是命令行下直接输入 pkg-config, 可以出来dorainm@coffee $ pkg-configMust specify package names on command linedorainm@coffee $ 版本是 0.20的dora转载 2011-11-02 17:46:09 · 571 阅读 · 0 评论