Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux系统开机加电后发生了什么?

linux系统开机加电后发生了什么?

作者头像
用户7686797
发布于 2021-09-29 09:04:42
发布于 2021-09-29 09:04:42
2.7K00
代码可运行
举报
文章被收录于专栏:Linux内核那些事Linux内核那些事
运行总次数:0
代码可运行

linux系统的启动流程

关于linux系统的启动流程我们可以按步进行划分为如下:

  • BIOS
    • POST自检
    • BIOS(Boot Sequence)
  • 引导操作系统
    • 加载对应引导上的MBR(bootloader)
    • 主引导设置加载其BootLoader
  • 加载操作系统

启动BIOS,准备实模式下的中断向量表和中断服务程序

电脑启动后,CPU逻辑电路被设计为只能运行内存中的程序,没有能力直接运行存在于软盘或硬盘中的操作系统,如果想要运行,必须要加载到内存(RAM)中。

BIOS是如何启动的,CPU硬件逻辑设计为在加电瞬间强行将CS值置为0XF000,IP为0XFFF0,这样CS:IP就指向0XFFFF0这个位置,这个位置正是BIOS程序的入口地址。

BIOS程序被固化在计算机主机板上的一块很小的ROM芯片里。现在CS:IP已经指向了0XFFFF0这个位置,意味着BIOS开始启动。

POST自检

BIOS的第一步动作就是进行 上电自检(POST)

POST的工作是检查硬件设备。随着BIOS程序的执行,屏幕上会显示显卡的信息,内存的信息等,

初始化设备

BIOS的第二步动作就是 枚举本地设备并初始化

有一项对启动操作系统至关重要的工作,那就是BIOS在内存中建立中断向量表和中断服务程序

BIOS程序在内存最开始的位置(0x00000)用1KB的内存空间(0x00000~0x003FF)构建中断向量表,在紧挨着它的位置用256KB的内存空间构建BIOS数据区(0x00400~0x004FF),并在大约57KB以后得位置(0x0e05b)加载了8KB左右的与中断向量表相应的若干中断服务程序。

中断向量表有256个中断向量,每个中断向量占4个字节,其中两个字节是CS值,两个字节是IP值。每个中断向量都指向一个具体的中断服务程序。

BIOS-runtime服务按照boot启动顺序搜索设备,寻找BBR

由于BIOS功能使用上的不同,它由两个部分组成:POST和runtime服务。POST完成后,它将从存储器中被清除,但是BIOS runtime服务会被保留,用于目标操作系统。

为了启动操作系统,BIOS的runtime服务将搜索那些激活状态的或是可引导启动的设备,搜索的顺序则由CMOS设置决定(也就是我们平时所谓的在BIOS中设置的启动顺序)。一个软驱,一台光驱,一个硬盘上的分区,网络上的设备甚至一个usb 闪存盘都可以作为一个启动设备。

当然,linux通常是从硬盘启动的。硬盘上的MBR(主启动记录)包含有基本的boot loader,它是一个512字节大小的扇区,位于磁盘的第一个扇区(0磁头0磁道1扇区)。当MBR被装载到RAM中后,BIOS就会将控制权转交给MBR。

引导操作系统内核并为保护模式做准备

位于MBR中的主 boot loader 是一个512字节的镜像,其中不仅包含了 bootload 程序代码,还包含了一个小的分区表。

最初的446字节是主 boot loader,它里面就包含有可执行代码以及错误消息文本。接下来的64字节是分区表,其中包含有四个分区的各自的记录(一个分区占16字节)。MBR 通过特殊数字 0xAA55(译者注:在电子界中 AA55 确实是具有传奇色彩的数字,想知道为什么么?将它展开成二进制形式,看看有什么规律)作为两个字节的结束标志。0x55AA 同时也是 MBR 有效的校验确认。

首先对CPU发送 int 0x19 中断,使CPU运行 int 0x19 中断对应的中断服务程序,这个中断服务程序的作用就是把软盘第一个扇区的程序加载到内存的指定位置。

主 boot loader 的工作是寻找并加载次 boot loader(内核加载程序)

