Linux 系统的启动顺序

  • 第一步:加载BIOS
  1. 当你打开ia计算机的电源,计算机会首先加载计算机主板的BIOS信息,因为它包含了CPU的相关信息,设备启动顺序[安装系统的U盘启动顺序],内存信息,时钟信息,PnP特性等等, 以后计算机会按照顺序读取硬件设备了。
  • 第二步:读取MBR
  1. 众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。
    系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。
  • 第三步:Boot Loader
  1. Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备
    Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。
    我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。
    系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
  • 第四步:加载内核
  1. 根据grub 设定的内核映像所在路径,系统读取内存影像,并进行解压缩操作,此时,屏幕一般会输出 “Uncompressing Linux " 的提示,当解压缩内核完成后,屏幕输出”ok , botting the kernel " ,也就是内核加载完毕的意思,系统将解压好的内核放置到内存之中,并调用start_kernel()函数 来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立,至此,Linux内核已经初始化完毕了,基于Linux 的程序 应该可以正常运行了。
  • 第五步:用户层init依据inittab文件来设定运行等级
  1. 内核被加载后,第一个运行的程序是/sbin/init ,该文件会读取/etc/inittab 文件,并根据次文件进行初始化的工作。/etc/inittab文件就死设定linux的运行等级,其设定形式如下:
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

  0 :关机

       1 :单用户

       2 :无网络支持的多用户模式

       3 :用网络支持的多用户模式

      4  :保留,暂未使用

      等等

    不同的linux 发行版本,对于启动的控制不一样

  • 第六步 :
  1.        设定了运行等级之后,Linux执行的地一个用户层文件就是 /etc/rc.d/rc.sysinit脚本程序,里面会进行设定 PATH,设定网络配置[/etc/sysconfig/network],启动swap分区,设定/proc等等
  • 第七步:启动内核模块
  1. 具体是根据/etc/modules.conf文件或者/etc/modules.d目录下的文件来装载内核模块。
  • 第八步:执行不同的运行级别的脚本程序
  1. 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
  • 第九步: 执行/etc/rc.d/rc.local
  1. 你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:
    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don’t
    # want to do the full Sys V style init stuff.
    rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。
  • 第十步:执行/bin/login程序,进入登录状态
  1. 就是linux的登录界面,等待用户输入用户名和密码了。
  • 备注:以上可以参照centos7以上的版本,相关的文件都比较容易查看的。
  • 文章参考地址:http://m.blog.chinaunix.net/uid-26495963-id-3066282.html?winzoom=1.375

转载于:https://www.cnblogs.com/bing-yu12/p/7619869.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle数据库 查看表是否是 索引组织表的方法

1. 最近在工作过程中发现 一个表插入很慢 以为是索引组织表, 所以一直有点纠结 但是发现 产品里面是没有IOT的 于是找了下公司的OCP 问了下 如何查看 就是 user_tables 视图里面的一个字段. 见图: 转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9018037.html

Windows server 2016 搭建RDS服务

计算机的更新换代太快,新购置的计算机没几年便觉得运行速度越来越慢,尤其是在运行一些比较大的应用程序是,用户总是抱怨运行速度太慢或者总是死机等问题。如果要更换新的计算机,又得不到领导的批准,因此对于企业来说&a…

π 的定义(极限)

圆周率,周长(2πr)与直径(2r)的比值。在名称上,是通过计算命名的。 1. 刘徽割圆与圆周率 π 通过圆内接正多边形的周长来计算圆周长,是三世纪中期我国魏晋时代的数学家刘徽的光辉思想。 对于圆内…

前端开发浏览器兼容问题

