Class LinuxOperatingSystem

java.lang.Object
oshi.software.common.AbstractOperatingSystem
oshi.software.common.os.linux.LinuxOperatingSystem
All Implemented Interfaces:
OperatingSystem

@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()
      Specified by:
      queryManufacturer in class AbstractOperatingSystem
    • queryFamilyVersionInfo

      public Pair<String, OperatingSystem.OSVersionInfo> queryFamilyVersionInfo()
      Specified by:
      queryFamilyVersionInfo in class AbstractOperatingSystem
    • 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()
      Specified by:
      queryAllProcesses in class AbstractOperatingSystem
    • queryChildProcesses

      public List<OSProcess> queryChildProcesses(int parentPid)
      Specified by:
      queryChildProcesses in class AbstractOperatingSystem
    • queryDescendantProcesses

      public List<OSProcess> queryDescendantProcesses(int parentPid)
      Specified by:
      queryDescendantProcesses in class AbstractOperatingSystem
    • createOSProcess

      protected abstract OSProcess createOSProcess(int pid)
      Creates a new OSProcess instance for the given PID using the appropriate native implementation.
      Parameters:
      pid - the process ID
      Returns:
      a new OS process instance
    • getParentPidsFromProcFiles

      protected static Map<Integer,Integer> getParentPidsFromProcFiles(File[] pidFiles)
    • 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.
    • 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.