位置: 编程技术 - 正文

1 秒内启动Linux的方法(linux快速启动终端)

编辑:rootadmin

推荐整理分享1 秒内启动Linux的方法(linux快速启动终端),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux快速启动,linux一秒执行一次命令,linux一秒执行一次命令,linux快速启动,启动最快的linux,linux启动太慢,启动linux命令,linux快速启动,内容如对您有帮助,希望把文章链接给更多的朋友!

尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起 进入休眠状态。本文基于Atmel AT系列片上系统和NAND闪存,经过一系列的优化,将Linux系统启动时间,从最初的秒,降低到最终的毫秒。

背景知识

系统从上电到完全启动,需要经过许多过程。一个简化的启动流程大概包含:

硬件重置启动引导程序(bootloader)操作系统初始化应用程序执行其中硬件非常关键,但是硬件一般难以更改。后续的优化,主要针对引导程序、Linux内核和应用程序展开。

引导程序优化

引导程序主要完成对CPU的基础设置,处理ARM标记(ATAGS,ARM TAGS)或设备树(device trees),切换存储管理单元(MMU,Memory Management Unit)等工作。

对于U-Boot,常用的优化方式有:

删除不不要的功能:如网络加载等,如果不需要,那么直接移除这些代码吧;关闭不需要的功能关闭内核镜像验证关闭引导程序输出关闭启动延迟

将通用功能的引导程序修改成一个优化后的初始程序加载器(Initial Program Loader,IPL),对于U-Boot,可以通过SPL(Second Program Loader,第二阶段程序加载器)来实现。

内核优化

Linux内核被设计的非常灵活,可以针对需要的功能做各种配置优化。因此,优化内核对于系统启动速度是至关重要的。

首先,移除一切不要的驱动,尽可能的减少内核加载的内容,能够大大缩短系统启动时间。其次,还有很多内核选择可能需要进一步尝试,比如内核压缩方 式,对于嵌入式系统来说,LZO压缩方式,通常会是一个不错的选择。最后,还可以通过定制一些启动参数,达到加快启动的目的。例如可以通过“lpj=”参 数,预设每个循环需要的节拍数(loops per jiffy,lpj)的值,避免系统在启动时自动推算。这样在基于ARMv5的系统中,可以节省ms以上的时间。

对于内核启动的优化,可以通过bootgraph.pl脚本(位于内核源码的script/bootgraph.pl)来绘制内核启动耗时图表,用以分析启动最耗时的地方。这个脚本使用非常简单,直接将dmesg的输出作为其输入,即可生成svg图表:

生成的图表如下图,

图中每一个色段表示一个功能的初始化耗时。可以简单的关闭不需要的功能,或者针对功能进行特定的优化。

除了内核本身之外,内核所在的文件系统也对系统启动有着非常大的影响。对于使用闪存芯片作为存储的系统来说,UbiFS是一个很好的选择。它能够容忍意外断电,有着出色的挂载速度,以确保系统快速启动。

应用程序优化

1 秒内启动Linux的方法(linux快速启动终端)

内核完成系统启动之后,接来下就是执行应用程序。对于应用程序的优化,主要有两部分,一部分是由应用程序来接管启动的INIT进程,另一部分是优化应用程序的链接方式。

标准的SystemV INIT程序,需要执行一堆启动脚本。对于嵌入式系统来说,大部分是没有意义的。另一部分(比如挂载文件系统),可以由应用程序自己来实现。然后,可以在内核启动参数中通过“init=”参数,将INIT进程直接指定为应用程序。

应用依赖的动态链接库,会按照以下顺序查找:

LD_PRELOAD环境变量指定的路径(一般对应文件/etc/ld.so.preload);ELF .dynamic节中DT_RPATH入口指定的路径,若DT_RUNPATH入口不存在的话;环境变量LD_LIBRARY_PATH指定的路径,但如果可执行文件有setuid/setgid权限,则忽略这个路径;编译时指定--library-path会覆盖这个路径;

ELF .dynamic节中DT_RUNPATH入口指定的路径;ldconfig缓存中的路径(一般对应/etc/ld.so.cache文件),若编译时使用了-z nodeflib的链接选项,则此步跳过;/lib,然后/usr/lib路径 ,若使用了-z nodeflib链接选项,则此步亦跳过;

因此,尽可能的将应用程序依赖的动态链接库放到优先查找的路径,可以加快链接速度。对于交叉编译环境特别需要注意,主机上的动态链接库位置和目标系统上的位置可能不一致,这会增加应用程序执行时动态链接库的加载时间。

总结

基于上面提到的三个优化点,可以将系统的启动时间,从最初的s降低到ms(数据参考Jan Altenberg在都柏林举行的嵌入式Linux会议上的演讲稿)。从硬件到引导程序再到内核最后到应用程序,每个启动步骤都有自己可优化的地方,经过一些简单的优化,就可以减少系统的启动时间。

ps:linux下启动和关闭网卡命令

ifup、ifdown:linux命令   实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的设置参数来启动的话,那就得要通过ifdown或ifup来实现了。   

 

