seuge

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年4月24日

摘要: 驱动模块需要完成的功能:注册设备添加文件操作函数与ops结构绑定注册设备的具体过程是先向系统申请一个设备号,可以注册一个特定的设备号也可以由系统动态分配。一般使用动态分配,但是添加模块的过程只是向/proc/devices文件中添加了设备的信息,最后还得从从devices文件中cat 出设备的设备号,然后在手动在/dev中添加设备,mknod /dev/key c N 0。访问设备就是通过/dev 的文件进行访问的,访问过程通过设备号找到设备关联的驱动程序,设备号是架起设备和驱动之间的桥梁。也可以在模块内部直接完成/dev 里设备添加的过程 ,调用函数device_create(..)。有了设 阅读全文
posted @ 2012-04-24 21:38 seuge 阅读(429) 评论(0) 推荐(0)

2011年11月30日

摘要: 本来是想先写内存寻址的,但是前几天在看ldd3的虚拟字符设备驱动牵涉到了虚拟文件系统,之前只看了有关内存和进程管理方面的,所以就先写文件系统吧。 首先文件系统到底是个什么东西呢,文件系统就像一个协议,规定文件的操作方法与存放结构。文件系统是与分区对应的。我们刚买回来的存储设备一般是没有文件系统的,也就仅仅是一个空白的数据载体,通常需要格式化也就是指定文件系统。文件系统在内核中是与超级块(superblock)对应的,在下面会提到。 由于存在很多种文件系统,所以在linux中为了使各个文件系统能够和谐共处,提出了VFS也就是虚拟文件系统。这个vfs的含义是不管你是什么文件系统,我在调用r... 阅读全文
posted @ 2011-11-30 21:10 seuge 阅读(194) 评论(0) 推荐(0)

摘要: 研究生生活和想象中的果断不一样啊,第一学期导师也没给啥任务。基本全是自由时间啊,闲着也没劲,于是决定看下linux内核,见识一下这个传说中的由全世界的内核黑客大神们共同开发的巨兽~~~ 以前没接触过操作系统的原理,也不太清楚内核的确切含义。看过书之后对内核有了一番认识。内核首先是一个程序,只不过这个程序权利比较大,随之带来的任务也比较重,因为啥都归它管。内核好比是中央政府,而用户进程就是底下的地方政府,用户进程申请资源以及它本身都要得到内核的批准和调度。这只是打个比方,内核要管的远远不止这些。 看了两周后发现,整个内核设计就是围绕着资源的管理来进行的。这里的资源指的是内存,cpu等。内... 阅读全文
posted @ 2011-11-30 20:07 seuge 阅读(240) 评论(0) 推荐(0)

2011年11月25日

摘要: csdn的账号密码忘记了,悲剧。当时用的马甲邮箱注册的,找也找不回来了。。 既然如此,就来cnblog混了。 没怎么写过blog,先熟悉下。刚刚正好看到一篇文章说面试招人的时候好多人连反转单向链表都不会。试着写了两行,正好用来看看怎么发代码的。 1 node *reverselist(node *head) 2 { 3 node *temp,*current,*tail; 4 tail=NULL; 5 for(current=head;current!=NULL;current=temp) 6 { 7 temp=current->ne... 阅读全文
posted @ 2011-11-25 17:29 seuge 阅读(213) 评论(0) 推荐(0)