linux的启动流程和加载程序
启动时要加载内核,让内核来驱动硬件,这样才算是一个真正的操作系统
但内核启动前是要做一些其它工作的。启动过过程如下
1.首先先加载BIOS
2.BIOS加载后,接着读取主引导记录(MBR),里面存放的是硬盘的分区信息和引导程序
在LINUX中,引导程序经常是GRUB和LILO
3.grub或lilo运行,同时,解压内核,并且尝试驱动所有硬件设备
4.执行init进程,首先读取/etc/inittab文件,来获取运行级别。在/etc/inittab中,首先 会读取/etc/rc.d/rc.sysinit文件,这个文件是初始化系统的,比如获取主机的名称,网 络环境,等等。然后再根据/etc/fstab下的文件挂载信息,把相关的设备都挂载上来
5.加载内核的外挂模块。这些模块在/etc/modprobe.conf下
6.init进程执行/etc/rc.d/rc.local文件
7.执行/bin/login程序,等待用户登陆
8.最后就是开始以shell控制主机
并且利用核心来控制整个硬件。那么核心文件通常放在哪里呢?一般来说,核心会放在
/boot下,并取名/boot/vmlinuz。
在加载核心的过程中,必须要知道,系统只会“载入根目录”,而且是以只读方式载入的
此外,有时为了让某些功能可以用文件方式来读取,有的系统在启动时,会建立虚拟盘(ramdisk),这就是需要使用initrd以及linuxrc了。利用引导加载程序的功能,可以在加载核心的时候,一起加载initrd的映像文件/boot/initrd-xxxx.img,linux系统会主动以initrd来建立虚拟盘,并且利用linuxrc程序来加载模块。linuxrc使用的主要特点有:
2.必须放在initrd所建立的虚拟盘的最顶层目录
3.必须可以被核心执行
一般来说,各linux版本在建立核心时,都会一起建立initrd的映像文件,以便启动顺序的顺利执行。
总之,在这个过程中,引导加载程序可以找到linux的核心文件,并将它加载到主存器中,同时可能通过initrd建立起虚拟盘(RAM DISK),协助启动过程,最后,将读取自BIOS的主机硬件数据交由linux核心进行检测,并且加载适当的驱动程序。在完整地加载核心后,主机开始正确运行。接下来,挂靠系统的第一个程序:init
init程序做的工作很多,它除了利用设置文件/etc/inittab来获取运行等级之外,还会通过 运行等级的设置启动不同的服务项目。
0. halt,就是关机
1. single user mode ,单用户模式,就像windows中的安全模式一样,可以进行系统的维护,
2. multi-user,without nfs (类似下面的等级3,但没有NFS服务)
3. full multi-user mode(完整的网络功能,但是是在字符界面)
4.unused ,系统保留使用
5.X11 ,与3相似,但工作在图形界面
6. reboot ,重启
转载于:https://blog.51cto.com/jiulu/355702
linux的启动流程和加载程序相关推荐
- 【内核】linux内核启动流程详细分析【转】
转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...
- 【内核】linux内核启动流程详细分析
Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...
- Linux的启动流程(CentOS 6)
前言 Linux启动的过程在实际生产中有着至关重要的作用.试想一下,如果我们在实际生产中服务器因为某一个服务出了问题,而不能启动,这时我们应该怎么办.如果我们了解Linux的详细启动过程,知道是在哪一 ...
- I.MX6 Linux Qt 启动流程跟踪
/*************************************************************************** I.MX6 Linux Qt 启动流程跟踪* ...
- Linux的启动流程简析(以Debian为例)
Linux的启动流程简析(以Debian为例) 正文: 前面的文章探讨BIOS和主引导记录的作用.那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事 ...
- Linux驱动(4)--Linux的启动流程
Linux的启动流程 1.Linux的启动流程概述 2. 从串口打印日志中分析 3. 以Exynos 4412启动流程为例 1.Linux的启动流程概述 ARM Linux 的启动流程大致为:Uboo ...
- linux内核启动流程(文章最后流程图)
原文:linux内核启动流程 本文以Linux3.14版本源码为例分析其启动流程.各版本启动代码略有不同,但核心流程与思想万变不离其宗. 内核映像被加载到内存并获得控制权之后,内核启动流程开始.通常, ...
- Linux开机启动流程分析
Linux开机启动十步骤 收藏分享2012-2-6 11:15| 发布者: 红黑魂| 查看数: 1366| 评论数: 0|来自: 比特网 摘要: 开机过程指的是从打开计算机电源直到LINUX显示用户登 ...
- linux内核启动第一个进程,linux内核启动流程
描述 Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多.毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的.而且直到现在,这个世界上仍然有成千上万 ...
最新文章
- 免费学python的软件-初学python编程,有哪些不错的软件值得一用?
- linux下使用gcp拷贝数据的时候显示进度条
- 运营资源很少的时候,怎么运营自己的产品(完结)
- asp.net运行机制
- SAP UI5 应用开发教程之四十二 - SAP UI5 自带的 Diagnostics 诊断工具使用方法介绍
- Java中文字符所占的字节数
- C/C++ 去掉字符串首位的空格字符
- 极限学习机(ELM)从原理到程序实现(附完整代码)
- 图解MongoChef的安装步骤
- 解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之三表格
- 我心中的微信小程序 韩俊强的博客
- tushare复权数据使用
- 美团2018校园招聘内推笔试代码分享
- java课程综合实训报告_Java ME综合实训报告
- C# WaitAll 等待所有线程执行完毕
- 计算机新加一个固态硬盘,老电脑卡顿不一定没救了 加一块SSD就能焕发新生
- Java+Swing+mysql用户信息管理系统
- 网络带宽和质量测试小工具.iPerf3
- 计算机软件著作权保护包括哪些
- Windows安装Apache服务器及证书
热门文章
- 大数据之-Hadoop之HDFS的API操作_网络拓扑_节点离客户端的距离计算---大数据之hadoop工作笔记0067
- ES6新特性_ES6语法糖_class静态成员---JavaScript_ECMAScript_ES6-ES11新特性工作笔记034
- Seata多微服务互相调用_全局分布式事物使用案例_Order-Module order微服务的配置搭建---微服务升级_SpringCloud Alibaba工作笔记0060
- MQTT工作笔记0004---CONNECT控制报文1
- STM32工作笔记0098---Windows下的Linux环境_Cygwin_MinGW_MSYS_MSYS2_之间的关系
- 2015workshop-age 的txt 生成过程
- 路由器IP-4-DUPADDR: Duplicate address和CDP-4-DUPLEX_MISMATCH错误的解决方案
- java分布式(eclipse环境的使用)
- 大二物竞金牌转北大计算机,物理竞赛保送去北大还是清华?
- oracle时分秒修改值_Oracle SQL Developer显示的时间包含时分秒的设置方法