为什么要创建设备节点
Ⅰ 安装节点设备的好处
"节点"一概念被应用于许多领域。节点,通常来说,是指局部的膨胀(像一个个绳回结一样),亦或是一个交答汇点。 电力学中,节点是塔的若干部件的汇合点。机械工程学中,节点是在一对相啮合的齿轮上,其两节圆的切点。在网络拓扑学中,节点是网络任何支路的终端或网络中两个或更多支路的互连公共点。生化工程中,代谢网络分流处的代谢产物称为节点。在程序语言中,节点是XML文件中有效而完整的结构的最小单元。在作图软件MAYA中,节点是最小的单位。每个节点都是一个属性组。节点可以输入,输出,保存属性。
Ⅱ 根文件系统 为什么要手动建立节点文件 console
根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了一些复杂性。我们需要清楚的了解根文件系统的基本结构,以及细心的选择所需要的系统库、内核模块和应用程序等,并配置好各种初始化脚本文件,以及选择合适的文件系统类型并把它放到实际的存储设备的合适位置。
Linux的根文件系统以树型结构组织,包含内核和系统管理所需要的各种文件和程序,一般说来根目录”/”下的顶层目录都有一些比较固定命名和用途。
下面列出了一个Linux根文件系统中的比较常见的目录结构:
/bin 存放二进制可执行命令的目录
该目录下存放所有用户都可以使用的、基本的命令,这些命令在挂接其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。
/bin目录下常用的命令有:cat,chgrp,chmod,cp,ls,sh,kill,mount,umount,mkdir,m knod,[,test等“[”命令其实就是test命令,我们在利用Busybox制作根文件系统时,在生成的bin目录下,可以看到一些可执行的文件,也就是可用的一些命令。
/dev 存放设备文件的目录
该目录下存放的是设备文件,设备文件是Linux中特有的文件类型,在Linux系统下,以文件的方式访问各种设备,即通过读写某个设备文件操作某个具体硬件。比如通过"dev/ttySAC0"文件可以操作串口0,通过"/dev/mtdblock1"可以访问MTD设备的第2个分区。
/etc 存放系统管理和配置文件的目录
该目录下存放着各种配置文件,对于PC上的Linux系统,/etc目录下的文件和目录非常多,这些目录文件是可选的,它们依赖于系统中所拥有的应用程序,依赖于这些程序是否需要配置文件。在嵌入式系统中,这些内容可以大为精减。
/home 用户主目录,比如用户user的主目录就是/home/user,可以用~user表示
用户目录,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。
/lib 存放动态链接共享库的目录
该目录下存放共享库和可加载(驱动程序),共享库用于启动系统。运行根文件系统中的可执行程序,比如:/bin /sbin 目录下的程序。
/sbin存放系统管理员使用的管理程序的目录
该目录下存放系统命令,即只有管理员能够使用的命令,系统命令还可以存放在/usr/sbin,/usr/local/sbin目录下,/sbin目录中存放的是基 本的系统命令,它们用于启动系统,修复系统等,与/bin目录相似,在挂接其他文件系统之前就可以使用/sbin,所以/sbin目录必须和根文件系统在同一个分区中。
/sbin目录下常用的命令有:shutdown reboot fdisk fsck等,本地用户自己安装的系统命令放在/usr/local/sbin目录下。
/tmp 公用的临时文件存储点
用于存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。
/root 系统管理员的主目录
根用户的目录,与此对应,普通用户的目录是/home下的某个子目录。
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
用于临时挂载某个文件系统的挂接点,通常是空目录,也可以在里面创建一引起空的子目录,比如/mnt/cdram /mnt/hda1 。用来临时挂载光盘、硬盘。
/proc 虚拟文件系统,可直接访问这个目录来获取系统信息。
这是一个空目录,常作为proc文件系统的挂接点,proc文件系统是个虚拟的文件系统,它没有实际的存储设备,里面的目录,文件都是由内核临时生成的,用来表示系统的运行状态,也可以操作其中的文件控制系统。
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr目录的内容可以存在另一个分区中,在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的是共享、只读的程序和数据,这表明/usr目录下的内容可以在多个主机间共享,这些主要也符合FHS标准的。/usr中的文件应该是只读的,其他主机相关的,可变的文件应该保存在其他目录下,比如/var。/usr目录在嵌入式中可以精减。
/var 某些大文件的溢出区
与/usr目录相反,/var目录中存放可变的数据,比如spool目录(mail,news),log文件,临时文件。
---------------------------------------------------------------------
一、移植环境:
1、 Ubuntu 10.10发行版
2、 u-boot.bin
3、 目标机:FS_S5PC100平台
4、 交叉编译器 arm-cortex_a8-linux-gnueabi-gcc
Ⅲ 为什么一定要设置带头结点
头指针指向头结点,抄如果没有头节点袭,则指向第一个节点,如果你要删除第一个节点,就需要移动头指针,改变头指针的指向,而删除其他节点,则不需要改变头指针,而是改变其前一个节点的指针,所以删除的时候会因为位置的不同,出现了两种不同的情况,为了使两种情况统一,所以增加了头结点,这样删除第一个节点和删除其他节点没有什么区别。
插入时也是一样的。
你可以没有头结点,这个并不是必须的,但是操作时要仔细考虑各种情况。
Ⅳ LINUX设备节点
是这样来的,之所以有的时候不需源要你自己创建节点,因为有程序自动创建。
class_create和device_create,具体用法很简单,你自己查查就知道了。
还有,mknod都是在刚开始学习的时候用到,难道你以后写驱动都要手动建立设备节点吗?
Ⅳ 设备节点到底是个啥
首先,类制unix系统对设备的访问都是基于文件形式的。
在类unix系统中,你要访问一个硬件设备。一般和访问一个普通文件差不多。
因此,/dev下的设备节点就被作为这样的一类特殊文件来存在。
在驱动程序中同样需要实现各种文件的操作调用,如open,release,read,write,ioctl等。
应用程序通过open("/dev/xxx",O_RDWR)这样的代码来打开设备。
驱动程序通过这样的节点向应用程序提供各种服务:如read,write,ioctl等
Ⅵ 请问linux2.6内核驱动程序的自动创建设备节点的 class_create device_create 创建设备问题。
是这么回事,当你自己要写一个字符设备或者看别人写的是字符设备时,要定义一个字符设回备的结构体答struct cdev{/*里面是一些字符设备的相关属性,包括file_operations结构体,设备号等等*/},然后调用register_chrdev_region(),申请设备号,再用cdev_add()想内核注册设备,这里,内核就知道你要注册的就是字符设备了,同理,如果是块设备的话用register_blkdev()来注册块设备,经过一系列的初始化后添加add_disk(),内核也就知道你添加的是块设备了
Ⅶ 虚拟机中虚拟设备节点是什么意思
如果你自己抄组装过电脑就袭明白这个是什么意思!
节点的意思,就是你这个硬盘设备是接到对应哪种接口的那个ID上。
老的SCSI设备默认有7个id,拓展版本有15个id,默认SCSI控制卡占用id7,其他的都可以挂硬盘。
SCSI 0:0,表示第一通道的第一个id,或者说是第一通道的第一个SCSI设备。
老的PATA并行IDE接口,也是一样,一条线上分master主设备和slaver从设备两个端口。
IDE 0:0 ,表示第一个IDE通道的主设备
Ⅷ Linux如何创建设备节点
mknod 设备节点名称 设备类型 主设备号 次设备号,例如:mknod memdev c 260
0,创建好之后会在/dev目录下看到一个字符设备
Ⅸ 如何自动创建设备节点
是这么回事,当你自己要写一个字符设备或者看别人写的是字符设备时回,要定义一答个字符设备的结构体struct cdev{/*里面是一些字符设备的相关属性,包括file_operations结构体,设备号等等*/},然后调用register_chrdev_region(),申请设备号,再用cdev_add()想内核注册设备,这里,内核就知道你要注册的就是字符设备了,同理,如果是块设备的话用register_blkdev()来注册块设备,经过一系列的初始化后添加add_disk(),内核也就知道你添加的是块设备了
