`

linux步步为营(1)--理论基础

阅读更多

Linux From Scratch

 

一、硬件基础____________________________________________________________

 

CPU种类:

        RISC(reduced Instruction Set Computing)

        精简指令集,常用于服务器,比如Sun,IBM,还有网络设备,手机上用的ARM

        CISC(Complex Instruction Set Computing)

        复杂指令集,AMD,Intel,VIA的X86架构。

 

系统

        硬件-->内核-->系统接口-->应用程序

        内核功能:系统调用接口,内存管理,进程管理,文件系统管理,设备驱动(这个算么?由OS指定接口,像JDBC一样)

        设备前缀: IDE 设备,hda,hdb;SCSI ,sda、sdb、sdc 等。

        linux,非常适合做嵌入式,几百kb-8M,还有适合做网络设备等,比如LFS,图形界面虽然操作简单,但是除了问题,解决就麻烦了。因为不懂原理。

 

硬盘:

        一个扇区sector==512B,

        主引导分区master-boot-record可以安装引导加载程序的地方,有446B,开机时读取,用于引导系统启动。

        分区表partition-talbe,记录分区的状态,64B,每个分区要16B,所以最多有4个primary+extended分区,硬盘限制,最多有一个extended,OS限制。

        分区的最小单位为柱面cylinder,分区为了解耦和性能,

        logic分区,从/dev/had5,开始,前四个预留给primary+extended,extended

        每个分区都有自己的引导扇区boot-sector

        BIOS-->MBR-->Boot-loader-->kernel文件(操作系统),

        BIOS,MBR,是硬件支持。

        boot-loader是OS安装在MBR上的软件,提供linux,windows选项,指向对应的kernel。OS的引导加载程序可以安装在分区的boot-sector

 

二、文件系统____________________________________________________________

 

多用户:

         windows单用户多任务。验证:用admin登录,再用远程桌面用river登录,会把admin挤掉。

         linux多用户多任务,可以同时多个用户登录,甚至一个用户登录多次,通过xshell等登录

         关机只有root用户才行,因为linux是多用户的。

         

文件系统:    FHS(filesystem hierarchy standrad)

    FHS4种类型,static-variable,shraeable-unshareable.

        /usr,/opt,是static-shareable

        /etc(配置文件),/boot(开机与内核文件),static-unshareable

        /var/mail,variable-shareable

        /var/run,/var/lock(程序相关),variable-unshareable

    VFS

           cat /proc/filesystems,显示vfs支持的fs,linux通过vfs switch的内核功能去管理各分区上不同的文件系统。

                   

硬链接,软连接

        Inode Index

                保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为节点索引号。

        Hard Link

                通过Inode来进行连接,多个文件名可以指向同一个inode,只有当最后一个hard link被删除后,文件的数据块及目录的连接才会被释放。

        Symbolic Link

                类似于Windows的快捷方式,实际上是一个文本文件,其中包含的有另一文件的位置信息。

        通过实验加深理解

                touch f1          #创建一个测试文件f1

                ln f1 f2          #创建f1的一个硬连接文件f2

                ln -s f1 f3       #创建f1的一个符号连接文件f3

                ls -li            # -i参数显示文件的inode节点信息

                #硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

                #当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

            

目录树

        所有数据都以文件的形式来呈现,挂载就是把分区数据映射成文件。lsof命令验证

        文件权限rwx,文件属性(owner,group-开发团队共享,时间等其他参数)

        文件类型:-普通文件,l链接文件,d目录,c字符设备文件如键盘鼠标,b数据设备文件如硬盘,p管道文件,s套接字文件。

        linux,用inode存index,可以指向多个分散的block。fat的block号码,存在前一个block中(链表),当磁盘碎片多时,可能要转好多圈才行。

        EXT2文件系统superblock-文件系统描述-块对应表-inode对应表-inode表-data block

                /dev    设备( c字符设备文件如键盘鼠标,b数据设备文件如硬盘),都以文件存在于dev下,如/dev/null,/dev/tty,

                /etc    系统主要配置文件,如各种服务的init.d,

                /lin    

                /media    可删除的设备,如floopy软盘,/media/cdrom,挂载win的d盘: /media/sf_D_DRIVE

                /mnt    有了/media后,这个只用来暂时挂载。media的只要不删,重启后也一直存在。

                /opt    第三方软件目录

                /root    root用户的~(主文件夹),其他用户没权限wnj1@naijiang-VirtualBox:~$ cd /root -su: cd: /root: 权限不够

                /sbin    system的bin,只有root有权读写,其他都是只读。

                /lost+found    当文件系统发生错误,用来存放丢失的片段

                /proc    virtual filesystem,存在于内存,不占用硬盘,数据存放,系统kernel,process,外设状态,网络状态等

                /sys        也是vfs,记录与kernel相关的信息

                /var       系统运行有关的变量。

                /var/lib   

                  系统正常运行时要改变的文件.  

                /var/local   

                  /usr/local 中安装的程序的可变数据(即系统管理员安装的程序).注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock .  

                /var/lock   

                  锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.  

                /var/log   

                  各种程序的Log文件,特别是login  (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.  

                /var/run   

                  保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息. 

                /var/spool   

                  mail, news, 打印队列和其他队列工作的目录.每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中.  

                /var/tmp   

                  比/tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许/var/tmp 有很旧的文件.)  

                根目录是(/),(/root)是root用户(最好不要翻译成根,容易混淆)的主目录

                /,/etc,/bin,/dev,/lib,/sbin,这六个目录必须在一个分区。其他的可以再其他分区,但是用户看不出来?linux也可以分区?

                但是用户看不到分区,只看到filesystem.

        描述系统配置的文件

                /proc/cpuinfo        CPU信息

                /proc/version        版本信息

                /proc/sys/net/core/rmem_max 对SO_RCVBUF的支持。

                /lib/modules/3.0.0-12-generic($变量)/kernel        内核路径

        

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics