Class LinuxOperatingSystemFFM

All Implemented Interfaces:
OperatingSystem

@ThreadSafe public class LinuxOperatingSystemFFM extends LinuxOperatingSystem
FFM-based Linux operating system implementation.

Extends LinuxOperatingSystem, overriding methods to use FFM implementations as they become available.

Udev availability is determined by UdevFunctions.isAvailable(), which checks both the oshi.os.linux.allowudev configuration property and whether libudev could be loaded and all symbols bound. FFM consumer classes should import HAS_UDEV from this class rather than from LinuxOperatingSystemJNA.

  • Field Details

    • HAS_UDEV

      public static final boolean HAS_UDEV
      Identifies if the udev library was successfully loaded and all symbols bound via FFM. Also respects the oshi.os.linux.allowudev configuration property, consistent with the JNA-based LinuxOperatingSystemJNA.HAS_UDEV.
  • Constructor Details

    • LinuxOperatingSystemFFM

      public LinuxOperatingSystemFFM()
  • Method Details

    • getFileSystem

      public FileSystem getFileSystem()
      Description copied from interface: OperatingSystem
      Instantiates a FileSystem object.
      Returns:
      A FileSystem object.
    • getNetworkParams

      public NetworkParams getNetworkParams()
      Description copied from interface: OperatingSystem
      Instantiates a NetworkParams object.
      Returns:
      A NetworkParams object.
    • getProcess

      public OSProcess getProcess(int pid)
      Description copied from interface: OperatingSystem
      Gets information on a currently running process
      Parameters:
      pid - A process ID
      Returns:
      An OSProcess object for the specified process id if it is running; null otherwise
    • createOSProcess

      protected OSProcess createOSProcess(int pid)
      Description copied from class: LinuxOperatingSystem
      Creates a new OSProcess instance for the given PID using the appropriate native implementation.
      Specified by:
      createOSProcess in class LinuxOperatingSystem
      Parameters:
      pid - the process ID
      Returns:
      a new OS process instance
    • getProcessId

      public int getProcessId()
      Description copied from interface: OperatingSystem
      Gets the current process ID (PID).
      Returns:
      the Process ID of the current process
    • getThreadId

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

      Thread IDs on macOS are not correlated with any other Operating System output.

      Returns:
      the Thread ID of the current thread if known, 0 otherwise.
    • getThreadCount

      public int getThreadCount()
      Description copied from interface: OperatingSystem
      Get the number of threads currently running
      Returns:
      The number of threads running