它通过分析分区表,找出激活分区来完成这个任务,当它找到一个激活分区时,它将继续扫描剩下的分区表中的分区,以便确认他们都是未激活的。

确认完毕后,激活分区的启动记录(次 boot loader)从设备中被读到 RAM,并被执行。

其中加载过程需要借助 BIOS 提供的int 0x13中断向量指向的中断服务程序来完成。该程序将软盘第二个扇区开始的4个扇区,即 setup.s 对应的程序加载至内存的 SETUPSEG(0x90200)处。

把第一阶段和第二阶段的 boot loaders 联合起来,就是在x86个人电脑中,我们所说的 linux loader(LILO)或者 GRand Unified Bootloader(GRUB)。由于 GRUB 修正了一些 LILO 中存在的缺陷,因此下面就让我们来看看 GRUB(如果你希望得到更多的关于 GRUB,LILO 和与之相关话题的讨论资源,请见文后的参考资料)

对于 GRUB 来说,一个比较好的方面就是它包含了 linux 文件系统的知识。与LILO使用裸扇区不同的是,GRUB 能够从 ext2 或者 ext3 文件系统中加载 linux 内核。它是通过将本来两阶段的 boot loader 转换成三个阶段的 boot loader。在第一阶段(MBR)中会启动 stage1.5 的 boot loader 来理解 linux 内核镜像中的特殊的文件系统格式,例如,reiserfs_stage1-5(用于从reiserf日志文件系统中进行加载)或 e2fs + stage1_5 (用于从wxt2或ext3文件系统进行加载)。当 stage1.5 的 boot loader 被加载并运行时,stage2 的 boot loader 才能被加载。当 stage2 被加载时,GRUB能根据请求的情况显示一个可选内核的清单(在 /etc/grub.conf 中进行定义,同时还有几个软符号链接 /etc/grub/menu.lst/etc/grub.conf)。你可以选择一个内核,修改其附加的内核参数。同时,你可以选择使用命令行的shell来对启动过程进行更深层次的手工控制。

在次 boot loader 存在与内存中后,就可以对文件系统进行查询了,同时将默认的内核镜像以及初始化内存盘镜像也被加载到内存中。

一切准备完毕之后,次 boot loader 就会调用内核镜像,完成操作系统的加载。

加载内核并从实模式转换为保护模式

当内核映像被加载到内存中(加载过程仍然用int 0x13中断向量),并且次引导加载程序释放控制权之后,内核阶段就开始了。

加载内核镜像

内核映像并不是一个可执行的内核,而是一个压缩过的内核映像。通常它是一个 zImage(压缩映像,小于 512KB)或一个 bzImage(较大的压缩映像,大于 512KB),它是提前使用 zlib 进行压缩过的。在这个内核映像前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压,然后将其放入高端内存中,如果有初始 RAM 磁盘映像,就会将它移动到内存中,并标明以后使用。然后该例程会调用内核,并开始启动内核引导的过程。

当 bzImage(用于 i386 映像)被调用时,我们从 ./arch/i386/boot/head.Sstart 汇编例程开始执行。

这个例程会执行一些基本的硬件设置,并调用 ./arch/i386/boot/compressed/head.S 中的 startup_32,设置一个基本的环境(堆栈等),并清除 Block Started by Symbol(BSS)。然后调用一个叫做 decompress_kernel 的 C 函数(在 ./arch/i386/boot/compressed/misc.c 中)来解压内核。当内核被解压到内存中之后,就可以调用它了。这是另外一个 startup_32 函数,但是这个函数在 ./arch/i386/kernel/head.S 中。

进入保护模式并初始化

  • 进入保护模式
  • 设置中断描述附表和全局描述符表
  • 创建了内存分页机制

启动内核

  • start_kernel启动内核
  • 创建init进程

BIOS阶段–准备实模式下的中断向量表和中断服务程序

BIOS是什么

