在Linux系统中,设备(如磁盘、USB、打印机等)可以通过以下几种方式访问:
Linux将硬件设备抽象为文件,存放在 /dev
目录下。通过读写这些文件即可与设备交互。
块设备(如磁盘、SSD):
/dev/sda
(第一块SATA磁盘)、/dev/nvme0n1
(NVMe SSD)。mount /dev/sda1 /mnt
)。字符设备(如键盘、串口):
/dev/ttyS0
(串口)、/dev/input/mouse0
(鼠标)。cat /dev/input/mouse0
)。特殊设备:
/dev/null
(黑洞设备)、/dev/zero
(零源)、/dev/random
(随机数生成器)。/sys
(sysfs):
/sys/bus/usb/devices/
)。echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
。/proc
(procfs):
/proc/devices
或 /proc/interrupts
查看。/dev
下的设备文件。
/etc/udev/rules.d/
可自定义设备命名或权限(如自动挂载USB)。udevadm info --query=all --name=/dev/sda
。存储设备(如磁盘分区)需挂载到目录才能访问:
mount /dev/sdb1 /mnt/data # 挂载到/mnt/data
umount /mnt/data # 卸载
/etc/fstab
配置文件实现开机自动挂载。mount -t nfs 192.168.1.100:/share /mnt/nfs
iscsiadm
连接远程存储。sshfs user@host:/path /mnt/sshfs
smartctl
(SMART检测)、hdparm
(硬盘参数)。lsusb
、usbview
。open()
、ioctl()
)直接操作设备文件。libusb
(USB设备)、libpci
(PCI设备)。dmesg
或 lsblk
查看设备名(如 /dev/sdd1
)。bash
mkdir /mnt/usb
mount /dev/sdd1 /mnt/usb
bash
umount /mnt/usb
sudo
或加入 disk
、plugdev
等用户组。/dev/sda
)可能破坏数据,需谨慎。通过以上方式,Linux系统实现了灵活且统一的设备访问机制。