linux 启动启动服务

在我曾经拥有或使用过的所有计算机中,启动速度最快的计算机是1980年代。 当您的手从电源开关移至键盘时,BASIC解释器已为您的命令准备就绪。 现代计算机从一台笔记本电脑花费15秒到一台小型家庭服务器启动花费数分钟的时间。 为什么启动时间如此不同?

1980年代的一台可直接启动到BASIC提示符的微型计算机具有一个非常简单的CPU,该CPU在上电后立即开始从内存地址中获取并执行指令。 由于这些系统的ROM中装有BASIC,因此没有加载时间-您很快就能到达BASIC提示符。 相同时代的更复杂的系统,例如IBM PC或Macintosh,花费了相当长的启动时间(约30秒),尽管这主要是由于必须从软盘上读取操作系统(OS)。 在能够加载操作系统之前,固件仅花费了几秒钟的时间。

在从磁盘启动OS之前,现代服务器通常在固件上花费几分钟而不是几秒钟。 这主要是由于现代系统的复杂性增加。 CPU不能再以全速启动并开始执行指令了。 我们已经习惯了CPU频率缩放,节省大量功率的空闲状态以及多个CPU内核。 实际上,现代CPU内部有数量惊人的简单CPU,它们可以帮助启动主CPU内核并提供运行时服务,例如在温度过高时调节频率。 在大多数CPU架构上,在CPU内部这些内核上运行的代码以不透明的二进制Blob的形式提供。

在OpenPOWER系统上,在CPU内部每个内核上执行的每条指令都是开源软件。 在具有OpenBMC的计算机 (例如IBM的AC922系统以及Raptor的TALOS II和Blackbird系统)上,这还扩展到在基板管理控制器上运行的代码。 这意味着从插入电源线到显示熟悉的登录提示所花的时间如此长,我们可以获得大量的见解。

如果您是使用Linux内核的团队的一员,则可能会引导许多内核。 如果您是从事固件工作的团队的一员,则可能会引导许多不同的固件映像,然后引导一个操作系统以确保您的固件仍能正常工作。 如果我们可以减少硬件的启动时间,那么这些团队可以提高工作效率,并且最终用户在设置系统或重新启动以安装固件或操作系统更新时可能会感激不尽。

在OpenPOWER系统上,固件通过引导存储在固件闪存芯片中的Linux内核来加载操作系统,该内核运行名为Petitboot的用户空间程序,以查找保存用户想要引导的OS的磁盘并对其执行kexec () 。 此代码重用充分利用了使Linux启动更快的努力。 即便如此,我们仍在内核配置和用户空间中找到了可以改进并轻松缩短启动时间的地方。 通过这些优化,引导Petitboot环境是引导时间的百分之几,因此我们不得不在其他地方找到更多改进。

在Petitboot环境启动之前,先有一个名为Skiboot的固件,在此之前还有Hostboot 。 在Hostboot之前是Self-Boot Engine ,它是裸片上的独立内核,可以启动单个CPU内核并从3级缓存中执行指令。 这些组件使我们可以最大程度地减少启动时间,因为它们占据了绝大多数。 也许其中一些组件没有得到充分优化,或者没有尽最大可能并行进行?

攻击的另一种途径是重新启动时间而不是启动时间。 重新启动后,我们真的需要重新初始化所有硬件吗?

像任何现代系统一样,用于提高启动(和重新启动)时间的解决方案混合在一起是并行执行更多操作,处理旧有文件以及(可能)作弊。


Stewart Smith将在1月21日至25日在新西兰基督城的linux.conf.au上介绍Booting更快 。

翻译自: https://opensource.com/article/19/1/booting-linux-faster

linux 启动启动服务

