在我的系统上,它的正常运行时间来自/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. 开关电源过流保护-打嗝模式
  2. matlab ga rbf,GA PSO优化的RBF神经网络
  3. Module 'matplotlib' has no 'contourf' member 使用Python导入matplotlib模块报错
  4. 怎么在linux下查看gpu版本号,linux.查看gpu版本
  5. SpringMVC与Ajax交互
  6. 什么样的人贷款更容易?
  7. Docker最全教程之使用Docker搭建Java开发环境
  8. 温故之 “插入排序”
  9. Map集合 java
  10. socket.h中定义的函数
  11. Iphone 清空联系人
  12. 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 395期】
  13. Cesium 模拟下雪
  14. servlet到底是什么?
  15. 那些年,我了解过的医疗器械(偏影像方向)公司 (2017.03.24 Updating...)
  16. Median(查找中位数)
  17. 端口汇聚实现多端口带宽叠加
  18. 为何说 a16z 是一家通过 VC 获利的媒体公司?
  19. xls与csv文件区别
  20. 云脉文档管理小程序轻松解决文档管理难题

热门文章

  1. 统计基础—数据集中趋势、离散程度、偏度与峰度的衡量指标(1)
  2. win2008注册表计算机修改名字路径,Win10修改注册表ProfileName值的方法
  3. 人脸识别有什么漏洞,怎么防伪?
  4. 【收藏】华为设备维护
  5. Flir Blackfly S 工业相机:通过外部触发实现多摄像头同步拍摄
  6. 如何免费上传4G以上大文件至百度云盘
  7. mysql中整数数据类型tinyint详解
  8. 2023年电赛国赛仪器仪表类赛题分析和预测
  9. 宇视交换机POE开启/关闭
  10. 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计