csshack 1234567我很少使用hacker的,可能是个人习惯吧,我不喜欢写的代码IE不兼容,然后用hack来解决。不过hacker还是非常好用的。使用hacker我可以把浏览器分为3类:IE6 ;IE7和遨游;其他(IE8 chr…

springboot2.0 多数据源整合问题 At least one JPA metamodel must be present!   at

2019独角兽企业重金招聘Python工程师标准>>> 数据源代码: 第一个读取配置文件代码: package com.datasource;import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.sp…

好书推荐

阿尔花剌子模:代数学. 乔治波利亚:怎样解题:数学思维的新方法. Anany Levitin:算法设计与分析基础.转载于:https://www.cnblogs.com/mtl6906/p/7625290.html

docker实战系列之搭建rabbitmq

1.搜索镜像【注:因为我这里采用的是阿里云镜像加速器,所以我直接在阿里云中搜索相关镜像路径】,点击"详情"查看公网拉取路径 2.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/jc/rabbitmq-3 3.查看拉取的镜像 docker images 4.创建并运行容器【…

【hdu 6038】Function

【Link】:http://codeforces.com/contest/834/problem/C 【Description】 给你两个排列a和b; a排列的长度为n,b排列的长度为m; a∈[0..n-1],b∈[0..m-1]; 然后让你求一个函数f[i]; f[i]的定义域为0..n-1,值域为0..m-1 同时使得对于任意f[i],i∈[0..n-1]; f(i)bf(a[i])成…

树中点对距离(点分治)

题目 给出一棵带边权的树&#xff0c;问有多少对点的距离<Len 分析 这是一道点分治的经典题目&#xff0c;可以给点分治的初学者练手。 点分治&#xff0c;顾名思义就是把每个点分开了处理答案。 假设&#xff0c;目前做到了以x为根的子树。 先求出子树中每个点到根的距离\(…

【a702】贷款利率

Time Limit: 10 second Memory Limit: 2 MB 问题描述 当一个人从银行贷款后&#xff0c;在一段时间内他将不得不每月尝还固定的分期付款。这个问题要求计算机出贷款者向银行支付的利率。假设利率按月累计。 Input 输入文件 仅一行包含三个用空格隔开的正整数。 第一个整数表示…

移动端适配--meta标签玩的是什么

基本一直都在做移动端的开发&#xff0c;rem布局也写了很久&#xff0c;不过对于实现的原理有些模棱两可的盲点&#xff0c;自己总结一下留着以后回顾。 本文分以下几个层面&#xff0c;主打用最最通俗的语言来阐述。 布局小例子viewport作用viewport和移动端适配的关系flexibl…

python-json

demjson.encode(self, obj, nest_level0) &#xff1a;用于将 Python 对象编码成 JSON 字符串。 #!/usr/bin/python import demjsondata [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ]json demjson.encode(data) print json demjson.decode(self, txt) &#xff1a;解码 JSON 数…

计算机基础知识--编码知识

编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时&#xff0c;在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了&#xff0c;搞Python不把编码彻底搞明白&#xff0c;总有一天它会猝不及防坑你一把。 不过感觉这哥们的答案并没把编码问题写明…

Linux——安装FTP服务器

1、检查安装vsftpd软件 使用如下命令#rpm -qa |grep vsftpd可以检测出是否安装了vsftpd软件&#xff0c; 如果没有安装&#xff0c;使用YUM命令进行安装。 2、启动服务 使用vsftpd软件&#xff0c;主要包括如下几个命令&#xff1a; 启动ftp命令#service vsftpd start 停止ftp…

测试开发面试准备之Selenium 工作原理

Selenium 经历了两个版本&#xff0c;Selenium 1.0 和 Selenium 2.0&#xff0c;本文仅介绍Selenium2的原理&#xff0c;在Selenium 2.0 主推的是WebDriver,Selenium2又名Selenium Webdriver。 Selenium2简介 Selenium是一个用于Web应用程序测试的工具&#xff0c;支持多平台、…

CodeForces 11D(状压DP 求图中环的个数)

Given a simple graph, output the number of simple cycles in it. A simple cycle is a cycle with no repeated vertices or edges. Input The first line of input contains two integers n and m (1 ≤ n ≤ 19, 0 ≤ m) – respectively the number of vertices an…

vue插槽的使用(slot)

插槽 该页面假设你已经阅读过了组件基础。如果你还对组件不太了解&#xff0c;推荐你先阅读它。 插槽内容 Vue 实现了一套内容分发的 API&#xff0c;这套 API 基于当前的 Web Components 规范草案&#xff0c;将 <slot> 元素作为承载分发内容的出口。 它允许你像这样合成…

图片与二进制流转换

#region//图片转换为二进制流 public void PictureToBinaryStream() { //获取当前程序运行路径 string path Application.StartupPath; //拼接成测试图片路径 string fullPath path "\\images\\test.png"; //初始化类 Bitmap bmp…

仿MIUI弹性列表

前言 最近去小米之家体验了下小米9&#xff0c;发现MIUI有一个挺特别的列表动画效果&#xff0c;在系统上的各种应用上都能见到它的身影。 网上查了下&#xff0c;小米早在几个系统版本前就有这个&#xff0c;网上也有了实现这个效果的控件库。实现方法大同小异&#xff0c;大多…

10、angular的全部api

1、lowercase var app angular.module(myApp, []);app.controller(myCtrl, function($scope) { console.log(angular.lowercase(AbCdEf))}); 2、uppercase var app angular.module(myApp, []);app.controller(myCtrl, function($scope) { console.log(angular.uppercas…