//go:build linux || freebsd || openbsd package kernel // import "github.com/docker/docker/pkg/parsers/kernel" import ( "context" "github.com/containerd/log" "golang.org/x/sys/unix" ) // GetKernelVersion gets the current kernel version. func GetKernelVersion() (*VersionInfo, error) { uts, err := uname() if err != nil { return nil, err } // Remove the \x00 from the release for Atoi to parse correctly return ParseRelease(unix.ByteSliceToString(uts.Release[:])) } // CheckKernelVersion checks if current kernel is newer than (or equal to) // the given version. func CheckKernelVersion(k, major, minor int) bool { if v, err := GetKernelVersion(); err != nil { log.G(context.TODO()).Warnf("error getting kernel version: %s", err) } else { if CompareKernelVersion(*v, VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 { return false } } return true }