ifup与ifdown真是太简单了。这两个程序其实是script而已,它会直接到 /etc/ sysconfig/network-scripts目录下搜索对应的配置文件,例如ifup eth0,它会找出ifcfg-eth0这个文件的内容,然后加以设置。关于ifcfg-eth0的设置请参考前一章连上Internet的说明。

  不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内,否则会启动失败。另外,如果以ifconfig eth0来设置或者是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用ifconfig修改完毕后,应该要以ifconfig eth0 down才能够关闭该接口。

如何让LINUX网卡开机自动启动

激活网卡的命令是:ifconfig eth0 up你既然知道了命令,自己做一个脚本,放在启动项目就可以了。

建议通过编辑网卡配置文件修改网卡配置文件保存在/etc/sysconfig/network-scripts目录下面,第一块网卡的文件是ifcfg-eth0,第二块是ifcfg-eth1,以此类推,所以,如果如果你有一块,那么你就输入一下命令vi /etc/sysconfig/network-scripts/ifcfg-eth0,打开之后,将ONBOOT=no,改为ONBOOT=yes,(如果没有,手动添加ONBOOT=yes),保存退出,重启服务。

在/etc/sysconfig/network-scripts中添加ONBOOT=yes设置网络开机自动启动

以上内容是大家介绍了1秒内启动linux的方法,对启动linux相关知识感兴趣的朋友一起学习吧。

Linux下启动tomcat的方法 tomcat是随机启动的,所以在开启服务器的时候要手动开启tomcat,不然没法访问(网上说可以设置随着服务器开启而开启,我还不会妮。。。)1:找到tomc

linux shell字符串内置的常用操作(获取长度、查找、替换) 之前积木网也发过相关的文章。这里呢,推荐大家使用一些内置的函数。在编写shell程序时,经常会涉及到字符串相关操作。有许多命令语句,如awk,sed

Linux更新Python版本及修改python默认版本的方法 linux下更新Python版本并修改默认版本,有需要的朋友可以参考下。很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本1、从官网下

标签: linux快速启动终端

本文链接地址:https://www.jiuchutong.com/biancheng/371408.html 转载请保留说明!

上一篇:Shell正则表达式学习笔记(Shell正则表达式获取指定字符串)

下一篇:Linux下启动tomcat的方法(linux如何启动tomcat)

  • 递延所得税资产和递延所得税负债
  • 税务师入会与不入会冲突
  • 房地产企业拆迁补偿费契税12366
  • 转出未交增值税在借方是什么意思
  • 哪些进项税额不能加计抵减
  • 差旅费计入工资成本吗
  • 半年度奖金怎么算
  • 超范围经营是不是就等于无证经营
  • 设备折旧费用的作用
  • 产品缺陷处理流程
  • 金税盘到期了
  • 税务筹划有哪些内容
  • 私对公转错了多久退回来
  • 计提增值税怎么计提
  • 预付租金就要交增值税吗
  • 公司卖出汽车怎样做账
  • 农业水费管理使用办法
  • 税控技术服务费每年都可以抵扣吗
  • 代扣代缴税种有几个
  • 房产继承税征收标准是多少
  • 第二个季度
  • 企业名称变更后社保也要变更吗
  • 多计提的冲回如何记账?
  • 进口税退税
  • 财付通转款会计分录
  • windows伪装电脑mac
  • windows无法访问共享文件夹
  • 股东认缴和实缴不一致
  • 开票税点算什么费用
  • 个税申报一年报一次吗
  • 该内存不能为read是怎么回事
  • 认证未抵扣的发票购买方能开红字信息表吗
  • 发票开出后只收到部分款怎么处理?
  • PHP:Memcached::quit()的用法_Memcached类
  • 外贸企业出口免抵退
  • 柏林亚历山大广场1980
  • 收到承兑汇票怎么签收
  • node实战
  • 个人独资企业如何做账
  • java是什么意思
  • vue组件教程
  • 城市维护建设税是什么意思
  • 年度财务报表分为哪几类
  • 制造费用月末一般有余额吗
  • 银行账户管理的直接责任人是共享中心核算会计
  • 织梦如何使用
  • 织梦一直显示上一页和下一页
  • 代扣职工个人应承担的社保费
  • 闽侯县安置房交易缴纳土地出让金
  • 当月没有凭证还能报税吗
  • 建筑业预缴税款怎么退税
  • 从事股权投资业务的企业业务招待费
  • 银行存款账面余额是企业还是银行
  • 挂其他应付款的帐怎么冲平
  • 职工教育经费中的职工培训费用可以全额扣除吗
  • 可供出售金融资产公允价值变动
  • win8操作
  • windows vista在哪里
  • win10系统开不了热点
  • windows10更新出错
  • centos pptpd
  • rrpcsb.exe - rrpcsb是什么进程 有什么用
  • win10更新后出现windows.old
  • 怎么打开windows移动中心
  • jQuery实现checkbox即点即改批量删除及中间遇到的坑
  • nodejs示例
  • kotlin开发安卓教程
  • dos删除文件夹下所有文件 不删除父目录
  • QOpenGLWindow 、QOpenGLWidget 和 QPainter混合渲染方法初探
  • wifi基本功能
  • bash 字符串操作
  • 细说javascript
  • 启动游戏使用的文件夹什么意思
  • nodejs inspect
  • jQuery插件是什么
  • 安徽农金如何查询开户行
  • 国家税务总局办公室电话
  • 北京税务网上营业厅官网
  • 徐州市哪些区域有疫情
  • 税务筹划收费标准最新
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设