linux 启动启动服务_更快地启动Linux相关推荐

  1. 如何启动java服务以进程的方式启动

    1.如何启动java服务以进程的方式启动 在服务目录下(jar包目录下(服务名以transfer为例)),执行如下命令启动服务. nohup java -jar transfer.jar & ...

  2. linux运行隐藏文件,Linux下如何隐藏文件_网站服务器运行维护,Linux,隐藏文件

    linux系统怎样安装软件_网站服务器运行维护 linux系统安装软件的方法:1.使用apt命令进行安装,如[apt install app_name]:2.使用rpm命令进行安装,如[rpm -i ...

  3. 在Linux下如何启动MySQL服务_怎样在linux下启动mysql服务-linux下启动mysql服务的方法 - 河东软件园...

    近几日有用户在向小编询问,在linux系统下安装了Mysql数据库,软件是顺利安装了,可是不知道如何进行Mysql的相关配置才能使mysql服务的相关启动及停止操作.Mysql是目前比较流行的数据库了 ...

  4. linux 启动rsyslog服务_我的服务器怎么老这么慢,难道说是被挖矿了?linux开机启动项自查...

    黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题! 作者丨小熊爱编程 来源丨编程三分钟(coding3min) &quo ...

  5. weblogic 正在启动 wsee服务_详解LINUX安装部署weblogic集群--第二部分

    概述 续一下前几天说的安装部署weblogic集群部分,前面介绍了在每台服务器(ABCDE)安装weblogic软件,下面只在A服务器创建域,最后再拷贝到其他服务器即可. 使用Domain Confi ...

  6. 更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动

    Zing虚拟机文档Understanding Java Garbage Collection(了解Java垃圾收集) 首先说明这个Zing是收费的,但是他也是优秀的,我觉得我们可以研究下他的一些思想对 ...

  7. java启动mysq服务_启动java服务器

    Servlet Servlet担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层. Servlet是位于Web 服务器内部的服务器端的Java ...

  8. linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统

    只要打开该网站,选择你需要的 Linux/Unix 发行版,然后开始试用! -- Sk(作者) 不久前我们介绍过 OSBoxes ,该网站提供了一系列免费且开箱即用的 Linux 和 Unix 虚拟机 ...

  9. deepin efi 启动u盘_深度系统(Deepin Linux)U盘安装教程!!附学习资料,干货

    首先在深度系统(Deepin Linux)的官网下载安装镜像.准备好一个U盘,系统镜像约2.2G,所以U盘的容量应该不小于这个空间,保持至少3G以上. 镜像下载完成后打卡镜像,在Windows8和Wi ...

最新文章

  1. 苹果的组件保护机制 AuthCP
  2. oracle监听静态注册,oracle监听器动态注册于静态注册的区别
  3. java web开发小记(6)将int类型的list插入到mysql数据库
  4. WebApiClient与Asp.net core DI的结合
  5. 我今天对JavaFX的了解
  6. 【LeetCode笔记】22.括号生成(Java、DFS回溯、剪枝、括号)
  7. 在xml里追加结点时添加回车(libxml2)
  8. fopen无法创建文件_Linux中一切皆文件,除了网卡
  9. WordPress 下载量最高的十个插件
  10. [Android] The wiki of EoeAndroid
  11. 微信UnionId 部分开放
  12. 网卡驱动修改服务器,网卡驱动配置
  13. 考研英语复试口语常见问题(上岸必备)
  14. 轻松几步获得上万点击率(三)
  15. java sql 违反协议_SQLException:违反协议。Oracle JDBC驱动程序问题
  16. SpringBoot文件上传遇到的问题及解决方案
  17. FinClip | 2022 年 10月产品大事记
  18. IE6,IE7中 按钮的宽度随着内容的增多而增长
  19. Ubuntu16.04设置root密码
  20. 白杨SEO:中小企业发广告去哪个平台?一般选择哪种推广方式方法比较好?

热门文章

  1. 使用jmap来生成堆转储快照
  2. java多叉树的遍历
  3. [转]分布式中Redis实现Session终结篇
  4. 润乾数据集调用postgresql存储过程
  5. 解决javax.servlet.jsp.JspException cannot be resolved to a type
  6. python多线程同步
  7. 黑马程序员-JAVA高级视频_IO输入与输出-20天-9(切割合并文件)
  8. winrar x64 3.93如何破解
  9. 华为HCNE专题一:网络基础知识
  10. java todo error_Java全局异常处理(TODO)