认识块设备
1. 存储设备
在嵌入式中,常见的存储设备有SD卡、eMMC、sata硬盘、U盘、NVMe盘等。其中SD卡和eMMC使用的是SD协议,sata盘使用的是sata协议(包括机械硬盘和固态硬盘),U盘使用的是USB协议,NVMe盘使用的是NVMe协议。这些存储设备的数据读写并不像字符设备那样是字节流形式,而是块形式,也就是以一个个扇区来进行访问,一个扇区的典型大小为512字节。
另外厂商对于设备容量的计算方法和计算机中计算容量方法是不一样的,比如一个硬盘厂商宣称它的容量是500GB,是按照1000字节单位来算的,也就是实际容量是500 * 1000 * 1000 *1000字节,而计算机中识别设备容量是按照1024字节单位来算的,所以一个500GB硬盘在计算机中识别出来大约是465.66GB,emmm......
2. SylixOS块设备位置
SylixOS下的块设备一般创建在 /dev/blk 目录下,各类协议设备创建出的名字一般如下:
- SD协议类设备名字为sdcard-0、sdcasrd-1等。这里的0和1并不是指分区,而是代表一个盘(控制器),和Linux不同的是,在SylixOS中不会为各个分区再单独创建设备文件。
- sata协议类设备名字为hdd-0,、hdd-1等。
- U盘设备名字为udisk-0、udisk-1等。
- NVMe协议类设备名字为nvme-0、nvme-1等。
[root@sylixos:/dev/blk]# ll brw-r--r-- root root Sat Jan 01 08:00:00 2000 256MB, sdcard-0 total items: 1 [root@sylixos:/dev/blk]#
3. SylixOS块设备挂载位置
我们在应用层使用块设备都是通过读写某个目录下的文件方式来实现的,所以需要将块设备挂载到系统的某个目录下来使用。SylixOS一般将设备的各个分区挂载到 /media 目录下:
[root@sylixos:/root]# cd /media/ [root@sylixos:/media]# ll drwxrwxrwx root root Sat Jan 01 08:00:04 2000 sdcard0/ total items: 1 [root@sylixos:/media]#
另外在根目录下的比如apps、lib这些目录,其实真正的位置都在 /media 下的某个分区里,根目录下的位置只是一个软连接,方便使用而已:
[root@sylixos:/media]# cd / [root@sylixos:/]# ll lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 apps -> /media/sdcard0/apps lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 bin -> /media/sdcard0/bin lrw-rw-rw- root root Sat Jan 01 08:00:00 2000 boot -> /media/sdcard0 lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 etc -> /media/sdcard0/etc lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 home -> /media/sdcard0/home lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 lib -> /media/sdcard0/lib lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 qt -> /media/sdcard0/qt lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 root -> /media/sdcard0/root lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 sbin -> /media/sdcard0/sbin lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 tmp -> /ram/tmp lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 usr -> /media/sdcard0/usr lrwxr-xr-- root root Sat Jan 01 08:00:00 2000 var -> /media/sdcard0/var drwxr-xr-- root root Sat Jan 01 08:00:00 2000 ram/ drw-rw-rw- root root Sat Jan 01 08:00:00 2000 yaffs2/ drw-r--r-- root root Sat Jan 01 08:00:00 2000 proc/ drwxr-xr-- root root Sat Jan 01 08:00:00 2000 media/ drwxr-xr-- root root Sat Jan 01 08:00:00 2000 mnt/ drwxr-xr-- root root Sat Jan 01 08:00:00 2000 dev/ total items: 18 [root@sylixos:/]#
评论