每一种IO设备都会在cpu上注册为一种中断信号,实现不同的通知。
I/O Ports: IO设备地址。是对IO设备的一种识别机制
设备文件类型分为块设备和字符设备。
linux上将一切硬件设备抽象为文件,这样就可以面向文件编程
设备文件:关联到一个设备的驱动程序,进而可以与之相对应的硬件设备进行通信。驱动将对文件的read和write操作转化为相对应的电气操作。
设备号码:标志不同的设备。主设备号:标识不同类型的设备。次设备号:标识同一类型中的不同的设备。
[root@localhost ~]# ll /dev/ 总用量 0 crw-rw----. 1 root video 10, 175 8月 24 06:46 agpgart drwxr-xr-x. 2 root root 640 8月 24 06:46 block drwxr-xr-x. 2 root root 80 8月 24 06:46 bsg drwxr-xr-x. 3 root root 60 8月 24 06:46 bus lrwxrwxrwx. 1 root root 3 8月 24 06:46 cdrom -> sr0 lrwxrwxrwx. 1 root root 3 8月 24 06:46 cdrw -> sr0 drwxr-xr-x. 2 root root 2840 8月 24 06:46 char crw-------. 1 root root 5, 1 8月 24 06:46 console lrwxrwxrwx. 1 root root 11 8月 24 06:46 core -> /proc/kcore drwxr-xr-x. 3 root root 60 8月 24 06:46 cpu crw-rw----. 1 root root 10, 61 8月 24 06:46 cpu_dma_latency crw-rw----. 1 root root 10, 62 8月 24 06:46 crash drwxr-xr-x. 6 root root 120 8月 24 06:46 disk brw-rw----. 1 root disk 253, 0 8月 24 06:46 dm-0 brw-rw----. 1 root disk 253, 1 8月 24 06:46 dm-1 crw-rw----. 1 root audio 14, 9 8月 24 06:46 dmmidi
从中可以看出主设备号和次设备号。
设备文件只有元数据,而没有数据。
不同的硬件设备之间要通信,要有不同的传输设备。
在传输设备的两端必须要有相对应的控制设备和接口。
硬盘接口类型:
并口设备
IDE
SCSI
串口设备
STAT
SAS
USB
硬盘/dev/sd
不同设备:a-z
/dev/sda
/dev/sdb
同一设备的不同分区:
/dev/sda1 /dev/sda2
brw-rw----. 1 root disk 8, 0 8月 24 06:46 sda brw-rw----. 1 root disk 8, 1 8月 24 06:46 sda1 brw-rw----. 1 root disk 8, 2 8月 24 06:46 sda2
机械式硬盘:
track:磁道
cylinder:柱面(相同的磁道组成扇区)
secotor:扇区
每个扇区基本都是512字节
如何分区:
每个盘片都有两面,每面都有磁头。
不同的盘片对于磁头来说却是在同一个柱面上,所以分区是以柱面为基准的。
越靠外的柱面读写的效率越高。
从物理上来讲磁盘是一个完整的设备。所以需要有地方记录分区的信息。
这个信息明显不可以保存在某一个分区之上。
所以硬盘的第0柱面第0磁道的第0扇区被预留出来,不属于任何扇区。
这512bytes成为MBR:Master Boot Record
其中前446bytes:存储Boot loader.引导程序
后64bytes称为分区表
其中每16字节标识一个分区,所以每个磁盘只有四个主分区。
分区不够用之后,将其中一个分区变成一个扩展分区表。
这个分区叫做扩展分区。
扩展分区表指向的分区叫做逻辑分区。
主分区和扩展分区的标号1-4
逻辑分区的标号从5开始。
分区管理工具:fdisk,parted,sfdisk
fdisk -l:
设备 起点 末尾 扇区 大小 类型 /dev/sda1 2048 1050623 1048576 512M EFI 系统 /dev/sda2 1050624 500117503 499066880 238G Linux 文件系统
fdisk device:完成分区