原文地址:http://www.cnblogs.com/bastard/archive/2012/10/19/2731107.html 通常实现双向链表的数据结构: struct list_node1{ struct list_node1 *next,*prev; type1 m1; type2 m2; }; struct list_node2{ struct list_node2 *next,*prev; type1 m1; type2 m2; }; …… 对于每一种数据结构都定义了其特定的实…
Linux 内核list_head 学习(一) http://www.cnblogs.com/zhuyp1015/archive/2012/06/02/2532240.html 在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head.虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用,有点类似于C++的继承机制(希望有机会写篇文章研究一下C语言的面向对象机制…
在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head.虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用,有点类似于C++的继承机制(希望有机会写篇文章研究一下C语言的面向对象机制).下面就是kernel中的list_head结构定义: struct list_head { struct list_head *next, *prev; }; #define…
1.前言 Linux内核中有大量的驱动,而这些驱动往往具有类似的结构,根据面向对象的思想,可以将共同的部分提取为父类,而这个父类就是kobject,kobject结构体中包含了大量设备的必须信息,而三大类设备驱动都需要包含这个kobject结构,运用面向对象的思想来看问题,也就是继承来自kobject,一个kobject对象往往就对应sysfs中的一个目录,kobject是组成设备模型的基本结构,kobject需要处理的基本任务有如下: (1)对象的引用计数 当一个内核对象被创建时,不可能知道对…
此文引用自51CTO博客,博主snail_hf,原文地址<Linux系统目录详解(全而易懂)> 目录结构 / 根目录,处于Linux系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. /bin bin是Binary(二进制)的缩写,存放着Linux系统命令. /dev dev是Device的缩写.存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的. (注意:设备文件不是驱动程序.过去,在添加新磁盘或设备后,往往需要手动增加设备…
前一篇文章讨论了list_head 结构的基本结构和实现原理,本文主要介绍一下实例代码. 自己如果想在应用程序中使用list_head 的相应操作(当然应该没人使用了,C++ STL提供了list 用起来貌似更方便), 在应用程序中需要包含自己的 "list.h" 头文件: /* 注:这个list.h 是为了配合示例程序而建的,内容来自:linux/include/linux/list.h 和相关文件 */ #ifndef _LINUX_LIST_H #define _LINUX_LI…
Linux操作系统基本结构介绍 Linux系统一般有4个主要部分:内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统. 1. 内核 内核是操作系统的核心,具有很多最基本功能,如虚拟内存.多任务.共享库.需求加载.可执行程序和TCP/IP网络功能.Linux内核的模块分为以下几个部分:存储管理.CPU和进程管理.文件系统.设备管理和驱动.网络通信.系统的初始化和系统调用等. 1. 内存管理 对任何一台计算机而言…
Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要. 使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin.boot.dev 等.同时,各一级目录下还含有很多子目录(称为二级…
一.前言 Linux内核链表结构是一种双向循环链表结构,与传统的链表结构不同,Linux内核链表结构仅包含前驱和后继指针,不包含数据域.使用链表结构,仅需在结构体成员中包含list_head*成员就行:链表结构的定义在linux/list.h头文件. 二.链表初始化 struct list_head…
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件 在 windows 上删除文件时,如果文件还在使用中,会提示一个错误:但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还是在写入,都可以被 rm 简单地删除 :-< 不过,rm 删除时并非是被真正地擦除,特别是当文件还在被进程打开时,是可以完整地恢复的. linux 的每个文件对应一个 inode 号,它有两个计数 i_count (内存引用计数,当前使用这个文件的进程数量) 和 i_nlink (磁盘引用计数,硬链…