Class LinuxOperatingSystemJNA

All Implemented Interfaces:
OperatingSystem

@ThreadSafe public class LinuxOperatingSystemJNA extends LinuxOperatingSystem
JNA-based Linux operating system implementation. Extends LinuxOperatingSystem, providing JNA implementations of process/thread ID queries and thread count via sysinfo.
  • Field Details

    • HAS_UDEV

      public static final boolean HAS_UDEV
      This static field identifies if the udev library can be loaded.
    • HAS_GETTID

      public static final boolean HAS_GETTID
      This static field identifies if the gettid function is in the c library.
    • HAS_SYSCALL_GETTID

      public static final boolean HAS_SYSCALL_GETTID
      This static field identifies if the syscall for gettid returns sane results.
  • Constructor Details

    • LinuxOperatingSystemJNA

      public LinuxOperatingSystemJNA()
  • Method Details

    • getSessions

      public List<OSSession> getSessions()
      Description copied from interface: OperatingSystem
      Gets currently logged in users.

      On macOS, Linux, and Unix systems, the default implementation uses native code (see man getutxent) that is not thread safe. OSHI's use of this code is synchronized and may be used in a multi-threaded environment without introducing any additional conflicts. Users should note, however, that other operating system code may access the same native code.

      The Who#queryWho() method produces similar output parsing the output of the Posix-standard who command, and may internally employ reentrant code on some platforms. Users may opt to use this command-line variant by default using the oshi.os.unix.whocommand configuration property.

      Specified by:
      getSessions in interface OperatingSystem
      Overrides:
      getSessions in class AbstractOperatingSystem
      Returns:
      A list of OSSession objects representing logged-in users
    • 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 an OS process for the given PID.
      Specified by:
      createOSProcess in class LinuxOperatingSystem
      Parameters:
      pid - the process ID
      Returns:
      the OS process
    • 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.
    • hz

      public static long hz()
      Gets Jiffies per second, useful for converting ticks to milliseconds and vice versa.
      Returns:
      Jiffies per second.
    • pageSize

      public static long pageSize()
      Gets Page Size, for converting memory stats from pages to bytes.
      Returns:
      Page Size in bytes.
    • getHz

      public long getHz()
      Description copied from class: LinuxOperatingSystem
      Gets Jiffies per second, useful for converting ticks to milliseconds and vice versa.
      Specified by:
      getHz in class LinuxOperatingSystem
      Returns:
      Jiffies per second.
    • getPageSize

      public long getPageSize()
      Description copied from class: LinuxOperatingSystem
      Gets Page Size, for converting memory stats from pages to bytes
      Specified by:
      getPageSize in class LinuxOperatingSystem
      Returns:
      Page Size
    • getThreadCount

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