Class LinuxOperatingSystem

java.lang.Object
oshi.software.common.AbstractOperatingSystem
oshi.software.common.os.linux.LinuxOperatingSystem
All Implemented Interfaces:
OperatingSystem
Direct Known Subclasses:
LinuxOperatingSystemJNA, LinuxOperatingSystemNF

@ThreadSafe public abstract class LinuxOperatingSystem extends AbstractOperatingSystem
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution.
  • Constructor Details

    • LinuxOperatingSystem

      protected LinuxOperatingSystem()

      Constructor for LinuxOperatingSystem.

  • Method Details

    • queryManufacturer

      public String queryManufacturer()
      Description copied from class: AbstractOperatingSystem
      Queries the OS manufacturer.
      Specified by:
      queryManufacturer in class AbstractOperatingSystem
      Returns:
      the manufacturer string
    • queryFamilyVersionInfo

      public Pair<String, OperatingSystem.OSVersionInfo> queryFamilyVersionInfo()
      Description copied from class: AbstractOperatingSystem
      Queries the OS family and version info.
      Specified by:
      queryFamilyVersionInfo in class AbstractOperatingSystem
      Returns:
      a pair of family string and OS version info
    • queryBitness

      protected int queryBitness(int jvmBitness)
      Description copied from class: AbstractOperatingSystem
      Backup OS-specific query to determine bitness if previous checks fail
      Specified by:
      queryBitness in class AbstractOperatingSystem
      Parameters:
      jvmBitness - The bitness of the JVM
      Returns:
      The operating system bitness
    • getInternetProtocolStats

      public InternetProtocolStats getInternetProtocolStats()
      Description copied from interface: OperatingSystem
      Instantiates a InternetProtocolStats object.
      Returns:
      a InternetProtocolStats object.
    • queryAllProcesses

      public List<OSProcess> queryAllProcesses()
      Description copied from class: AbstractOperatingSystem
      Queries all processes on the system.
      Specified by:
      queryAllProcesses in class AbstractOperatingSystem
      Returns:
      a list of all OS processes
    • queryChildProcesses

      public List<OSProcess> queryChildProcesses(int parentPid)
      Description copied from class: AbstractOperatingSystem
      Queries the children of a process.
      Specified by:
      queryChildProcesses in class AbstractOperatingSystem
      Parameters:
      parentPid - the parent process ID
      Returns:
      a list of child processes (including the parent itself)
    • queryDescendantProcesses

      public List<OSProcess> queryDescendantProcesses(int parentPid)
      Description copied from class: AbstractOperatingSystem
      Queries the descendants of a process.
      Specified by:
      queryDescendantProcesses in class AbstractOperatingSystem
      Parameters:
      parentPid - the parent process ID
      Returns:
      a list of descendant processes (including the parent itself)
    • createOSProcess

      protected abstract OSProcess createOSProcess(int pid)
      Creates an OS process for the given PID.
      Parameters:
      pid - the process ID
      Returns:
      the OS process
    • getParentPidsFromProcFiles

      protected static Map<Integer,Integer> getParentPidsFromProcFiles(File[] pidFiles)
      Gets parent PIDs from proc filesystem files.
      Parameters:
      pidFiles - the proc pid directories
      Returns:
      a map of PID to parent PID
    • getProcessCount

      public int getProcessCount()
      Description copied from interface: OperatingSystem
      Get the number of processes currently running
      Returns:
      The number of processes running
    • getCurrentThread

      public OSThread getCurrentThread()
      Description copied from interface: OperatingSystem
      Makes a best effort to get the current thread. May not be useful in a multithreaded environment. The thread returned may have been short lived and no longer exist.

      On macOS, returns the oldest thread in the calling process.

      Returns:
      the current thread if known; an invalid thread otherwise.
    • getSystemUptime

      public long getSystemUptime()
      Description copied from interface: OperatingSystem
      Get the System up time (time since boot).
      Returns:
      Number of seconds since boot.
    • getSystemBootTime

      public long getSystemBootTime()
      Description copied from interface: OperatingSystem
      Get Unix time of boot.
      Returns:
      The approximate time at which the system booted, in seconds since the Unix epoch.
    • getInstalledApplications

      public List<ApplicationInfo> getInstalledApplications()
      Description copied from interface: OperatingSystem
      Retrieves a list of installed applications on the system.

      This method is implemented per OS. If the OS does not support this feature, it returns an empty list.

      Returns:
      A list of installed applications or an empty list if unsupported.
    • getCgroupInfo

      public CgroupInfo getCgroupInfo()
      Description copied from interface: OperatingSystem
      Retrieves cgroup information for the current process.

      On Linux, this returns detailed cgroup resource limits and usage metrics. On non-Linux platforms, this returns a no-op instance where CgroupInfo.isContainerized() returns false.

      Returns:
      A CgroupInfo object representing cgroup information.
    • getReleaseFilename

      protected static String getReleaseFilename()
      Looks for a collection of possible distrib-release filenames
      Returns:
      The first valid matching filename
    • getServices

      public List<OSService> getServices()
      Description copied from interface: OperatingSystem
      Gets the all services on the system. The definition of what is a service is platform-dependent.
      Returns:
      An array of OSService objects
    • getHz

      public abstract long getHz()
      Gets Jiffies per second, useful for converting ticks to milliseconds and vice versa.
      Returns:
      Jiffies per second.
    • getPageSize

      public abstract long getPageSize()
      Gets Page Size, for converting memory stats from pages to bytes
      Returns:
      Page Size
    • getBootTime

      public static long getBootTime()
      Gets the system boot time in seconds since the epoch.
      Returns:
      Boot time in seconds since the epoch.