首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux操作系统开机启动到完成详细解析

本文从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。...由于操作系统正在变得越来越复杂,所以开机引导和关机下电的过程也越来越智能化。...这里,我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。   ...加载内核 LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。...编写自己的rc命令脚本 在维护Linux系统运转的日子里,肯定会遇到需要系统管理员对开机或者关机命令脚本进行修改的情况。

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

操作系统开发:编写开机引导

操作系统是用来管理与协调硬件工作的,开发一款操作系统有利于理解底层的运转逻辑,本篇内容主要用来理解操作系统是如何启动的,又是如何加载磁盘中的内核的,该系列文章参考各类底层书籍,通过自己的理解并加以叙述,...BOIS 是如何苏醒的 BIOS 基本输入输出系统,BIOS代码所做的工作是一成不变的,所以他是被固化到ROM中的一块只读区域中,在开机时此ROM会被映射到低端1MB内存的顶部,原因是系统在开启时默认是实地址模式...在开机的一瞬间,CPU的CS:IP寄存器会被强制初始化为0xF000:0xFFF0,在实地址模式下该地址需要乘以16也就是左移四位加上偏移地址得到,于是0xF000:0xFFF0就等效于0xFFFF0此处的地址距离...这个地址转换过程是由操作系统与处理器共同协作完成的,处理器在硬件上提供地址转换部件,操作系统提供转换过程中所需要的页表。...实模式下的用户程序和操作系统是同一级别的,所以要添加个特权级属性来区分用户程序和系统。 内存段是一片内存区域,访问内存就要提供段基址,所以要有段基址属性。

52830

Linux开机启动(bootstrap)

计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。...然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。...Windows和Linux各自有自己内核。狭义的操作系统就是指内核,广义的操作系统包括内核以及内核之上的各种应用。 (Linus Torvalds与其说是Linux之父,不如说是Linux 内核之父。...他依然负责Linux 内核的开发和维护。至于Ubuntu, Red Hat, 它们都是基于相同的内核之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)...这样,操作系统就可以知道自己有哪些硬件可用。随后,内核会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。

8.2K80

Linux开机流程(中)

