Linux中b设备是什么,linux 设备号以及mknod的使用

先来看看linux系统中设备管理的基本知识:

我们的linux操作系统跟外部设备(如磁盘、光盘等)的通信都是通过设备文件进行的,应用程序可以打开、关闭、读写这些设备文件,从而对设备进行读写,这种操作就像读写普通的文件一样easy。linux为不同种类的设备文件提供了相同的接口,比如read(),write(),open(),close()。

所以在系统与设备通信之前,系统首先要建立一个设备文件,这个设备文件存放在/dev目录下。其实系统默认情况下就已经生成了很多设备文件,但有时候我们需要自己手动新建一些设备文件,这个时候就会用到像mkdir, mknod这样的命令。

mknod 的标准形式为:       mknod DEVNAME {b | c}  MAJOR  MINOR

1,DEVNAME是要创建的设备文件名,如果想将设备文件放在一个特定的文件夹下,就需要先用mkdir在dev目录下新建一个目录;

2, b和c 分别表示块设备和字符设备:

b表示系统从块设备中读取数据的时候,直接从内存的buffer中读取数据,而不经过磁盘;

c表示字符设备文件与设备传送数据的时候是以字符的形式传送,一次传送一个字符,比如打印机、终端都是以字符的形式传送数据;

3,MAJOR和MINOR分别表示主设备号和次设备号:

为了管理设备,系统为每个设备分配一个编号,一个设备号由主设备号和次设备号组成。主设备号标示某一种类的设备,次设备号用来区分同一类型的设备。linux操作系统中为设备文件编号分配了32位无符号整数,其中前12位是主设备号,后20位为次设备号,所以在向系统申请设备文件时主设备号不好超过4095,次设备号不好超过2^20 -1。

问题1: 在linux下如何查看设备的主次设备号

当静态分配设备号时,需要查看系统中已经存在的设备号,从而决定使用哪个新设备号。可以读取/proc/devices文件获得设备的设备号。/proc/devices文件包含字符设备和块设备的设备号,如下所示:

[root@tom /]# cat /proc/devices /*cat命令查看/proc/devices文件的内容*/

Character devices:                  /*字符设备*/

1 mem

4 /dev/vc/0

7 vcs

13 input

14 sound

21 sg

Block devices:                      /*块设备*/

1 ramdisk

2 fd

8 sd

253 device-mapper

254 mdp

这个时候在 比如 ls -l /dev/input

crw-r----- 1 root root 13, 64 Feb 22 13:39 event0

crw-r----- 1 root root 13, 65 Feb 22 13:39 event1

crw-r----- 1 root root 13, 66 Feb 22 13:39 event2

crw-r----- 1 root root 13, 67 Feb 22 13:39 event3

crw-r----- 1 root root 13, 63 Feb 22 13:39 mice

crw-r----- 1 root root 13, 32 Feb 22 13:39 mouse0

crw-r----- 1 root root 13, 33 Feb 22 13:39 mouse1

明显 input设备下面主设备号是 13,而不同的event 或者 mice 使用的是次设备号 用以区分。

问题2:mknod的使用

mknod

定义:mknod - make block or character special files

语法:mknod /dev/ttyUSBn c Major Minor

1,n要等于次设备号Minor,且要小于主设备号Major.

2, c:面向字符设备(b:面向块设备,如:磁盘、软盘、磁带;其他设备基本都为字符设备).

删除的时候就像普通文件删除一样,使用rm命令即可

并且mknod 还可以创建管道文件爱呢,后面c和b的位置写成p即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法: 1.首先下载MATLAB 2017b linux版安装包,网上资源比较多,就不列举了。 下载完成后,在终端执行以下命令,挂载MATLAB安装镜像文件并安装。 sudo mkdir ./matlab sudo mount -t auto -o loop [YOUR_PATH]/Linux/R2017b_glnxa64.iso matlab/ cd ./matlab sudo ./install 2.安装过程会让选择安装方法,这里最好先断开网络,然后选择“使用文件安装密钥(不需要Internet连接)”。文件安装密钥在Crack目录下的Readme.txt里,是一个串20位的数字。相应地接下来还要选择Crack目录下.lic文件作为license。在安装过程要将“创建指向以下位置的MATLAB脚本的符链接”选项打勾。下面就等待安装完成就行了。 3.安装完成后,选择“不使用Internet手动激活”。需要输入许可证文件.lic的完整路径,这里选择Crack目录下的.lic就可以了。 4.将Crack/Linux文件夹下的libmwservices.so 复制到到 /usr/local/MATLAB/R2017b/bin/glnxa64。(最好在终端执行sudo cp [libmwservices.so的路径]/libmwservices.so /usr/local/MATLAB/R2017b/bin/glnxa64,直接复制可能会有权限问题)这时应该就可以通过sudo matlab打开MATLAB软件了。下两步是可选的。 5.(可选)安装MATLAB支持包'sudo apt-get install matlab-support'。间可选使用这款软件的用户以及重命名GCC库,原文教程说可以忽略。我把当前用户作为了使用这款产品的用户。 6.(建议选择)为了避免每次都用root权限打开matlab,通过sudo chown [your ubuntu username] -R ~/.matlab改变权限。最终直接在终端输入matlab就可以打开MATLAB了,至此完成了MATLAB在Ubuntu下的安装和破解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值