《手把手教你构建自己的 Linux 系统》学习笔记(10)
目录
- /etc/fstab 文件的作用是什么?
- Linux 内核的图形化启动是怎么回事?
- Linux 系统中的文件名是否以大小写来进行区别?
- 「GRUB 中无法找到硬盘」怎么解决?
- 「GRUB 及配置文件中对磁盘分区的表示与 /dev 中的设备文件」有什么不同?
- GRUB 的配置文件是什么?有什么用?
- rootfs 根文件系统是什么?
- 内存磁盘(RAM Disk)是什么?
- 内存磁盘的大小是怎么弄的?
- 内存文件系统是怎么回事?
- 根文件系统与内存文件系统有什么关系?
- 辅助系统的作用是什么?
- 辅助文件系统存放的方式有哪些?
- Initrd 是怎么操作的?
- Linux 内核是如何使用辅助系统的?
- Initranfs 是怎么工作的?
/etc/fstab 文件的作用是什么?
这个文件在 Linux 系统中用于指定文件系统自动挂载设置,包括设备名、挂载目录、文件系统名称以及挂载选项,该文件与 mount 命令相关,mount -a 将会根据该文件中的描述进行文件系统的挂载。
Linux 内核的图形化启动是怎么回事?
Linux 内核支持 FrameBuffer 驱动,可用于在启动时进入图形状态,在 GRUB1(版本 0.97)中采用直接给内核指定参数的方式来设置 Framebuffer 驱动,一般给内核传递 vga 或者 video 参数来指定,如 vga=778 对应设置为 800 x 600 分辨率, 16 位色。
在 GRUB(版本 1.97)中取消了 vga 参数的设置方式,确认呆滞的是使用 gfxpayload 参数,该参数依赖 GRUB2 中的 vbe 模块。
GRUB 会根据 gfxpayload 参数告诉 Linux 内核以什么样的图形方式来启动,Linux 内核如果带有 FrameBuffer 驱动,并且如果支持指定的分辨率以及颜色,就会按照其设置进行图形初始化。
Linux 系统中的文件名是否以大小写来进行区别?
Linux 中的文件名是要区分大小写的。
「GRUB 中无法找到硬盘」怎么解决?
首先要排除使用 GRUB 不能识别的分区类型,再检查是否挂载了 proc 文件系统,以及 /dev目录是否存在磁盘的设备文件,这些条件成立后 GRUB 才能正确检测到磁盘设备。
「GRUB 及配置文件中对磁盘分区的表示与 /dev 中的设备文件」有什么不同?
/dev/sda2 在 GRUB 中表示(hd0,1),/dev/sdb1 表示为(hd1,0),老式的 IDE 磁盘分区表示方法也类似,如 /dev/hda2 也表示为(hd0,1)
GRUB 的配置文件是什么?有什么用?
GRUB 首先对计算机进行基本的硬件初始化,然后根据配置文件进行启动的控制。
GURB 的配置文件一般存放在启动分区的 /boot/grub 目录中,以 menu.lst(GRUB1)或者 grub.cfg(GRUB2)作为文件名,配置文件用于设置界面颜色,等待用户选择的时间,启动项选择和启动项执行的过程等。
用户选择了某个启动项后,GRUB 根据该启动项的设置载入内核、镜像文件等,之后 GRUB 将执行权交给内核,内核开始启动。
rootfs 根文件系统是什么?
跟文件系统可以理解为最基础的目录,它由内核创建并且存在于内存中,Linux 系统必须存放在根文件系统上才能被 Linux 内核所运行,刚初始化的根文件系统中并没有任何文件,可以理解为是一个空的目录。
Linux 内核自身初始化完成后将载入 Linux 系统到根文件系统上,载入完成后启动其中的 init 程序(默认启动 /sbin/init ,可由内核参数指定运行其他程序)
内存磁盘(RAM Disk)是什么?
内存磁盘是一种虚拟设备,设备名以 /dev/ram 开头,从 0 开始进行编号,内核以块设备的访问方式对其进行访问。
内存磁盘设备建立在内存中,简单来说,就是用内存来模拟磁盘。
内存磁盘中可以创建支持块设备的文件系统。
内存磁盘的大小是怎么弄的?
内存磁盘的大小由内核所决定,可以在编译内核时进行调整,也可以在内核启动时传递 ramdisk_size 参数来设置,内存磁盘建立后不能改变大小。内存磁盘的存储内容可以进行修改,但是重新启动后内容会全部消失。
内存文件系统是怎么回事?
内存文件系统一般简称为 RamFS 是一种基于内存的特殊文件系统,该文件系统不能用于磁盘这样的存储设备上,只能占用内存,占用空间大小根据存放内容的增加而不断增大,最大空间受 CPU 寻址范围和内存大小的限制。
RamFS 支持现有的 Linux 系统的文件结构,支持挂载其他内核支持的设备以及文件系统。
根文件系统与内存文件系统有什么关系?
事实上,根文件系统(rootfs)就是内存文件系统(RamFS)的一个具体实力,因此根文件系统可上可以直接创建文件和目录,挂载设备上的文件系统。
辅助系统的作用是什么?
辅助系统是一种功能比较特殊的微型系统,作为 Linux 内核初始化完成但是未进入最终系统(最终用户使用的系统)时的过渡系统,主要目的是为了将最终系统载入到根文件系统上,并且帮助内核启动启动最终系统。
辅助文件系统存放的方式有哪些?
目前有两种,一种是比较传统的内存磁盘方式存放辅助系统,称为 Initrd(Initial RAM disk),另一种是比较现代的内存文件系统方式存放辅助系统,称为 Initramfs(Initial RAM filesystem)
Initrd 是怎么操作的?
Initrd 采用 RAM Disk 来存储辅助系统,RAM Disk 模拟块设备操作,Linux 内核启动过程中将辅助系统的镜像文件还原到 Ram Disk 设备上,在 RAM Disk 设备上使用辅助系统必须采用文件系统,必须将镜像文件格式化为 Linux 内核支持的文件系统,在该文件系统中存放辅助系统。
Linux 内核是如何使用辅助系统的?
启动器(如 GRUB)将该镜像文件从磁盘上读取并且存放到内存的某个特定位置上,再由 Linux 内核在启动过程中从内存特定位置中将镜像文件还原到 RAM Disk 上,默认还原的 RAM Disk 设备文件名为 /dev/ram0 ,然后按照 Initrd 的方式启动辅助系统。
Linux 内核将 Initrd 中的辅助系统视为过度系统,在辅助系统执行完成后,Linux 内核重新获得控制权,继续执行根文件系统(rootfs)中的最终系统。
Initranfs 是怎么工作的?
Initramfs 采用内存文件系统(RAM Filesystem)存储辅助系统。
与 Initrd 方式不同,Initramfs 中的系统在 Linux 内核中视为最终系统,定义为辅助系统是从制作该系统目的而言的,Linux 内核将辅助系统直接还原到根文件系统,内核执行该系统后就不再接管执行控制权了,执行的控制都由该系统来完成。
我们已经知道根文件系统(rootfs)本身就是内存文件系统,是一个完整支持 Linux 文件和目录存放格式的文件系统,Linux 内核要求 Initramfs 文件采用 CPI哦的打包格式,支持 gz 格式的压缩文件。
Linux 内核自带了 gz 和 CPIO 格式的处理函数,自动将辅助系统解压还原到根文件系统中。
同 Initrd 镜像文件一样,Initramfs 打包压缩文件也可以使用启动器读取并且放入内存中的特定位置,再由内核将其解压缩还原到根文件系统中,之后转入运行其中的系统。
FAT32 在 Linux 是怎么显示的?
使用这组文件系统是为了让 U 盘同时在 windows 上正常使用,这样 U 盘具有更加广泛的适用性,FAT16 对分区以及单个文件的大小是有所限制的,因此推荐使用 FAT32,FAT32 文件系统在 Linux 系统中表示为 VFAT 文件系统。
需要注意的时候,选择以上的任何文件系统都必须保证启动器(GRUB)和内核(Linux)的支持。
《手把手教你构建自己的 Linux 系统》学习笔记(10)的更多相关文章
- 《手把手教你构建自己的 Linux 系统》学习笔记(9)
目录 autoreconf 命令的作用是什么? aclocal automake -a autoconf 一条命令搞完三面三步 既然有其他的「编译控制软件」为何还是使用 make 来进行编译控制? M ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(8)
目录 Binutils 软件包有什么用? make -k 的作用是什么? man-pages 里有几种文档?分别表示什么意思? 如何查询指定目录的 man-pages ? 如何使用 make 命令的同 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(6)
目录 /dev 目录是干什么的? /proc 和 /sys 目录是干什么的? udev 这个软件是干什么用的? 目录映射是临时性的,还是永久性的? 命令行里大括号 "{}" 的作用 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(5)
交叉编译是什么? 交叉编译就是在一个系统上,编译生成另外一个系统运行的程序文件. 「硬件体系结构」和「操作系统」的关系是什么? 硬件体系结构也可以称为架构,主要是通过 CPU 的指令集来进行区分的,操 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(2)
Linux 系统定制原理 虚拟根目录 我们的目标是为了完成目标系统(也就是我们要做的系统),他是一个可以独立运行的系统,不依赖雨主系统和临时系统,根据 Linux 系统的特点它需要存放在根目录下面,但 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(1)
第二章.基础准备--Linux 系统定制原理 Linux 系统的组成及架构 共享库和静态库 在 Linux 系统中,函数库包含两种形式:共享库和静态库. 共享库 共享库在程序运行时,为其提供所需要的函 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(7)
目录 tee 命令的缺陷是什么?如何解决这个缺陷? /etc/ld.so.conf 文件的作用是什么? 动态链接和静态链接有什么不同? 动态编译 静态编译 共享库为什么会有版本?共享库的版本升级原理是 ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(4)
汇编链接器(Binutils) 这是一个软件包,这个软件包其实是一个工具集,里面含有了大量的用于汇编程序活着读取二进制文件相关的程序. CC 它是一条命令的别名,这条命令的作用是使用 GCC 的 C ...
- 《手把手教你构建自己的 Linux 系统》学习笔记(3)
需要注意的是,制作操作系统权限全程都要用 root pushd 和 popd 为了方便目录管理,所以出现了这种两个命令,他们的原理就是利用堆栈来实现目录管理. 这两个命令,pushd 负责将指定的目录 ...
随机推荐
- JVM第一弹
JVM第一弹 基本概念 JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收.堆和一个存储方法域.JVM是运行在操作系统之上的,它与硬件没有直接的交互. 运行 ...
- STM8 关闭PWM输出后的电平输出问题解决
STM系列的单片机PWM输出如果被关断比如用TIM1_CtrlPWMOutputs进行停止输出后,电平的高低处于不确定的状态. 他取决于: 1.GPIO初始化的特性 2.关断那一刻时的电平 3.CCM ...
- 在python3 encode和decode 的使用
说这个问题之前必须的介绍关于编码的在我们这的发展: 首先电脑能识别的最初的语言是二进制 ---010101这种 然后在是我们知道的ASSIC码 再过了就是 gb2312----------->g ...
- 使用 web3D 技术的风力发电场展示
前言 风能是一种开发中的洁净能源,它取之不尽.用之不竭.当然,建风力发电场首先应考虑气象条件和社会自然条件.近年来,我国海上和陆上风电发展迅猛.海水.陆地为我们的风力发电提供了很好地质保障.正是 ...
- 基于Arduino开发的简易“高水位报警系统解决方案”
长期以来,针对“某些办公室空调没有排水系统,只能用水桶接水,经常造成水漫金山的问题”而提出来的. 材料:Arduino开发板一块.水位传感器一个.高电平蜂鸣器一个.杜邦线若干. 原理:将水位传感器置于 ...
- SpringMVC基础(一)_控制器
Spring MVC Spring MVC 基于模型-视图-控制器(Model-View-Controller)模式实现,它能够帮你构建灵活和松耦合的应用程序. 1.Spring MVC的请求追踪 每 ...
- HDU_2084_DP
http://acm.hdu.edu.cn/showproblem.php?pid=2084 简单dp,从下到上,从左到右,依次更新每个位置最大值. #include<iostream> ...
- 机器学习(ML)十之CNN
CNN-二维卷积层 卷积神经网络(convolutional neural network)是含有卷积层(convolutional layer)的神经网络.卷积神经网络均使用最常见的二维卷积层.它有 ...
- Thread.yield( )方法
Java线程中的Thread.yield( )方法,译为线程让步.顾名思义,就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉,让自己或者其它的线程运行,注意是让自己或者其他线程运行 ...
- Centos7更改屏幕显示率
第一种,在虚拟机中安装VMwareTools,之后在虚拟机菜单栏"查看"这一项选择立即适应窗口. 第二种,修改/boot/grub2/grub.cfg配置文件,在终端输入su,输入 ...