上个世纪70年代初,”只读内存”(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片,计算机通电后,第一件事就是读取它。计算机,启动这块芯片里的程序叫做”基本輸出輸入系統”(Basic Input/Output System),简称为BIOS。

它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

BIOS存储的信息

BIOS芯片中主要存放:

  • 自诊断程序:通过读取CMOSRAM中的内容识别硬件配置,并对其进行自检和初始化;
  • CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中;
  • 系统自举装载程序:在自检成功后将磁盘相对0道0扇区上的引导程序装入内存,让其运行以装入DOS系统;
  • 主要I/O设备的驱动程序和中断服务:由于BIOS直接和系统硬件资源打交道,因此总是针对某一类型的硬件系统,而各种硬件系统又各有不同,所以存在各种不同种类的BIOS,随着硬件技术的发展,同一种BIOS也先后出现了不同的版本,新版本的BIOS比起老版本来说,功能更强。

BIOS:计算机加电自检完成后第一个读取的地方就是就是BIOS(Basic Input Output System,基础输入输出系统),BIOS里面记录了主机板的芯片集与相关设置,如CPU与接口设备的通信频率、启动设备的搜索顺序、硬盘的信息、系统时间、内存信息、时钟信息、PnP特性、外部总线、各种接口设备的I/O地址、已经与CPU通信的IRQ中断信息,所以,启动如果要顺利启动,首先要读取BIOS设置。

计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。

电脑启动后,CPU逻辑电路被设计为只能运行内存中的程序,没有能力直接运行存在于软盘或硬盘中的操作系统,如果想要运行,必须要加载到内存(RAM)中。

BIOS是如何启动的

CPU硬件逻辑设计为在加电瞬间强行将CS值置为0XF000,IP为0XFFF0,这样CS:IP就指向0XFFFF0这个位置,这个位置正是BIOS程序的入口地址。

BIOS需要在内存中加载中断向量表和中断服务程序

BIOS程序被固化在计算机主机板上的一块很小的ROM芯片里。现在CS:IP已经指向了0XFFFF0这个位置,意味着BIOS开始启动。随着BIOS程序的执行,屏幕上会显示显卡的信息,内存的信息,说明BIOS程序在检测显卡,内存,这个就是POST开机自检期间,有一项对启动操作系统至关重要的工作,那就是BIOS在内存中建立中断向量表和中断服务程序

BIOS程序在内存最开始的位置(0x00000)用1KB的内存空间(0x00000~0x003FF)构建中断向量表,在紧挨着它的位置用256KB的内存空间构建BIOS数据区(0x00400~0x004FF),并在大约57KB以后得位置(0x0e05b)加载了8KB左右的与中断向量表相应的若干中断服务程序。

中断向量表有256个中断向量,每个中断向量占4个字节,其中两个字节是CS值,两个字节是IP值。每个中断向量都指向一个具体的中断服务程序。

BIOS阶段的工作

POST开机自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做”硬件自检”(Power-On Self-Test),缩写为POST。

如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。

电脑主机打开电源的时候,随后会听到滴的一声,系统启动开始了开机自检(POST-power on self test)自检开始)

这个过程中主要是检测计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存在

如果有硬件故障的话将按两种情况理:

  • 对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;
  • 对于非严重故障则给出提示或声音报警信号,等待用户处理),如果没有故障,POST完整自己的接力任务,将尾部工作交接给BIOS处理

加载BIOS

BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,”下一阶段的启动程序”具体存放在哪一个设备。也就是说,BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做”启动顺序”(Boot Sequence)。打开BIOS的操作界面,里面有一项就是”设定启动顺序”。

在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。

引导操作系统

硬件自检完成后,我们期望能否启动操作系统,但是问题出来了

  • 操作系统存放在哪?
  • BIOS如何找到操作系统?
  • BIOS如何加载操作系统?

背景知识

多操作系统时的启动顺序

为了寻找操作系统,BIOS按照”启动顺序”,把控制权转交给排在第一位的储存设备。

这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。

如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;

如果不是,表明设备不能用于启动,控制权于是被转交给”启动顺序”中的下一个设备。

这最前面的512个字节,就叫做 主引导记录(Master boot record,缩写为MBR)

主引导记录 MBR

