在我的系统上,它的正常运行时间来自/proc/uptime:

$ strace -eopen uptime

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

open("/lib/libproc-3.2.8.so", O_RDONLY|O_CLOEXEC) = 3

open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3

open("/proc/version", O_RDONLY) = 3

open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3

open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3

open("/proc/uptime", O_RDONLY) = 3

open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 4

open("/proc/loadavg", O_RDONLY) = 4

10:52:38 up 3 days, 23:38, 4 users, load average: 0.00, 0.02, 0.05

/proc/uptime

This file contains two numbers: the uptime of the system

(seconds), and the amount of time spent in idle process

(seconds).

proc文件系统包含一组伪文件。这些不是真正的文件,它们看起来像文件,但是它们包含内核直接提供的值。每次您读取文件(例如)时/proc/uptime,都会立即重新生成其内容。proc文件系统是内核的接口。

在文件的Linux内核源代码fs/proc/uptime.c的第49行,你会看到一个函数调用:

proc_create("uptime", 0, NULL, &uptime_proc_fops);

这将创建一个称为的proc文件系统条目uptime(通常将procfs安装在之下/proc),并将一个函数与其关联,该函数定义对该伪文件及其相关函数的有效文件操作。在正常运行的情况下,它只是read()和open()操作。但是,如果您追溯这些功能,则最终将在此处计算正常运行时间。

内部有一个计时器中断,它定期更新系统正常运行时间(其他值除外)。timer-interupt滴答的间隔由preprocessor-macro HZ定义,其确切值在内核配置文件中定义并在编译时应用。

空闲时间和CPU周期数以及频率HZ(每秒周期数)可以自上次引导以来的数量(秒)进行计算。

要解决您的问题:“正常运行时间”从什么时候开始算起?

由于正常运行时间是内核内部值,每个周期都会增加一次,因此它在内核初始化时开始计数。也就是说,当第一个周期结束时。即使在挂载任何东西之前,也就是在引导加载程序将控制权交给内核映像之后。

linux计算运行时长,在Linux上,“正常运行时间”何时开始计算?相关推荐

  1. 视频教程-Linux服务器运维/虚拟主机-Linux

    Linux服务器运维/虚拟主机 云知梦创始人,国际架构师,11年互联网培训和开发经验,曾在港电讯盈科.北大青鸟集团.远大教育.北京易第优教育等公司任职曾获得美国红帽RHCA构架师和RHCDS数据中心讲 ...

  2. linux 的手机操作系统下载地址,Linux系统运维之下载Linux操作系统地址

    本文主要向大家介绍了Linux系统运维的下载Linux操作系统地址,通过具体的内容向大家展现,希望对的大家学习Linux运维知识有所帮助. 有很多初次接触Linux的新人都会发问,应该到哪里下载Lin ...

  3. 【Grasshopper进阶】反射?什么反射?用反射屏蔽掉C#Script电池的运行时长

    写这次这一篇的原因是来自一个CSDN网友找到我提出了一个拷问: 知名网友:"我想把下面的代码放到 C# Script电池里,怎么加?" public override TimeSp ...

  4. linux云自动化运维,Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程...

    Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程 全新Linux云计算运维基础与Linux Shell自动化运维实战课程,由于国内一线大神亲自授课与教 ...

  5. linux服务器运维实战记录,linux运维好书推荐《高性能Linux服务器运维实战》

    本书整体分为4个篇幅,以Linux运维平台下的开源应用软件为中心,涉及Linux运维的各个方面,主要从系统基础运维(命令.shell编程).系统性能调优.智能运维监控平台构建.运维实战案例四个方面展开 ...

  6. linux系统运维工作日常,linux是干什么用的?Linux运维工作日常有什么

    当今的it互联网技术越来越发达,Linux运维的发展前景非常好.让我们看一下与Linux运维有关的信息. 随着开放源代码软件的影响力日益增强,Linux凭借其高效和广泛的应用优势,已成为中高端服务器的 ...

  7. linux系统运维费用,一般Linux运维学习的费用是多少?Linux学习

    随着IT 互联网技术的发展,Linux逐渐成为中高端服务器的主要操作系统,并且目前地位不可替代.Linux运维工程师是一位"复合型人才",他集成了网络.系统.数据库.开发和安全等工 ...

  8. linux创建运维账户流程,Linux运维养成记-账户与权限管理

    1. Linux 账户及组的概念 Linux 系统是通过用户的 ID 来识别每个账号,默认 ID 长度为 32 位,从 0 开始,用户的 ID及 UID 限制在 60000 以下,其中 Linux 账 ...

  9. 女生适合linux运维吗,女生适合学Linux云计算运维吗?Linux入门

    女生适合学Linux云计算运维吗?很多人认为女生不适合计算机行业的技术岗位.不合适的原因有很多种,但实际上对于it技术岗来说并没有这样的结论.现实生活和工作中,很多程序员的朋友都是女生.所以女生不仅适 ...

最新文章

  1. Windows下FFmpeg高速入门
  2. git warning: LF will be replaced by CRLF in 解决办法 1
  3. 小工匠聊架构-分布式场景下的并发幂等性常见的解决方案
  4. 利用chunk重设大小攻击堆
  5. 【Java】continue和break区别
  6. 【蓝桥官网试题 - 算法提高】change(思维)
  7. 10年老兵给程序员的10条建议! 1
  8. python文件拷贝到其他盘符_Python:文件操作技巧(File operation)
  9. codeforces——961A Tetris
  10. Java - 多线程Callable、Executors、Future
  11. 第1章 游戏之乐——光影切割问题
  12. NIST:制定Cybersecurity的框架进行时
  13. 【88.4】HTTP权威指南
  14. sprint会议记录
  15. Office2010安装出错(Error1406)
  16. 矩和质心之积分的应用
  17. iOS开发 ----- 加载动画之牛顿摆的实现
  18. windows彻底永久关闭自动更新的方式
  19. 解决thinkpad sl410 evc windows7硬盘安装ubuntu12.04以后,windows 无线出现断开网速慢等问题
  20. 微信二次分享(标题、摘要、缩略图)

热门文章

  1. 图像四种基本类型简介
  2. LocalDateTime获取时间戳、LocalDateTime与String互转、Date与LocalDateTime互转(Java8 特性)
  3. 卷积神经网络(CNN)基本概念
  4. 《被讨厌的勇气》勇敢的人先享受世界
  5. 写一个生成口算题的exe程序
  6. Python采集外网美女照片,又是养眼的一天
  7. ECOS 3.0 SDK USER GUIDE
  8. 竞速类游戏安全风险分析
  9. fedora 安装图形界面
  10. 【研究生】硕士论文中经常出现的问题,你可能也遇到过哦!