zoukankan      html  css  js  c++  java
  • 《鸟哥的Linux私房菜》读书笔记三

    1.在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名。比如 IDE接口的硬盘文件名为/dev/hd[a-d] 括号内的字母为a-d当中任意一个,即/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd四个文件.

    装置 装置在Linux内的档名
    IDE硬碟机 /dev/hd[a-d]
    SCSI/SATA/USB硬碟机 /dev/sd[a-p]
    USB快闪碟 /dev/sd[ap](与SATA相同)
    软碟机 /dev/fd[0-1]
    印表机 25针: /dev/lp[0-2] 
    USB: /dev/usb/lp[0-15]
    滑鼠 USB: /dev/usb/mouse[0-15] 
    PS2: /dev/psaux
    当前CDROM/DVDROM /dev/cdrom
    当前的滑鼠 /dev/mouse
    磁带机 IDE: /dev/ht0 
    SCSI: /dev/st0

    更多Linux内核支持的设备参考网站:  http://www.kernel.org/pub/linux/docs/device-list/devices.txt


    2.磁盘分区

    以IDE介面来说,由于一个IDE排线可以连接两个IDE装置,又通常主机都会提供两个IDE介面,因此最多可以接到四个IDE装置。也就是说,如果你已经有一个光碟设备了,那么最多就只能再接三颗IDE介面的磁碟啰。这两个IDE介面通常被称为IDE1(primary)及IDE2(secondary),而每条排线上面的IDE装置可以被区分为Master与Slave这四个IDE装置的档名为:

    IDEJumper Master Slave
    IDE1(Primary) /dev/hda /dev/hdb
    IDE2(Secondary) /dev/hdc
    /dev/hdd


    3.SATA接口使用SCSI模块来驱动,与IDE不同,SATA/USB接口的磁盘根本没有一定的顺序,这个时候就得根据Linux内核检测到磁盘的顺序了。

    例子:如果PC上面有两个SATA磁盘以及一个USB磁盘,而主板上有六个SATA的插槽。这两个SATA磁盘分别安插在主板上的SATA1,SATA5插槽上,请问这三个磁盘在Linux中的设备文件名?

    答:由于是使用检测到的顺序来决定设备文件名,并非与实际插槽代号有关,因此设备文件名如下:

    SATA1插槽的文件名:/dev/sda

    SATA5插槽的文件名:/dev/sdb

    USB磁盘(开机完成后才被系统识别):/dev/sdc


    4.磁盘的盘片上面可细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512byte那么大。

    磁盘的第一个扇区特别重要,因为它记录了整个磁盘的两个重要信息:

    主引导分区(MBR):可以安装引导加载程序的地方,有446bytes。

    分区表:记录整块硬盘分区的状态,有64bytes


    5.在分区表中,总共分成四组记录区,每组记录区记录了该区段的起始与结束的柱面号码(分区的最小单位)

    假设磁盘的设备文件名为/dev/hda,那么四个分区的设备文件名分别为:

    P1:/dev/hda1     1~100

    P2:/dev/hda2     101~200

    P3:/dev/hda3     201~300

    P4:/dev/hda4     301~400

    注意的几点:

    所谓的分区只是针对那个64byte的分区表设置

    硬盘默认的分区表仅能写入四组分区信息

    这四组分区信息我们称为主(Primary)或扩展(Extended)分区。

    分区的最小单位为柱面(cylinder)

    分区的作用:1.数据的安全性 2.系统的性能


    6.可以在扩展分区上划分多个逻辑分区

    注意1~4的数字保留给主分区或扩展分区使用,逻辑分区的设备名称号由5号开始

    主分区与扩展分区最多可以有四个(硬盘的限制)

    扩展分区最多只能有一个(操作系统的限制)

    逻辑分区是由扩展分区持续切割出来的分区

    能够被格式化作为数据访问的分区为主分区与逻辑分区,扩展分区本身无法格式化

    逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号)
    如果扩展分区被破坏掉,所有上面的逻辑分区将会被删除


    7.假如PC有两块SATA硬盘,我想在第二块硬盘分出6个可用的分区(可以被格式化来访问数据),那么每个分区在Linux系统下的设备文件名为何?且分区类型为何?至少写出两种不同的分区方式

    答:由于P+E最多只能有4个,E最多只能有一个

    第一种分法:

    P+P+P+E

    实际可用的是 /dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb5,/dev/sdb6,/dev/sdb7

    第二种分法:

    P+E

    实际可用的是/dev/sdb1,/dev/sdb5,/dev/sdb6,/dev/sdb7,/dev/sdb8,/dev/sdb9


    8.电脑开机流程到操作系统之前的动作应该是这样的:

       BIOS:开机主动执行的韧体(韧体就是写入到硬件上的一个软件程序),会认识第一个可开机的设备

       MBR:第一个可开机的设备的第一个扇区内的主引导分区块,内包含引导加载程序

       引导加载程序(Boot loader):一支可读取内核文件来执行的软件

       内核文件:开始操作系统功能


    9.Boot loader的作用:提供菜单,载入内核文件,转交其他loader


    10.每个分区都有自己的启动扇区(boot sector)

         实际可开机的内核文件是放置到各分区内的

         loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已

         loader可直接指向或是间接将管理权转交给另一个管理程序


    11.Linux操作系统的文件使用目录树,与磁盘的对应需要有"挂载"的操作才行。所谓的挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,也就是进入该目录就可以读取该分区。 

  • 相关阅读:
    Linux系统编程@文件操作(一)
    printf 格式化输出符号详细说明(转)
    SUID,SGID,Sticky Bit详解(转)
    GDB调试器
    GCC编译器
    Make和Makefile编写(详见GCC手册)
    嵌入式Linux开发——内容介绍与开发环境的搭建
    Linux驱动设计——字符设备驱动(一)
    用Socket做一个局域网聊天工具(转)
    linux下常用文件传输命令 (转)
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748408.html
Copyright © 2011-2022 走看看