位于MBR中的主boot loader是一个512字节的镜像,其中不仅包含了程序代码,还包含了一个小的分区表。

最初的446字节是主boot loader,它里面就包含有可执行代码以及错误消息文本。接下来的64字节是分区表,其中包含有四个分区的各自的记录(一个分区占16字节)。MBR通过特殊数字0xAA55(译者注:在电子界中AA55确实是具有传奇色彩的数字,想知道为什么么?将它展开成二进制形式,看看有什么规律)作为两个字节的结束标志。0x55AA同时也是MBR有效的校验确认。

主boot loader的工作是寻找并加载次boot loader。它通过分析分区表,找出激活分区来完成这个任务,当它找到一个激活分区时,它将继续扫描剩下的分区表中的分区,以便确认他们都是未激活的。确认完毕后,激活分区的启动记录从设备中被读到RAM,并被执行。

“主引导记录”只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。主引导记录由三个部分组成:

  • 第1-446字节:调用操作系统的机器码。
  • 第447-510字节:分区表(Partition table)。
  • 第511-512字节:主引导记录签名(0x55和0xAA)。

其中,第二部分”分区表”的作用,是将硬盘分成若干个区。

分区表

硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,”主引导记录”因此必须知道将控制权转交给哪个区。分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做“主分区”。

每个主分区的16个字节,由6个部分组成:

  • 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
  • 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
  • 第5个字节:主分区类型。
  • 第6-8个字节:主分区最后一个扇区的物理位置。
  • 第9-12字节:该主分区第一个扇区的逻辑地址。
  • 第13-16字节:主分区的扇区总数。

最后的四个字节(”主分区的扇区总数”),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2的32次方。

如果每个扇区为512个字节,就意味着单个分区最大不超过2TB。再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的空间最大也不超过2TB。

如果想使用更大的硬盘,只有2个方法:

  • 一是提高每个扇区的字节数,
  • 二是增加扇区总数。

MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序

引导加载程序(Boot loader): 一支可读取内核文件来执行的软件

内核文件:开始操作系统的功能

引导操作系统的过程

由硬盘启动时,BIOS通常是转向第一块硬盘的第一个扇区,即主引导记录(MBR)。装载GRUB和操作系统的过程,包括以下几个操作步骤:

装载记录

基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。

装载Grub

这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统。

装载系统

如linux内核。GRUB把机器的控制权移交给操作系统。

不同的是,微软操作系统都是使用一种称为链式装载的引导方法来启动的,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区。

加载主引导加载程序-基本装载程序

众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。

按照BIOS所设定的系统启动流程,如果检测通过,则根据引导次序(Boot Sequence)开始在第一台设备上支持启动程序,我们的启动设备主要包括硬盘、USB、SD等,我们一般用的是硬盘,然后进行读取第一个设备就是硬盘,第一个要读去的就是该硬盘的主引导记录MBR(Master Boot Record),然后系统可以根据启动区安装的引导加载程序(Boot Loader)开始执行核心识别的工作。

MBR程序只是找到只是硬盘分区内最前面的446个字节的Boot Loader,然后查找相关配置和定义。

然后将控制权交给主引导代码。主引导代码的任务包括

  • 扫描分区表,找到一个激活(可引导)分区;
  • 找到激活分区的起始扇区;
  • 将激活分区的引导扇区装载到内存7C00处;
  • 将控制权交给引导扇区代码;

加载次引导记载程序–高级装载程序bootload如GRUB

系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。

这时,计算机的控制权就要转交给硬盘的某个分区了,这里又分成三种情况。

  • 情况A:卷引导记录

上一节提到,四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做“卷引导记录”(Volume boot record,缩写为VBR)。“卷引导记录”的主要作用是,告诉计算机,操作系统在这个分区里的位置。然后,计算机就会加载操作系统了。

  • 情况B:扩展分区和逻辑分区

随着硬盘越来越大,四个主分区已经不够了,需要更多的分区。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成“扩展分区”(Extended partition)。所谓“扩展分区”,就是指这个区里面又分成多个区。这种分区里面的分区,就叫做”逻辑分区”(logical partition)。

