Linux基本常识

1 目录结构

Linux目录结构主要分为以下几类:

这张图片展示了一个Linux系统的根目录下的内容。每个列出的条目代表一个目录或者文件。下面是对这些目录的一般解释:

  • bin: 存放二进制可执行文件的地方,比如基本的命令工具。
  • dev: 设备文件存放处,包括各种硬件接口。
  • etc: 系统配置文件存放处,包括各种服务的配置文件。
  • home: 用户主目录所在位置,每个用户的个人文件都存储在这里。
  • lib: 库文件存放处,包含了程序运行所需的动态链接库。
  • lost+found: 这个目录是由文件系统修复工具自动创建的,用来存放丢失的数据块。
  • media: 用于挂载外部介质,如USB驱动器、光盘等。
  • mnt: 临时挂载点,常用于临时挂载分区或其他存储设备。
  • opt: 第三方软件安装路径,一般用于非系统默认提供的软件。
  • proc: 内核映射的进程信息目录,提供有关内核和正在运行的进程的信息。
  • root: 根用户的家目录。
  • run: 用于存放系统运行时生成的文件,类似于旧的/var/run。
  • sbin: 存放超级用户(root)使用的二进制可执行文件。
  • srv: 为网络服务提供数据的目录。
  • sys: 硬件设备信息目录,由sysfs文件系统实现。
  • tmp: 临时文件存放处,任何用户都可以写入。
  • usr: 类似于Windows下的Program Files,存放应用程序和相关文件。
  • var: 变量数据存放处,包括日志文件、邮件队列等。

在计算机系统中,设备文件是操作系统用来表示硬件设备的一种特殊类型的文件。这些设备文件通常分为两大类:字符设备(Character Device)和块设备(Block Device)。这两种设备的主要区别在于它们如何处理数据以及它们所代表的硬件类型。

2 字符设备 (Character Device)

  • 定义:字符设备是指那些以字节流形式进行读写操作的设备。这意味着当应用程序向字符设备发送数据时,数据会立即被处理,而不是先缓存起来。
  • 特点
    • 数据传输以单个字节为单位,或者说是非缓冲的。
    • 支持随机访问,即可以指定从某个特定位置开始读取或写入数据。
    • 常见的例子包括终端、键盘、打印机等。
  • 用途:主要用于需要即时响应的设备,如输入/输出设备。

3 块设备 (Block Device)

  • 定义:块设备是指那些以固定大小的数据块(通常是512字节、1KB或更大)进行读写操作的设备。与字符设备不同,块设备的数据在被处理之前可能会被暂时存储在缓冲区中。
  • 特点
    • 数据传输以块为单位,通常是缓冲的。
    • 不支持真正的随机访问;虽然可以从任意块开始读写,但是必须按照完整的块来操作。
    • 常见的例子包括硬盘驱动器、SSD、USB闪存盘等。
  • 用途:主要用于存储设备,如磁盘、光盘等。

4 区别

  • 数据处理方式:字符设备处理数据时不需要等待整个数据块准备就绪,而块设备则需要等待整个块的数据准备好后才能进行处理。
  • 缓冲机制:字符设备通常是非缓冲的,而块设备则是缓冲的。
  • 访问模式:字符设备支持更灵活的读写操作,而块设备的操作更为固定,通常以固定的块大小进行。