github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/pkg/parsers/kernel/kernel_unix.go (about) 1 //go:build linux || freebsd || openbsd 2 3 package kernel // import "github.com/Prakhar-Agarwal-byte/moby/pkg/parsers/kernel" 4 5 import ( 6 "context" 7 8 "github.com/containerd/log" 9 "golang.org/x/sys/unix" 10 ) 11 12 // GetKernelVersion gets the current kernel version. 13 func GetKernelVersion() (*VersionInfo, error) { 14 uts, err := uname() 15 if err != nil { 16 return nil, err 17 } 18 19 // Remove the \x00 from the release for Atoi to parse correctly 20 return ParseRelease(unix.ByteSliceToString(uts.Release[:])) 21 } 22 23 // CheckKernelVersion checks if current kernel is newer than (or equal to) 24 // the given version. 25 func CheckKernelVersion(k, major, minor int) bool { 26 if v, err := GetKernelVersion(); err != nil { 27 log.G(context.TODO()).Warnf("error getting kernel version: %s", err) 28 } else { 29 if CompareKernelVersion(*v, VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 { 30 return false 31 } 32 } 33 return true 34 }