测试Linux开机时间
2015-11-25 21:08
435 查看
<pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在Linux内核有关时间的函数有2类:时钟函数以及jiffy。</span><span style="font-family: Arial, Helvetica, sans-serif;">时钟函数主要位于kernel/time/;</span>
本文通过对/kernel/printk.c文件中的vprintk函数进行分析,以系统调用的方式实现了获取内核的uptime。
代码如下
SYSCALL_DEFINE0(testuptime) { int this_cpu; char tbuf[50]; unsigned long long t; unsigned long nanosec_rem; this_cpu = smp_processor_id(); t = cpu_clock(this_cpu); nanosec_rem = do_div(t, 1000000000); sprintf(tbuf, "[%5lu.%06lu] ",(unsigned long) t, nanosec_rem/ 1000); printk(KERN_INFO "current cpu time is %s.\n",tbuf); return 0; }
测试结果如下
分析:系统调用中也是使用了printk函数进行输出,2个uptime一致的原因是vprintk在获取到cpu的时钟之后还在处理一些安全性的事务操作。
相关文章推荐
- 用win7(64位)远程桌面连接linux(Ubuntu14.04)详细教程
- Linux C语言写的超级简单端口扫描器
- 【Linux编程】用c语言判断大小端
- 【学神-RHEL7】RHEL7.1安装步骤详解
- NandFlash概念
- OpenCV linux 安装
- centos7 strace的安装
- linux下jdk安装 failed /usr/local/jdk1.6.0_10/jre/lib/i386/client/libjvm.so, because /usr/local/jdk1.6.
- 在linux中的virtualbox无法挂载usb设备的解决方法
- linux系统日志
- Linux下静态库与动态库的使用
- Linux创建用户、用户组 及 删除
- linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释
- linux学习笔记之用户切换
- linux学习(二)如何学习linux
- Linux学习笔记之Makefile多个c文件的编写
- linux文件权限chmod
- Linux 学习笔记之Makefile单个c文件的编写
- log4j的用法(For Windows/linux/纯java应用/web应用) logback 的用法在evernote里面
- linux程序前后台切换