“uname -r”和“uname -v”有什么区别?

max*_*max 4 linux unix centos manpages

我正在使用 CentOS 6.2。在 uname(即man uname)的手册页中,它说:

 -r, --kernel-release
              print the kernel release

 -v, --kernel-version
              print the kernel version
Run Code Online (Sandbox Code Playgroud)

在尝试命令时,它显示

[max@localhost ~]$ uname -r

2.6.32-220.17.1.el6.i686

[max@localhost ~]$ uname -v

#1 SMP Tue May 15 22:09:39 BST 2012
Run Code Online (Sandbox Code Playgroud)

-v应该显示版本吧?但是它在哪里显示版本?-r正在显示版本详细信息。

为什么会这样?

slh*_*hck 8

这是绝对正常和预期的。kernel-release将始终显示所用内核的实际版本号。kernel-version但是会打印一个带有实际发布日期的更具体的字符串。它的格式取决于它运行在哪个 Linux 或 Unix 发行版上。


您可以在 Wikipedia 上找到广泛的示例列表。例如,在 OS X 中,kernel-version不仅是发布编号,还有发布日期:

Darwin Kernel Version 10.8.0: Tue Jun  7 16:32:41 PDT 2011; root:xnu-1504.15.3~1/RELEASE_X86_64
Run Code Online (Sandbox Code Playgroud)

虽然kernel-release只是版本号:

10.8.0
Run Code Online (Sandbox Code Playgroud)

你甚至可以检查当它被调用时会查找/proc/sys/kernel/的东西。这将是:uname(2)uname(1)

  • /proc/sys/kernel/version
  • /proc/sys/kernel/osrelease

不要过于严格地将“版本”视为版本