采用VBR/EBR方式引导操作系统 暂且先不讨论grub如何管理启动操作系统的,以VBR和EBR引导操作系统为例。 当bios读取到MBR中的boot loader后,会继续读取分区表。...在装LINUX操作系统时,其中有一个步骤就是询问你MBR装在哪里的,但这个MBR并非一定真的是MBR,可能是MBR,也可能是VBR,还可能是EBR,并且想要单磁盘多系统共存,则MBR一定不能被覆盖(此处不考虑...另外,在指定boot loader安装路径的下方,还有一个方框是操作系统列表,这就是操作系统菜单,其中可以指定默认的操作系统,这里的默认指的是MBR默认跳转到哪个VBR或EBR上。...它们的关系如下图: 这张图解释了开机过程中grub2阶段的所有过程,boot.img段的boot loader只有一个作用,就是跳转到core.img对应的boot loader的第一个扇区,对于从硬盘启动的系统来说...unrestricted { search --no-floppy --fs-uuid --set=root f5d8939c-4a04-4f47-a1bc-1b8cbabc4d32 linux16

3.6K30

linux开机启动顺序

LINUX 开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。...启动第三步--Boot Loader   Boot Loader 就是在操作系统内核运行之前运行的一段小程序。...通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。...系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。...其中,S(start)开头的表明开机启动,K(kill)开头的表明开机不启动。数字表示启动顺序。 数字越小,启动越早。   注意,他们都是连接到etc/rc。d/init。d/目录中的相关文件。

8.2K100

Linux开机启动(bootstrap)

作者:Vamei 来源:见文末 计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。...然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。...Windows和Linux各自有自己内核。狭义的操作系统就是指内核,广义的操作系统包括内核以及内核之上的各种应用。 (Linus Torvalds与其说是Linux之父,不如说是Linux 内核之父。...他依然负责Linux 内核的开发和维护。至于Ubuntu, Red Hat, 它们都是基于相同的内核之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)...这样,操作系统就可以知道自己有哪些硬件可用。随后,内核会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。

6.4K50

Linux开机流程(下)

所谓的救援模式就是刚加载完内核,init进程接收到控制权的那一阶段,因为没有进行任何操作系统初始化过程,所以可以修复和操作系统相关的很多问题。...如下图,它是安装操作系统时安装完所有软件包后执行的一个收集过程。...而init掌握控制权后,已经可以和用户空间交互,意味着真正的开始进入操作系统,所以它初始化的是操作系统的环境。...操作系统初始化涉及了不少过程,大致如下:读取运行级别;初始化系统类的环境;根据运行级别初始化用户类的环境;执行rc.local文件完成用户自定义开机要执行的命令;加载终端; 运行级别 在sysV风格的系统下...在Linux系统中定义了7个运行级别,使用0-6的数字表示。

2.7K20

操作系统开发:BIOSMBR 编写开机引导

这里在实验之前需要下载 Bochs-win32-2.6.11 作者使用的是Linux版本的,在Linux写代码不太舒服,所以最好在Windows上做实验,下载好虚拟机以后还需要下载Nasm汇编器,以及GCC...注释:该系列笔记是在学习《操作系统真相还原》时通过阅读后简化并适当描述整理的学习笔记,首先,致敬作者郑刚博士,在读本书时能深刻的感觉到作者写书时一丝不苟的态度,书很厚写的,讲解细致幽默,很能让人愿意继续读下去...BIOS 软件接力第一棒 BIOS 基本输入输出系统,BIOS代码所做的工作是一成不变的,所以他是被固化到ROM中的一块只读区域中,在开机时此ROM会被映射到低端1MB内存的顶部,原因是系统在开启时默认是实地址模式...在开机的一瞬间,CPU的CS:IP寄存器会被强制初始化为0xF000:0xFFF0,在实地址模式下该地址需要乘以16也就是左移四位加上偏移地址得到,于是0xF000:0xFFF0就等效于0xFFFF0此处的地址距离.../x11-pc-de.map 填充数据 dd if=mbr.bin of=linux.img bs=512 count=1 conv=notrunc dd if=/dev/zero of=linux.img

1.2K20

Linux开机自动挂载磁盘

我们当然可以手动再次将其挂载,但如果每次重启都需要这样手动操作会很不方便;因此我们可以利用自动挂载,这样系统每次开机的时候就可以自动将磁盘挂载上去了。自动挂载可以有两种方式。...第3列是所要挂载设备的文件系统或者文件系统类型 第4列是挂载选项,通常使用defaults就可以 第5列设置是否使用dump备份,置0为不备份,置1,2为备份,但2的备份重要性比1小 第6列设置是否开机的时候使用...本文需将逻辑卷lv_study挂载到 /lvm_study ,文件系统为ext4 格式,不进行dump备份以及开机磁盘检查。...挂载点必须为已经存在的目录 (3)卸载时必须保证当前磁盘没有发生读写操作 2.修改/etc/rc.d/rc.local文件 将mount命令添加进rc.local文件是另一种实现开机自动挂载的方式

9.4K40

linux设置开机自启动

linux设置开机自启动执行命令: 执行命令: 编辑"/etc/rc.local",添加你想开机运行的命令 运行程序脚本:然后在文件最后一行添加要执行程序的全路径。.../hello.sh " 注意,你的命令应该添加在:exit 0 之前 image.png 在/etc/init.d目录下添加自启动脚本 linux在“/etc/rc.d/init.d”下有很多的文件...,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。...运行级别设置 简单的说,运行级就是操作系统当前正在运行的功能级别。...在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。

15.5K40

Linux系统的开机自启动

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/285 当你使用windows操作系统时,开机后总会有各种软件自我启动完成...比如某些安全卫士,某些听歌软件等等,它们在系统启动完成时并自动启动,而linux系统也有这样的机制,我们来看看linux如果管理开机自启动。...而有些进程就是在开机时启动的,有些则在进入系统后由用户使用时触发启动的。 你可以在linux的命令行中输入以下命令查看系统中正在运行中的进程。...ps -ef # ps --help 或 man ps 了解e和f参数的作用 有了这些概念以后,我们就可以来了解如何去管理linux系统中的服务开机自启动(services start at boot...在linux系统中,管理服务启动的系统叫“systemd”,它是linux系统启动时第一个启动的进程,后面所有的进程都是由这个进程启动,所以你会看到它的进程号PID为1。

8.1K30
领券