计算机先读取扩展分区的第一个扇区,叫做“扩展引导记录”(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。

计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。

但是,似乎很少通过这种方式启动操作系统。如果操作系统确实安装在扩展分区,一般采用下一种方式启动。

  • 情况C:启动管理器

在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的“启动管理器”(boot loader),由用户选择启动哪一个操作系统。

Linux环境中,目前最流行的启动管理器是Grub。

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。

为什么这么复杂

早期的操作系统并没有那么复杂,当然bootload也没有那么多功能,但是如今我们的操作系统越来越复杂,bootload也越来越庞大,而且如今在一台电脑上安装多系统变得那么平常,因此之前简单的bootload已经无法满足这些功能。

BIOS和MBR都是硬件本身会支持的功能,至于Boot Loader则是操作系统安装在MBR上面的一套软件。由于MBR仅有446bytes而已,因此这个引导加载程序是非常小而完美的。这个BootLoader的主要任务如下

  • 提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能
  • 载入内核文件:直接指向可开机的程序段来开始操作系统。
  • 转交其他Loader:将引导加载功能转交给其他loader负责

上面的前两点还容易理解,但是第三点很有趣!那表示你的计算机系统里面可以具有两个以上的引导加载程序呢。有可能吗?我们的硬盘不是只有一个MBR而已?但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区。

举一个例子来说,假设你的个人计算机只有一块硬盘,里面分成4个分区。其中第一,二分区分别安装了Windows及Linux,你要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR内安装的是可以同时识别Windows和Linux操作系统的引导加载程序,那么整个流程如下

做个总结就是这样:

  • 每个分区都有自己的启动扇区
  • 系统分区为第一及第二分区
  • 实际可开机的内核文件是放置到各分区内的
  • loader只会认识自己的系统分区内的可开机内核文件,以及其他的Loader而已
  • loader可直接指向或者是间接将管理权交给另一个管理程序

现在想一下,为什么人家常说:”如果要安装多重引导,最好先安装Windows再安装Linux呢“?

这是因为Linux在安装时,你可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的Loader可以手动设置菜单,所以你可以在Linux的Boot Loader里面加入Windows开机选项

Windows在安装的时候,他的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且他没有让我们自己选择菜单功能

加载操作系统内核

用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

linux内核获得控制权之后开始干自己的事

  • 检测硬件
  • 解压缩自己并安装必要驱动
  • 初始化与文件系统相关的虚拟设备,LVM或RAID
  • 装载根文件系统,挂在根目录下面
  • 完成之后,linux在进程空间里面加载init程序,下面轮到init干活

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。

系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

启动第五步 用户层init依据inittab文件来设定运行等级

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

  • 0:关机
  • 1:单用户模式
  • 2:无网络支持的多用户模式
  • 3:有网络支持的多用户模式
  • 4:保留,未使用
  • 5:有网络支持有X-Window支持的多用户模式
  • 6:重新引导系统,即重启

关于/etc/inittab文件的学问,其实还有很多

init进程执行rc.sysinit

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的

启动内核模块

具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

执行不同运行级别的脚本程序

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

执行/etc/rc.d/rc.local

你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 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程序,进入登录状态

此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。

转载:

https://blog.csdn.net/gatieme/article/details/50914250

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux内核那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
主数据:为何成为制造业数字化转型的“秘密武器”
在制造业迈向数字化转型的新时代,数据已跃升为企业创新的“新石油”,是推动竞争力攀升的关键资源。主数据,它横跨企业各个业务部门与系统,是确保数据一致性、精确性和时效性的坚固基石。接下来,让我们深入探讨制造业主数据管理的核心要素、重要性及实施主数据管理系统的必要性,并通过三个案例,揭示主数据在制造业数字化转型中的非凡价值。
数据狗忙忙忙
2025/05/14
1010
Tapdata 杨哲轩:如何在零售行业实施主数据治理?
今天想和大家聊聊如何选择主数据管理方案。在上一篇文章里,我们谈到了数据孤岛形成的原因,简单地介绍了主数据管理的概念和主数据管理为何能发挥作用。
Tapdata
2022/12/06
5010
Tapdata 杨哲轩:如何在零售行业实施主数据治理?
主数据管理理论与实践
本文介绍了主数据的概述,包括主数据的定义、特征、类型、和其他数据的关系,主数据管理的意义,主数据管理的实施痛点,主数据管理的内容,主数据的管理实施方法以及项目实施示例等内容,为对主数据和数据管理有研究兴趣的朋友提供了一定的参考。
大数据学习与分享
2022/07/13
7970
主数据管理理论与实践
数据治理:某环境公司主数据管理项目经验分享
作为企业运营的基石,主数据承载着企业决策和业务流程优化的关键。某环境股份有限公司在应对项目、组织、客商及设备与物资等多领域主数据管理挑战的过程中,不断探索与创新。现在,让我们一同深入这个案例,去探寻如何构建高效统一的主数据管理体系,从而以数据为核心驱动力,推动企业向更加智能化、高效化的未来迈进。
数据狗忙忙忙
2025/02/12
1770
实施数据治理项目是数据中心建设的关键,数字化转型的基础
企业数字化转型趋势是“数据”引领业务变革,数据集中管控成为大势所趋,如何做好数据共享和数据分析、如何发挥数据资产价值最大化是我们信息化工作首要目标,本文从基本术语及概念、数据共享服务、数据资源中心架构、数据治理平台、数据运营体系等10核心观点来阐述,实施企业级数据治理项目是数据资源中心建设的关键,是企业数字化转型和发展的基础。
Spark学习技巧
2019/10/24
1.1K0
数字化转型时代的企业数据新基建 | 爱分析报告
刚刚过去的21世纪的第二个十年,是消费互联网蓬勃发展的十年,也是云计算、大数据、人工智能等新一代信息技术,即“数字化技术”快速崛起的十年。
爱分析ifenxi
2022/07/22
5100
数字化转型时代的企业数据新基建 | 爱分析报告
经典必读:华为的数字化转型与数据治理
导读:2017 年华为提出了企业的新愿景:"把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界"。同时,华为公司董事、CIO陶景文提出了"实现全联接的智能华为,成为行业标杆"的数字化转型目标。
架构之家
2022/07/12
1.2K0
经典必读:华为的数字化转型与数据治理
数据治理方法:如何从0到1搭建企业级主数据管理平台
多年前,当我们开始“玩主数据”的时候,客户领导担心业务部门不能正确理解,把它称为“公共数据”——这个名称虽不够准确,却为普及主数据和主数据管理奠定了良好的基础。
马哥说数据
2021/05/13
1.9K0
数据治理方法:如何从0到1搭建企业级主数据管理平台
主数据建设的挑战与发展
首先介绍一下很多企业在做主数据建设中都会遇到的一些痛点和挑战。可能很多企业有的没有建主数据;有的建了分域的主数据,比如说人事域、财务域、生产域、制造域;有的是建了集团级的统一的主数据;有的还建了分级的主数据。
yuanyi928
2021/03/10
7190
主数据建设的挑战与发展
数字化时代,传统IT和数字型IT能否严格区分?
数字化转型这个话题可谓是老生常谈了,2021年我国颁布了《“十四五”规划纲要》,将“数字化转型”定为国家产业发展的重要方向。
嘉为蓝鲸
2022/08/29
6520
数字化时代,传统IT和数字型IT能否严格区分?
2022爱分析·数据智能应用实践报告
为解决数据类型丰富、数据体量倍增带来的存储问题,同时满足人工智能、机器学习在趋势预测、探索分析等方面的应用需求,同时配置数据仓库、数据湖成为企业的普遍选择。然而企业逐渐发现多架构的配置并不完美,解决既有问题的同时带来新的架构问题,如数据流通低效、数据冗余以及存储成本高。
爱分析ifenxi
2022/09/07
9620
2022爱分析·数据智能应用实践报告
谈MDM主数据管理系统设计和实现关键点
主数据是描述核心业务实体(如客户、供应商、地点、产品和库存)的一个或多个属性。所以主数据即是在进行企业业务架构分析中发现的核心业务对象。或者讲主数据是企业已经存在的涉及到价值链核心业务流程的各个IT系统的基础数据。
物流IT圈
2023/03/10
4.4K0
谈MDM主数据管理系统设计和实现关键点
数字化时代再提业务平台化
2020年,受到“黑天鹅”事件的影响,数字化加速进入各行业、企业的战略主航道。通过数字化进行业务重塑和创新,成为企业新的发力点和主战场。ThoughtWorks作为一家数字原生型咨询公司,在广泛的实践中,洞察出“业务平台化”再次成为企业数字化建设中的关键领域之一。
ThoughtWorks
2021/04/16
8600
数字化时代再提业务平台化
2022爱分析·国央企数字化实践报告
政策需要:加快推进国有企业数字化转型已然成为“十四五”时期重要工作之一,因国有经济是国民经济的主导力量,国央企则拥有更多使命特征,更是在数字化市场中催生出一批具有国央企特色化的解决方案,这些解决方案的技术能力与产品多具备异业迁移和能力整合的特点,例如数字化监督、数字融媒体等。
爱分析ifenxi
2022/07/08
1.2K0
2022爱分析·国央企数字化实践报告
国央企用泛微建立跨系统、跨部门的主数据管理系统
数据治理是国央企在数字化转型中的重要内容。2020年国务院国资委办公厅发布《关于加快推进国有企业数字化转型工作的通知》中要求:加快集团数据治理体系建设,明确数据治理归口管理部门,加强数据标准化、元数据和主数据管理工作,定期评估数据治理能力成熟度。
泛微移动办公
2023/06/29
4310
国央企用泛微建立跨系统、跨部门的主数据管理系统
建设数据资产一体化管控体系,某大型医药集团实现数据长效赋能业务发展 | 案例研究
某大型医药集团成立于1994年,是一家植根中国、创新驱动的全球化医药健康产业集团,业务覆盖制药、医疗器械、医学诊断、医疗健康服务、医药商业等医药健康全产业链。
爱分析ifenxi
2023/04/14
3340
全面解读数字化中台!
👆点击“博文视点Broadview”,获取更多书讯 面临时代的新挑战,好的企业都在加速拥抱并推进中台的建设。那么中台到底是什么呢? 01 中台是什么 要想真正理解中台,需要以三位一体的视角去解读(如图1所示),否则看到的中台都是相对片面的。 图1  三位一体的视角 ▊ 中台是一种业务和组织形态 阿里巴巴、腾讯等大公司在推出中台战略时,向外展现的都是对组织的调整,并形成“大中台+小前台”的“前台—中台—后台”的组织架构,这也是中台可以在企业深度落地的前提。 知名企业的组织调整总是能够吸引社会公众的关注。
博文视点Broadview
2023/05/06
1.1K1
全面解读数字化中台!
2021爱分析・数据智能平台实践报告-重构数据智能时代的数据基础设施
数据平台是支撑企业数字化转型,实现数据分析和数据应用的底层基础设施。通过应用数据平台,企业能够实现精细化运营,从而降低运营成本、提高运营效率、提升创新能力。
爱分析ifenxi
2021/12/01
1.1K0
2021爱分析・数据智能平台实践报告-重构数据智能时代的数据基础设施
以数为擎,数字化助力药企开辟提质增效新路径|爱分析报告
面对经营利润持续承压、合规监管日益趋严,医药企业数字化转型进入快速发展期,并带来新的数字化需求。
爱分析ifenxi
2023/09/14
4570
以数为擎,数字化助力药企开辟提质增效新路径|爱分析报告
主数据管理平台产品功能组成架构
主数据是在各业务系统均被使用、共享性极高的一些数据,满足跨部门跨业务协同使用,反映核心业务实体状态属性的组织机构的基础信息,属于事务性数据。典型的主数据包括客户、产品、组织机构、物料、财务科目、人员等。
数据狗忙忙忙
2022/09/21
1.6K0
主数据管理平台产品功能组成架构
推荐阅读
相关推荐
主数据:为何成为制造业数字化转型的“秘密武器”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验