mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
79a4ac0553
It has a fix for runc issue 4594. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
35 lines
950 B
Go
35 lines
950 B
Go
package linux
|
|
|
|
import (
|
|
"fmt"
|
|
"sync"
|
|
|
|
"github.com/cilium/ebpf/internal"
|
|
"github.com/cilium/ebpf/internal/unix"
|
|
)
|
|
|
|
// KernelVersion returns the version of the currently running kernel.
|
|
var KernelVersion = sync.OnceValues(detectKernelVersion)
|
|
|
|
// detectKernelVersion returns the version of the running kernel.
|
|
func detectKernelVersion() (internal.Version, error) {
|
|
vc, err := vdsoVersion()
|
|
if err != nil {
|
|
return internal.Version{}, err
|
|
}
|
|
return internal.NewVersionFromCode(vc), nil
|
|
}
|
|
|
|
// KernelRelease returns the release string of the running kernel.
|
|
// Its format depends on the Linux distribution and corresponds to directory
|
|
// names in /lib/modules by convention. Some examples are 5.15.17-1-lts and
|
|
// 4.19.0-16-amd64.
|
|
func KernelRelease() (string, error) {
|
|
var uname unix.Utsname
|
|
if err := unix.Uname(&uname); err != nil {
|
|
return "", fmt.Errorf("uname failed: %w", err)
|
|
}
|
|
|
|
return unix.ByteSliceToString(uname.Release[:]), nil
|
|
}
|