在 Linux 发行版中,比如说 Ubuntu 14.04,如何找到编译/构建这个特定 Linux 内核的时间和日期?
在 Ubuntu、任何其他 Linux 发行版和许多其他基于 UNIX 的系统上,您可以使用它uname来查找此信息。您想要uname -v“内核版本信息”:
$ uname -v
#838 SMP Tue Feb 9 13:15:09 GMT 2016
$ uname -v
Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64
$ uname -v
FreeBSD 10.2-RELEASE-p9 #0: Thu Jan 14 01:32:46 UTC 2016 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
Run Code Online (Sandbox Code Playgroud)
请注意,并非所有 POSIX 系统都将显示构建日期作为此输出的一部分,或者根本不显示构建日期uname(但 Linux、BSD 和 Mac OS 会!)。
显示的日期戳是编译内核的日期/时间。
在 Linux 上,您还可以执行以下操作:
$ cat /proc/version
Linux version 4.2.0-27-generic (buildd@lgw01-12) (gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2) ) #32-Ubuntu SMP Fri Jan 22 04:49:08 UTC 2016
Run Code Online (Sandbox Code Playgroud)
基于评论中的讨论,并且只是为可能偶然发现此问题的其他人添加其他信息,以下是在其他一些 POSIX 操作系统上获取此信息的方法:
艾克斯
使用该
oslevel命令显示 AIX 版本、发行版、技术级别 (TL)、Service Pack (SP) 和构建日期。例如,此输出显示了 AIX V6.1 Technology Level 8,Service Pack 1,构建于 2012 年的第 45 周:
sh> oslevel -s
6100-08-01-1245
Run Code Online (Sandbox Code Playgroud)
索拉里斯
在 Solaris 上,我无法找到获得真正编译日期的正确方法,但是您可以通过以下方式获得内核的打包日期(构建软件包时)pkg info kernel:
# pkg info kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.2.0.2.1
Packaging Date: Wed Oct 19 07:57:11 2011
Size: 17.99 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.2.0.2.1:
20111128T20503
Run Code Online (Sandbox Code Playgroud)
用户体验
这个好像有点骗人。您可以通过以下方式获取内核的链接日期(构建日期):
echo "linkstamp?s" | adb /stand/vmunix
Run Code Online (Sandbox Code Playgroud)
甚至:
ls -l /stand/vmunix
Run Code Online (Sandbox Code Playgroud)