`
DavyJones2010
  • 浏览: 154184 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux: Startup Analysis I -- Overall intro

阅读更多

Linux startup process: 

1> POST 加电自检
     1) CMOS      -> 是指固化在主板上的程序,可以设定系统启动的首选项是通过光盘还是硬盘等启动。
     2) BIOS         -> 是指用来管理CMOS选项的包含GUI界面的一段管理控制程序,同样也是固化在主板上的。
     3) POST        -> Power On System Test. 固件的作用就是用来POST。
     在这个阶段会进行加电自检,固件会在硬件层面上检测所有硬件是否是正常的。如是否所有连接线已经插好,是否有损坏的电路芯片单元等。
     常用的固件设置有:
     1) 安全设置:可以为CMOS/BIOS设置密码,使得其他人无法更改启动选项。
     2) 可引导介质列表:可以用硬盘,光盘,USB等作为启动介质。
     3) 可引导介质搜索顺序:可以为启动介质设置首选项,此选项等。
     4) 电源管理:可以设置电源模式等
     5) 启动细节显示
     注意一下Linux的硬件时钟和软件时钟最好同步。
     所以在Linux系统中如果更改了硬件,例如增加了一块硬盘或者网卡,第一个步骤应该是在CMOS/BIOS中查找一下硬件是否被固件识别。
     如果在固件里边都检测不到新添加的硬件,那么就没有必要进入系统里边进行设置了,因为系统里边是看不到这些硬件的。
 
2> GRUB BootLoader
      固件在加电自检没有问题的情况下,会首先去读取MBR文件。
      MBR -- Master Boot Record(主引导记录) 位于硬盘的零柱面零磁头一扇区
在WINDOWS里边NT内核而ntldr是它的BootLoader
在Linux里边GRUB则是其BootLoader。BootLoader位于 /etc/grub.conf中,这是一个链接文件,真正位置是在/boot/grub...里
自举程序(BootLoader)的作用就是载入操作系统内核。

如上则是一段grub.conf的记录,高亮地方是Linux内核的位置。而Linux内核是一个可执行文件,需要在启动的时候进行执行。而内核的文件存放于磁盘中则是以压缩文件的方式存放的。linuz,以Z来标记。所以在启动的时候首先需要解压文件,然后运行内核程序。
关于内核的版本main-verion.sub-version.last-version我们需要特别关注sub-version,如果是奇数,则是测试版本,如果是偶数则说明是正式版本。
 
3> Kernel 
主要作用是检测并且驱动硬件。而这种检测有别于POST的检测,POST的检测是基于硬件电气层面的检测,而Kernel的这种检测是基于软件层面的检测,检测硬件驱动是否完整,硬件能否被操作系统所识别并且控制。
最后将启动进程init
4> init
init的工作:
init启动之后读取inittab()文件,执行缺省的运行级别,从而引导进程。
在UNIX系统中,init是第一个可以存在的进程,它的PID恒为1,但它也必须向一个更高级的功能负责:PID为0的内核调度器(Kernel scheduler),从而获取CPU时间。
当一个进程启动之后,它的PID不是固定的,每次都是变化的。但是init这个进程比较特殊,它的PID恒为1.
PPID: 代表着父进程的PID。
在进程管理里边有一个基本的概念:父进程终止,则子进程必须全部终止,如果子进程不终止的话,该子进程被称为孤儿进程,系统在检测到孤儿进程之后,会把它的PPID自动指向1也就是init进程。
如果子进程终止,则父进程必须得知同时切断与该子进程的联系,否则的话该子进程则变为僵尸进程,以Z标识。
  • 大小: 68.6 KB
  • 大小: 22.2 KB
  • 大小: 98.7 KB
分享到:
评论

相关推荐

    Vivado HLS | Export RTL报错 “ERROR: [IMPL 213-28]

    关于对2022.1.1以后VHLS不能生成IP核的解决补丁

    NordicSemiconductor::Device:Startup:8.27.0

    Error #541: 'NordicSemiconductor::Device:Startup:8.27.0' component is missing (previously found in pack 'NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense')

    javaWEB总结(2): load-on-startup节点

    在Java Web开发中,`load-on-startup`节点是一个至关重要的概念,特别是在Servlet容器(如Tomcat)中。这个节点通常出现在Servlet的配置文件——web.xml中,它用于指定Servlet在Web应用程序启动时的加载顺序。`load-...

    StartupPitchPerfect:Startup Pitch Perfect - 初创公司的战场

    Startup Pitch Perfect - 初创公司的。 Startup Pitch Perfect 会根据“X 换 Y”的比喻自动生成一个随机的启动和标准推介平台(例如市场、产品、战略、团队)的所有幻灯片,向您的朋友推介。 现在轮到你了! 本...

    最新版linux apache-tomcat-9.0.37.tar.gz

    5. **启动、停止和管理**:Apache Tomcat提供了一系列的脚本用于管理服务,如`bin/startup.sh`用于启动Tomcat,`bin/shutdown.sh`用于关闭Tomcat。这些脚本需要使用`sudo`权限执行。 6. **配置**:Tomcat的配置文件...

    startup-Bytedrops-2021:Starup-Bytedrops-2021

    【标题】"Startup-Bytedrops-2021"是一个与初创公司Bytedrops在2021年的活动或项目相关的主题。这个标题暗示了可能包含的是该公司的技术文档、项目代码、会议记录或者市场策略等内容,尤其关注点在于其在2021年的...

    Oracle10g视图的神图

    - **STARTUP_TIME**:启动时间。 - **LAST_BROWSED_SEQ**:最后浏览序列号。 - **LAST_BROWSED_NUM**:最后浏览编号。 - **LAST_DEQUEUE**:最后出队时间。 #### 全球固定视图(GV$ views) **概述:** 除了...

    nacos-server-2.3.0压缩包

    Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):sh startup.sh -m standalone如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:bash startup.sh -m ...

    EurekaLog_7.5.0.0_Enterprise

    3)....Added: IDE F1 help integration (on CHM-based IDEs only, i.e. XE8+) 4)....Added "--el_injectjcl", "--el_createjcl", and "--el_createdbg" command-line options for ecc32/emake to inject JEDI/JCL ...

    tomcat启动的问题--apr

    2010-8-11 18:24:13 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 984 ms 2010-8-11 18:24:13 org.apache.catalina.core.StandardService start 信息: Starting service Catalina ...

    C51启动文件--STARTUp.A51--详细注释.docx

    ### C51启动文件STARTUp.A51详细解析 #### 文件概述 《C51启动文件--STARTUp.A51--详细注释.docx》是一份关于C51语言编程中启动文件(STARTUp.A51)的详细介绍文档。这份文档主要针对的是使用Keil C51编译器进行...

    MACINTOSH

    - **Bypass primary startup volume and seek a different startup volume (such as a CD or external disk)**:启动时按下 `Option-Command-Shift-Delete`,这可以让你跳过默认的启动磁盘,选择其他的启动介质如 CD...

    XShell5-Startup-Script-master.zip

    解压后,我们可以看到一个名为"XShell5-Startup-Script-master"的文件夹,这通常包含了脚本源代码、使用说明或其他相关辅助文件。用户需要根据自己的操作系统环境,对脚本进行适当的修改和配置,然后将它设置为...

    思科命令与华为命令对比

    - 思科:`erase startup-config`或`delete flash:startup-config` - 华为:`delete configuration` 9. **加密密码** - 思科:明文`0`,密文`7` - 华为:未直接提及,但可以使用`service password-encryption`...

    创建oracle的后台服务OracleServiceORCL

    其中,-STARTUP 指定启动服务,-SID 指定服务的 SID,-USRPWD 指定服务的口令,-STARTTYPE 指定服务的启动类型,-PFILE 指定服务的参数文件。 关闭服务的基本语法为: oradim -SHUTDOWN -SID sid [-USRPWD 口令] ...

    spring-startup-analysis:用于分析Java Spring中的bean构建的简单模块

    弹簧启动分析仪 该项目被设计为一个模块,您可以通过Maven引入,它会生成类似于下... <artifactId>spring-startup-analysis <version>1.1.0 将以下基本软件包添加到您的组件中: com.github.lwaddicor.springstartu

    Linux——java环境部署

    - 使用`rpm`安装JDK: `rpm -ivh jdk-7u25-linux-i586.rpm` - 查看已安装的JDK版本: `rpm -qa | grep jdk` - 卸载JDK: `rpm -e --nodeps jdk-1.6.0_16-fcs` 3. **配置JDK环境变量**: - 全局环境变量设置: - ...

    ARM-Linux-load-at-startup.rar_linux manual

    "ARM-Linux-load-at-startup.rar_linux manual"这个压缩包提供了一份关于如何在Linux启动时自动加载程序的手册,主要针对ARM平台。这个手册可能包含了对Linux内核配置、init系统、系统启动脚本以及相关工具的详细...

Global site tag (gtag.js) - Google Analytics