本期介绍Linux系统启动过程 Linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 1、内核的引导。 2、运行 init。...内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux系统有7个运行级别(runlevel): 1、运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 2、运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
本期接着上期内容继续介绍Linux系统启动过程 建立终端 rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。 init接下来会打开6个终端,以便用户登录系统。...用户登录系统 一般来说,用户的登录方式有三种: (1)命令行登录 (2)ssh登录 (3)图形界面登录 对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。...Linux 的账号验证程序是 login,login 会接收 mingetty 传来的用户名作为用户名参数。...图形模式与文字模式的切换方式 Linux预设提供了六个命令窗口终端机让我们来登录。...Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
Boot Loader阶段: 引导程序是一段特殊的代码,通常被称为Boot Loader,它负责加载操作系统内核并初始化系统环境。常见的Boot Loader有GRUB、LILO和SYSLINUX等。...在Linux中,Boot Loader通常安装在硬盘的MBR (Master Boot Record)或EFI系统分区。...当Boot Loader加载时,它会在引导选项菜单中显示可用的内核版本,用户可以选择要引导的内核。 Kernel初始化阶段: 内核是操作系统的核心,它控制着系统的各种操作。...内核初始化的过程包括以下几个步骤: 加载驱动程序:内核会加载与硬件设备对应的驱动程序,并初始化这些设备。驱动程序通常存储在内核模块中,可以在运行时加载和卸载。...启动init进程:内核会在用户空间启动第一个进程——init进程。init进程是所有进程的祖先进程,它负责启动和管理所有其他进程和服务。
要了解Android手机启动过程,我们先来了解一下基于linux系统的电脑从按下电源键的那一刻起,发生了什么,这样类比可以更好的理解Android手机的启动过程。...基于Linux的pc启动过程 我们都知道,所有的程序软件包括操作系统都是运行在内存中的,然而我们的操作系统一般是存放在硬盘上的,当我们按下开机键的时候,此时内存中什么程序也没有,因此需要借助某种方式,将操作系统加载到内存中...基于linux的操作系统而言,计算机将分三批逐次加载操作系统的代码,第一批由BIOS中断int 0x19将第一扇区bootsect的内容加载到内存;第二批和第三批在bootsect的指挥下,分别加载后面扇区的内容到内存中...Android手机的启动过程 Android系统虽然也是基于linux系统的,但是由于Android属于嵌入式设备,并没有像pc那样的BIOS程序。取而代之的是Bootloader——系统启动加载器。...当linux内核启动后会初始化各种软硬件环境,加载驱动程序,挂载根文件系统,并开始执行根文件系统的init程序,init程序是Android启动过程中最重要的核心程序。
系统的加电自检和启动 MBR BIOS读硬盘的过程会先读主启动记录MBR 存放在硬盘/软盘的首扇区 存放和OS启动的相关信息 512BYTES 结束:0Xaa55h 硬盘扇区 硬盘扇区如上图划分,...主启动扇区:完成OS加载或启动管理功能 提供菜单:让用户选择不同的启动项,实现多重启动 加载核心文化:直接指向可启动区加载操作系统 跳转:将启动管理功能转交给其他loader BIOS和MBR程序运行过程...PBR继续控制后面的引导过程 操作系统的启动 (1)初始引导 目的:把OS的核心装入内存并使之开始工作接管计算机系统 过程: 1)加电,JUMP POST 2)BIOS中的启动程序: 读取0面...1.POST 2.加电后BIOS启动主机自检程序 3.初始引导 BIOS从MBR读取引导程序,装入内存的特点文职 引导程序启动DOS7.0,调入操作系统核心 WINDOWS开始接管系统 4....核心初始化 资源状态、核心数据等初始化 5.系统初始化 GUI界面生成,系统处于待命/消息接受状态 Linux启动过程 POST->MBR->KERNEL映像(内核映像)->KERNEL映像自解压并执行
不知道大家有没有产生过一个疑问:从给 Linux 服务器按下开机电源按钮后到启动成功的一段时间里,在这中间 Linux 操作系统都做了哪些事情?...在 Linux 服务器没有通电的时候,操作系统还只是躺在硬盘启动区中的一段程序,CPU 没有工作,内存也没有启动。但是在你按下开机键后,Linux 服务器内部就开始变得热闹了起来。...叫做《Linux 源码趣读》。这周,这本新书正式印刷出炉了。 对于 Linux 启动过程,代码的运行在书中总结成下面一张图来表示。但分了 50 小节来讲述每一个步骤中的细节。...其中每一个 init 函数都对应着操作系统某个模块的初始化过程。...上面描述的这些都是操作系统的第 0 号内核线程处理的。在操作系统中,0号内核线程是所有进程祖先,是操作系统Linux在初始化阶段从无到有的第一个内核线程 接着最后会切换到用户态模式。
Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。...---- 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别
IOS/UEFI阶段计算机通电,BIOS或UEFI启动。进行硬件初始化、POST(Power-On Self-Test)自检,检查设备的可用性。BIOS/UEFI查找启动设备,并加载引导加载程序。...提供引导菜单,用户可以选择不同的内核或操作系统。引导加载程序将控制权交给操作系统内核。内核启动阶段内核被加载到内存中,解压缩,并进行初始化。内核初始化系统硬件、建立内存管理、设置中断服务等。...用户空间初始化阶段初始化管理器接管控制,启动系统服务和守护进程。系统初始化阶段可能包括加载共享库、配置网络、挂载文件系统。...用户输入凭据,登录管理器验证身份,启动用户会话。用户登录阶段登录后,系统加载用户配置文件、启动用户级别的进程。图形界面或命令行界面最终,系统进入用户的桌面环境或命令行终端。
linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...---- 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...---- Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
原文:https://www.runoob.com/linux/linux-system-boot.html Linux 系统启动过程 linux 启动时我们会看到许多启动信息。...linux 启动时我们会看到许多启动信息。 Linux 系统的启动过程并不是大家想象中的那么复杂,其过程可以分为 5 个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。...内核引导 当计算机打开电源后,首先是 BIOS 开机自检,按照 BIOS 中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...Linux 允许为不同的场合,分配不同的开机启动程序,这就叫做 "运行级别"(runlevel)。也就是说,启动时根据 "运行级别",确定要运行哪些程序。...---- Linux 关机 在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
delete : 删除指点的断点号,后面接断点号 gdb -tui main或者在启动gdb后,输入命令focus或layout: 能够在运行时间的同时显示代码 实验环境搭建.../rootfs.img 启动MenuOS系统 cd ~/LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img...(gdb)break start_kernel # 断点的设置可以在target remote之前,也可以在之后 运行启动 ?...set_task_stack_end_magic start_kernel是内核启动阶段的入口,通过单步调试,可以发现它是linux内核执行的第一个init,我们单步进入看看它做了哪些操作: ?...使用高端内存之后,32位的系统也可以访问达到64G内存。 linux_banner变量保存着linux内核的版本号: ?
所谓冷启动,也就是一般所说的上电复位,冷启动后片内外RAM的内容是随机的,通常是0x00或0xFF;单片机的热启动是通过外部电路给运行中的单片机的复位端一复位电平而实现的,也就是所说的按键复位或看门狗复位...常用的方法是:确定某内存单位为标志位(如0x40003FF4~0x40003FF7 RAM单元),启动时首先读该内存单元的内容,如果它等于一个特定的值(例如为0xAA55AA55),就认为是热启动,否则就是冷启动.../冷启动处理 unStartFlag=0xAA55AA55; } 然而实际调试中发现,无论是热启动还是冷启动,开机后所有内存单元的值都被复位为0,当然也实现不了热启动的要求。...通过看keil MDK自带的启动代码Startup.s,在这个启动代码中也并没有发现将整个RAM区域清零的语句。...反汇编程序,发现从启动代码执行结束到跳转到main函数过程中,编译器还执行了很多库函数,其中__scatterload_zeroinit函数将所有W/R RAM都初始化为0(默认设置下)。
尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。 让我们先从高级的视角来查看 Linux 引导过程,这样就可以看到整个过程的全貌了。...这就是 Linux 引导的整个过程。现在让我们深入挖掘一下这个过程,并深入研究一下 Linux 引导过程的一些详细信息。 系统启动 系统启动阶段依赖于引导 Linux 系统上的硬件。...要引导一个操作系统,BIOS 运行时会按照 CMOS 的设置定义的顺序来搜索处于活动状态并且可以引导的设备。...然后该例程会调用内核,并开始启动内核引导的过程。 当 bzImage(用于 i386 映像)被调用时,我们从 ....在桌面 Linux 系统上,第一个启动的程序通常是 /sbin/init。但是这不是一定的。
接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程: 一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下几步...下面就linux操作系统的启动过程做一详细解析记录: 加载内核 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...如果密码正确,就读取/etc/gdm3/Xsession,启动用户的会话。 进入 login shell 所谓shell,简单说就是命令行界面,让用户可以直接与操作系统对话。...打开 non-login shell 老实说,上一步完成以后,Linux的启动过程就算结束了,用户已经可以看到命令行提示符或者图形界面了。但是,为了内容的完整,必须再介绍一下这一步。
虽然“新事物取代旧事物”是必然趋势,但就目前来说,PHP 7 版本还是太新了,很多企业的网站不一定兼容。因此,本节安装的 PHP 版本为 5.4。...接下来,就一起来学习如何在 Linux 系统中安装 PHP 源码包,具体步骤如下。...的配置文件,让 apache 可以认识 PHP 脚本的扩展名。...apache 启动命令,restart 参数有时会不起作用。...> 这里我们使用了 phpinfo() 函数,这个函数的主要作用是显示 PHP 的相关信息,这些信息包括 PHP 的编译信息、PHP 的版本、服务器信息和环境、PHP 的环境、操作系统信息、路径、主要的配置选项
linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。...linux1.png 运行init init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。...linux2.png 运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。...Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。
linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。 ?...它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。 init进程的一大任务,就是去运行这些开机启动的程序。...但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。 Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。...Linux 关机 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
二、Linux启动过程 对于一台安装了Linux系统的主机来说,当我们按下开机按钮时一共要经历这几个阶段。 其中,每个过程都执行了自己该做的初始化部分的事情,有些过程又可分为好几个子过程。...三、BIOS自检那些事 稍有计算机基础的人都应该听过BIOS(Basic Input / Output System),又称基本输入输出系统,可以视为是一个永久地记录在ROM中的一个软件,是操作系统输入输出管理系统的一部分...BIOS的功能由两部分组成,分别是POST码和Runtime服务。POST阶段完成后它将从存储器中被清除,而Runtime服务会被一直保留,用于目标操作系统的启动。...3.完成了系统所有的启动任务后,linux会启动终端或X-Window来等待用户登录。...tty1,tty2,tty3...这表示在运行等级1,2,3,4的时候,都会执行"/sbin/mingetty",而且执行了6个,所以linux会有6个纯文本终端,mingetty就是启动终端的命令。
我们知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。...本节,我们就来看看启动引导程序加载内核的过程,当然 initramfs 这个虚拟文件系统也是要靠启动引导程序调用的。...GRUB加载内核的过程GRUB 的作用有以下几个:加载操作系统的内核;拥有一个可以让用户选择的的菜单,来选择到底启动哪个系统;可以调用其他的启动引导程序,来实现多系统引导。...答案是空间不够,GRUB 的功能非常强大,MBRM 空间是不够使用的。那么 Linux 的解决办法是把 GRUB 的程序分成了三个阶段来执行。...接下来内核就可以接管启动过程,继续自检与加载硬件模块了。
领取专属 10元无门槛券
手把手带您无忧上云