精华内容
下载资源
问答
  • (1)首先是对Linux启动过程的跟踪和分析,生成详细的启动时间报告。 较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkTime最早为CELF所提供的一个内核补丁,在后来...

    (1)首先是对Linux启动过程的跟踪和分析,生成详细的启动时间报告。 较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkTime最早为CELF所提供的一个内核补丁,在后来的Kernel 2。

    6。11版本中正式纳入标准内核。所以大家可能在新版本的内核中直接启用该功能。如果你的Linux内核因为某些原因不能更新为2。6。11之后的版本,那么可以参考CELF提供的方法修改或直接下载它们提供的补丁:http://tree。celinuxforum。

    org/CelfPubWiki/PrintkTimes 开启PrintkTime功能的方法很简单,只需在内核启动参数中增加“time”即可。当然,你也可以选择在编译内核时直接指定“Kernel hacking”中的“Show timing information on printks”来强制每次启动均为内核信息增加时间戳。

    这一种方式还有另一个好处:你可以得到内核在解析启动参数前所有信息的时间。因此,我选择后一种方式。 当完成上述配置后,重新启动Linux,然后通过以下命令将内核启动信息输出到文件: dmesg -s 131072 > ktime 然后利用一个脚本“show_delta”(位于Linux源码的scripts文件夹下)将上述输出的文件转换为时间增量显示格式: /usr/src/linux-x。

    xx。xx/scripts/show_delta ktime > dtime 这样,你就得到了一份关于Linux启动时间消耗的详细报告。

    (2)然后,我们就来通过这份报告,找出启动中相对耗时的过程。 必须明确一点:报告中的时间增量和内核信息之间没有必然的对应关系,真正的时间消耗必须从内核源码入手分析。

    这一点对于稍微熟悉编程的朋友来说都不难理解,因为时间增量只是两次调用printk之间的时间差值。通常来说,内核启动过程中在完成一些耗时的任务,如创建hash索引、probe硬件设备等操作后会通过printk将结果打印出来,这种情况下,时间增量往往反映的是信息对应过程的耗时;但有些时候,内核是在调用printk输出信息后才开始相应的过程,那么报告中内核信息相应过程的时间消耗对应的是其下一行的时间增量;还有一些时候,时间消耗在了两次内核信息输出之间的某个不确定的时段,这样时间增量可能就完全无法通过内核信息反应出来了。

    所以,为了准确判断真正的时间消耗,我们需要结合内核源码进行分析。必要的时候,例如上述第三种情形下,还得自己在源码中插入printk打印,以进一步确定实际的时间消耗过程。 以下是我上次裁减后Linux内核的启动分析: 内核启动总时间: 6。188s 关键的耗时部分: 1) 0。

    652s - Timer,IRQ,Cache,Mem Pages等核心部分的初始化 2) 0。611s - 内核与RTC时钟同步 3) 0。328s - 计算Calibrating Delay(4个CPU核心的总消耗) 4) 0。144s - 校准APIC时钟 5) 0。

    312s - 校准Migration Cost 6) 3。520s - Intel E1000网卡初始化 下面,将针对上述各部分进行逐一分析和化解。

    全部

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼一、 简介Linux 系统以其开源的特性得到了广泛的应用,在嵌入式系统编程中也占有越来越大的份量。...二、 系统启动流程一个基于Linux 系统的嵌入式软件的一般启动流程如...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    一、 简介Linux 系统以其开源的特性得到了广泛的应用,在嵌入式系统编程中也占有越来越大的份量。Linux 系统安全可靠、内核可定制、源代码开放等这些都其优点,但Linux 系统也不足之处,比如实时不好,比如启动时间过长。本文主要就如何加快Linux 系统的启动速度进行了总结和探讨。二、 系统启动流程一个基于Linux 系统的嵌入式软件的一般启动流程如下:图1. Linux 系统启动流程三、 加速启动的方法以上流程中每一步都可以进行优化,每步的优化方法如下:1. 为加快从Flash 读取内核的速度可以做以下工作:1) 根据自己使用的Flash 的用户手册,修改其参数配置,使其读写速度尽可能的达到最快。2) 裁剪内核,减小内核体积。在编译内核时去掉不需要的硬件驱动、文件系从Flash 读取内核到内存在内存解压并运行内核加载根文件系统及应用程序镜像到内存运行根文件系统启动脚本运行主程序启动完成统、调试信息,使内核尽可能地达到最小。比如可以去掉内核对键盘、鼠标等硬件的支持,去掉RomFs、RamDisk 等文件系统的支持。内核中的文件系统占了相当大的部分,因此应尽量去掉那些根本不需要文件系统。3) 把内核中一些模块直接编译成模块的方式,而不是与内核编译在一起,在内核启动之后再装载那些模块,这样也能减小内核体积。比如网卡驱动,USB 驱动,这些都不是内核启动所必需的模块,因此不必与内核编译一起,而是编译成单独的模块,当内核启动之后再加载这些模块即可。2. 为加快在内存中运行内核的速度,可以完全屏蔽掉printk 函数的输出,去掉了在运行内核时的所有的调试输出信息,这样也能缩短解压并运行内核的时间。printk函数的输出对启动时间影响很大,在项目刚开始时系统启动时间居然需要4 分钟左右,后来把printk 的输出屏蔽掉之后启动时间就骤降到40 秒左右,所以printk对系统的启动时间影响很大。3. 为加快装载根文件系统和主应用程序到内存中可以采取以下措施:1) 根文件系统的格式采用cramfs 格式。嵌入式系统中的文件系统有许多,比如romfs,ramfs,jffs2,cramfs,yaffs 等,通过对各种文件系统进行比较,最后确定使用cramfs 文件系统,该文件系统在从Flash 加载到内存中的速度比较理想。刚开始时我们采用的是jffs2 文件格式,且应用程序和根文件系统放在两个不同的分区,此时的系统的启动时间是30 秒左右,一直无法降下去。后来技术支持建议用cramfs 文件系统,且把根文件系统和应用程序放在一直做成一个镜像文件一起加载,结果启动时间就降了五六秒左右。2) 用动态库代替静态库来缩小主应用程序的体积,这样也能加快加载主应用程序到内存的速度。4. 为加快启动脚本的运行,可以把该启动脚本中的任务最大限度的删减,把所有无关的任务都去掉;另外还把一些能并行启动的任务都做成并行执行,这样就加快了加载系统中各任务的速度。5. 在运行主程序这一步中,可以优化应用程序中各任务的启动时机,把播放电视节目的任务尽可能的提前,这样用户开机之后就能很快看到电视节目,在开始播放电视节目之后,才在后台对其它任务进行初始化。通过以上各种方法的组合应用,我们项目把启动时间控制在了22 秒左右。

    展开全文
  • Linux需要重新启动是少有的。可是一旦需要,Linux启动常常是缓慢的。幸好有一些加速的办法。其中一些方法不太难。咱们瞧一瞧吧。方法/步骤#1: 撤消多余的服务根据机器的用途,很多服务是不需要的。要是Linux只用作...

    Linux需要重新启动是少有的。可是一旦需要,Linux启动常常是缓慢的。幸好有一些加速的办法。其中一些方法不太难。咱们瞧一瞧吧。

    方法/步骤

    #1: 撤消多余的服务根据机器的用途,很多服务是不需要的。要是Linux只用作桌面,就不需要sendmail、httpd和另外许多服务。如果你的服务器(server网络资源下载)只是Web服务器,也可以关掉许多服务。为此,可转到管理菜单,检查服务项目。只需撤消所有不想启动的服务选项。

    #2: 撤消多余的内核模块

    假如你的桌面连接到以太网,就不需要装载无线内核模块。这是较为困难的任务,可能需要重新编译内核,而编译内核不是可以轻松担当的工作。为此,你大概需要内核源代码。接着,按照编译内核的标准步骤进行。不同在于你要搜查系统,撤除所有不需要的模块。

    查明系统中当前安装和运行的内核模块的最好方法是安装Bootchart。它不仅会给你一个适宜的模块清单,而且还会说明系统启动过程中发生的事情。还可以发出命令:chkconfig –list | grep 3:on,弄清楚正在运行什么服务。一旦知道装载了什么不需要的模块,就可以在内核重新编译期间将其移除。只要这样处理,编译的内核就完全适合你的体系结构。

    #3: 使用轻型窗口管理器代替GNOME或KDE

    我插入小脚印窗口管理器的原因是——它们大幅度减少图形(界面)启动时间。代替不得不额外等待启动GNOME或KDE的30到60秒,为什么不等待用于启动Enlightenment或者XFCE的2到10秒呢?它们不仅节省启动时间,还会节省内存并解救处理臃肿软体(bloatware)这种令人头痛的事。

    #4: 使用基于文本的登录而不是图形登录

    我的大多数Linux机器启动run level 3而非run level 5。这个运行级别将停在文本登录模式,我就在这个地方登录并发出startx命令,开始选择桌面。图形登录模式做两件事:增加装入时间并引起头痛的问题即试图从拙劣的X windows挣脱出来。

    #5: 使用轻型发行版

    不要装载重型的Fedora,为什么不试一下Gentoo、Arch或Puppy Linux呢?这些较小的发行版的启动时间比更加臃肿的Fedora(甚至Ubuntu)要快很多。在较大的发行版中,OpenSuSE声称启动最快,但我还没有亲自试验。在最新的Fedora和Ubuntu之间,Ubuntu击败Fedora的启动时间(而且是即开即用)。

    #6: 使用Open BIOS

    要是你相当聪明能干,准备升级PC固件,可以考虑迁移到开源BIOS。一个附加说明,使用开放固件允许Linux启动时真正初始化硬件(而不依赖BIOS)。最重要的是,许多开放BIOS可以设置满足机器的特殊需要。如果不走开放BIOS之路,至少也可以设置BIOS不寻找不存在的软盘驱动器,即直接启动第一个硬盘(硬碟HDD存储媒介之一)驱动器(首先不是CD驱动器)。

    #7: 回避DHCP

    如果你工作在地址租约不是问题的家庭网络(或者小型企业网络)上,那么,机器就用静态IP地址。这将使机器不必出外访问DHCP服务器来获得IP地址。如果采取这种途径,就要确保配置文件/etc/resolve.conf也表达你的DNS服务器地址。

    #8: 热插拔可免就免

    热插拔是指允许把新设备插上电源并立即使用的系统。如果你知道你的服务器(server网络资源下载)不需要这种系统,就删除它。这将减少启动时间。在许多系统上,热插拔消耗大量启动时间。排除热插拔将发生的变化取决于你所用的发行版。注意:就绝大部分而言,udev已经取代热插拔。但如果你还在运行老一点的发行版,这样做还是适合的。

    #9: 要是真的大胆无畏,可尝试一下initng

    initng系统充当sysvinit系统的替换物,并承诺彻底减少类UNIX操作系统的启动时间。如果你愿意了解运行中的initng系统,可以试一试Pingwinek LiveCD。

    #10: 利用Debian具有的代码

    要是正在使用Debian,就有一行可用来将你的启动脚本转换成并行运行的简单代码。如果检查一下/etc/init.d/rc脚本,就会看到:大约在24行有CONCURRENCY=none。把这一行改为CONCURRENCY=shell,你有可能目睹启动时间的减少。

    上述大部分应该是最重要的,当然最快的使Linux启动提速的方法就是不要重启,所以,极少重新启动一般可以减轻启动时间的担子。

    展开全文
  • Linux操作系统速度非常快,但是由于Grub引导加载程序,所有内容都需要花费大量时间才能启动,因此,如果要加速Linux系统的引导,则必须修改Grub引导加载程序中的默认启动设置,以使Linux的引导速度不会太慢。...

    Linux操作系统速度非常快,但是由于Grub引导加载程序,所有内容都需要花费大量时间才能启动,因此,如果要加速Linux系统的引导,则必须修改Grub引导加载程序中的默认启动设置,以使Linux的引导速度不会太慢。

    获取root访问权限和备份Grub配置文件

    对Grub配置文件进行更改(无论多小)都很危险,任何错误都可能严重破坏你的系统并可能搞砸它,因此,在向你展示如何加快Linux上的启动时间之前,我们必须了解如何备份Grub配置文件,要执行此操作,请按键盘上的Ctrl+Alt+T或Ctrl+Shift+T启动终端窗口,通过输入su在shell中获取Root访问权限,或者,如果你无法以root用户身份登录,请尝试使用sudo -s命令:

    su -

    或者:

    sudo -s

    一旦有权访问Root shell,请使用CP命令制作Grub引导加载程序配置文件的完整副本。

    注意:请务必使用你在Linux PC上使用的用户名替换下面命令中的username:

    cp /etc/default/grub /home/username/grub.bak

    加快Grub的启动时间

    Grub引导加载程序有一个名为“GRUB_TIMEOUT”的设置,此设置是在选择加载默认操作系统之前计算机将处于闲置状态的时间,默认情况下,它设置为5秒,对于大多数人来说,这是足够的时间等待,但是,如果你希望加快启动时间,更改此数字是最有效的方法。

    要更改Grub引导加载程序中的引导速度,需要修改配置文件,编辑Grub的配置文件最好通过Nano文本编辑器完成(参考nano命令_Linux nano命令使用详解:字符终端文本编辑器),要开始编辑过程,请启动终端窗口并获取Root或sudo访问权限:

    su –

    或者:

    sudo -s

    接下来,在Nano文本编辑器中打开Grub配置文件:

    nano -w /etc/default/grub

    398cca927c4cf736497f3de8d9b7ac18.png

    在文本文件中查找“GRUB_TIMEOUT”条目,然后,删除数字5并将其更改为较小的数字,请记住,此数字越低,你的PC启动速度就越快,要获得绝对最快的结果,请将其更改为:

    GRUB_TIMEOUT=0

    或者,如果你对加速Grub感兴趣,但仍希望能够阅读菜单,请将其设置为2秒:

    GRUB_TIMEOUT=2

    在对GRUB_TIMEOUT参数所做的更改确认后,通过按键盘上的Ctrl+O将编辑内容保存到文件中,然后按Ctrl+X关闭Nano文本编辑器。

    应用更改

    随着对Grub配置文件的更改,是时候应用它们了,实现Grub配置更改的唯一方法是更新Bootloader,为此,需要使用Linux发行版的引导加载程序更新机制。

    首先,启动终端窗口,一旦打开,使用su或sudo -s获得root shell。

    现在终端shell具有root访问权限,请按照说明更新与你使用的Linux发行版匹配的Grub引导加载程序。

    1、Ubuntu/Debian

    在Ubuntu Linux和Debian上,如果要完成对Grub引导加载程序的更改,则无需填写长命令,只需运行update-grub命令:

    update-grub

    2、Fedora/OpenSUSE

    在Fedora和OpenSUSE上,没有像Ubuntu那样简单的update-grub命令,相反,要将更改应用于引导加载程序,需要运行grub2-mkconfig命令:

    grub2-mkconfig -o /boot/grub2/grub.cfg

    3、Arch Linux

    要更新Arch Linux上的Grub设置,需要调用grub-mkconfig命令:

    grub-mkconfig -o /boot/grub/grub.cfg

    当更新Grub命令完成运行时,更改应该生效。

    撤消对Grub的更改

    如果你决定对Grub做出新的调整,你需要恢复之前创建的备份,为此,启动终端窗口并获得root shell。

    获得root shell后,将Linux终端会话从打开的位置(/)导航到Linux PC上的主文件夹,但是,你需要更改以下命令的用户名部分:

    cd /home/username/

    接下来,使用RM命令删除Linux系统上的现有Grub配置文件:

    rm /etc/default/grub

    从系统中删除旧的Grub配置文件后,就可以恢复备份了,使用MV命令,将grub.bak文件放入适当的位置:

    mv grub.bak /etc/default/grub

    最后,更新Grub以完成所做的更改。

    1、Debian/Ubuntu

    update-grub

    2、Arch Linux

    grub-mkconfig -o /boot/grub/grub.cfg

    3、OpenSUSE/Fedora

    grub2-mkconfig -o /boot/grub2/grub.cfg

    相关主题

    展开全文
  • 1、前言时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes...2、sysinfo结构sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空...
  • CoreOS 835.12.0 稳定版安装 导读 CoreOS是一个基于Docker的轻量级容器化Linux发行版,为Docker而生,CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,发展风头正劲. CoreOS宣称 ... 疯狂学习java ...
  • 本文基于 Atmel AT91 系列片上系统和 NAND 闪存,经过一系列的优化,将Linux系统启动时间,从最初的 11 ,降低到最终的 656 毫秒。背景知识系统从上电到完全启动,需要经过许多过程。一个简化的启动流程大概包含:...
  • linux系统里的时间

    2021-05-13 08:37:58
    通常,linux操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答...③第三种方法也是按时钟滴答进行计数,但是是相对于系统启动以来的滴答次数,而不...
  • 我是在Windows XP下采用的硬盘安装Fedora 16,在安装过程中有一个引导程序的安装选项,询问你是安装到MBR还是系统分区的第一个扇区。这里我选择的是第二个选项:安装到引导分区的第一个扇区。故事是这样的......当我...
  • 1、前言时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。...2、sysinfo结构sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间、共享内存...
  • linux修改启动

    2021-05-11 04:43:33
    linux修改启动项发布时间:2007-04-28 00:56:08来源:红联作者:readywin在装好fedora后,便由grub来引导,不作选择则默认进入fedora。每次都在开机时选择一次,显然正常人都会不爽。以下是一点小心得,仅献给和我一样...
  • 一.Linux系统启动流程1.首先电脑加电自检,进入到BIOS中,通过MBR装载bootloader,再由bootloader装载内核在内存中完成解压,再将控制权交由内核,内核完成硬件的探测再访问initrd,再执行init进程2.Linux系统是属于...
  • 背景技术:由于国产CPU性能的限制,使得Linux操作系统在国产CPU上的启动速度明显慢于在X86上的启动速度,而随着国家对信息安全的日益重视,采用国产CPU和国产操作系统(尤其是Linux操作系统)的计算机在市场上越来越多...
  • 1、设置系统时间 为 2016 -1-1 11:11date -s "2016-1-1 11:11"2、显示时间 为2016 -1-1 11:11date "+%F %H:%M"3、设置一小时后自动关机取消为 -cshutdown -h 60-tsec: -t 后面加秒数,亦即『过几秒后关机』的意思...
  • 装了双系统后,在开机时总会有想让一个系统默认启动的时候,一般安装完Ubuntu和XP双系统后,开机时默认的是启动Ubuntu系统,可是当想让XP作为默认启动系统时怎么办呢?在早期的Ubuntu系统中,启动管理器用的是grub...
  • 1. 插入usb硬盘2. 需要安装两个工具:mkinitrd,rsync。apt-get install initrd-tools rsync3.... mkfs.reiserfs /dev/sda1,用你喜欢的文件系统创建分区5. mkswap /dev/sda2,创建交换分区6. mount /dev/...
  • 《第5章 Linux系统启动过程.ppt》由会员分享,可在线阅读,更多相关《第5章 Linux系统启动过程.ppt(26页珍藏版)》请在人人文库网上搜索。1、第5章 Linux系统启动过程,Linux系统的启动分5个阶段,每个阶段都完成不同...
  • 1.uptime命令输出:16:11:40 up ...查看/proc/uptime文件计算系统启动时间cat /proc/uptime输出: 5113396.94 575949.85第一数字即是系统已运行的时间5113396.94 ,运用系统工具date即可算出系统启动时间代码:全选da...
  • 在终端里输入:sudo gedit /boot/grub/grub.cfg先装windows而后装linux系统,默认启动项会非常多,执行上面的命令后,会打开一个文档,里面代码如下:------------------------------------------------------------...
  • 查看Linux系统启动时间和运行时间1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.002.查看/proc/uptime文件计算系统启动时间cat /proc/uptime输出: 5113396.94 575949.85第一...
  • Linux下如何查看系统启动时间和运行时间》由会员分享,可在线阅读,更多相关《Linux下如何查看系统启动时间和运行时间(1页珍藏版)》请在人人文库网上搜索。1、1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 ...
  • #include#include#includevoidsysLocalTime(void){time_ttimesec;structtm*t;time(×ec);t=localtime(×ec);printf("%d-%d-%d%d:%d:%d\n",1900+t->tm_year,1+t->tm_mon,t->...
  • 1.cat /boot/grub/grub.conf查看grub.confdefault=0#默认第一个titletimeout=5#若5内未劢键盘,使用默讣选单开机splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz#这儿使用的是grub的识别方式hiddenmenu#期间是否...
  • 修改LINUX和WINDOWS双系统的启动顺序和等待时间在安装了windows与linux双系统的环境下,往往需要先安装windows系统再安装linux系统,这是因为linux的引导程序能够识别windows系统,而windows的引导程序无法识别linux...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,861
精华内容 74,744
关键字:

linux系统启动秒数

linux 订阅