Package oshi.software.common
Class AbstractOperatingSystem
java.lang.Object
oshi.software.common.AbstractOperatingSystem
- All Implemented Interfaces:
OperatingSystem
- Direct Known Subclasses:
AixOperatingSystem,FreeBsdOperatingSystem,LinuxOperatingSystem,MacOperatingSystem,SolarisOperatingSystem,WindowsOperatingSystem
public abstract class AbstractOperatingSystem extends java.lang.Object implements OperatingSystem
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAbstractOperatingSystem.FamilyVersionInfoNested classes/interfaces inherited from interface oshi.software.os.OperatingSystem
OperatingSystem.OSVersionInfo, OperatingSystem.ProcessSort -
Field Summary
Fields Modifier and Type Field Description static java.lang.StringOSHI_OS_UNIX_WHOCOMMANDprotected static booleanUSE_WHO_COMMAND -
Constructor Summary
Constructors Constructor Description AbstractOperatingSystem() -
Method Summary
Modifier and Type Method Description intgetBitness()Gets the bitness (32 or 64) of the operating system.java.lang.StringgetFamily()Operating system family.java.lang.StringgetManufacturer()Manufacturer.java.util.List<OSProcess>getProcesses()Gets currently running processes.java.util.List<OSProcess>getProcesses(java.util.Collection<java.lang.Integer> pids)Gets information on aCollectionof currently running processes.OSService[]getServices()Gets the all services on the system.java.util.List<OSSession>getSessions()Gets currently logged in users.OperatingSystem.OSVersionInfogetVersionInfo()Operating system version information.booleanisElevated()Determine whether the current process has elevated permissions such as sudo / Administratorprotected java.util.List<OSProcess>processSort(java.util.List<OSProcess> processes, int limit, OperatingSystem.ProcessSort sort)Sorts an array of processes using the specified sorting, returning an array with the top limit results if positive.protected abstract intqueryBitness(int jvmBitness)Backup OS-specific query to determine bitness if previous checks failprotected abstract booleanqueryElevated()protected abstract AbstractOperatingSystem.FamilyVersionInfoqueryFamilyVersionInfo()protected abstract java.lang.StringqueryManufacturer()java.lang.StringtoString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface oshi.software.os.OperatingSystem
getChildProcesses, getFileSystem, getInternetProtocolStats, getNetworkParams, getProcess, getProcessCount, getProcesses, getProcessId, getSystemBootTime, getSystemUptime, getThreadCount
-
Field Details
-
OSHI_OS_UNIX_WHOCOMMAND
public static final java.lang.String OSHI_OS_UNIX_WHOCOMMAND- See Also:
- Constant Field Values
-
USE_WHO_COMMAND
protected static final boolean USE_WHO_COMMAND
-
-
Constructor Details
-
AbstractOperatingSystem
public AbstractOperatingSystem()
-
-
Method Details
-
getManufacturer
public java.lang.String getManufacturer()Description copied from interface:OperatingSystemManufacturer.- Specified by:
getManufacturerin interfaceOperatingSystem- Returns:
- String.
-
queryManufacturer
protected abstract java.lang.String queryManufacturer() -
getFamily
public java.lang.String getFamily()Description copied from interface:OperatingSystemOperating system family.- Specified by:
getFamilyin interfaceOperatingSystem- Returns:
- String.
-
getVersionInfo
Description copied from interface:OperatingSystemOperating system version information.- Specified by:
getVersionInfoin interfaceOperatingSystem- Returns:
- Version information.
-
queryFamilyVersionInfo
-
getBitness
public int getBitness()Description copied from interface:OperatingSystemGets the bitness (32 or 64) of the operating system.- Specified by:
getBitnessin interfaceOperatingSystem- Returns:
- The number of bits supported by the operating system.
-
queryBitness
protected abstract int queryBitness(int jvmBitness)Backup OS-specific query to determine bitness if previous checks fail- Parameters:
jvmBitness- The bitness of the JVM- Returns:
- The operating system bitness
-
isElevated
public boolean isElevated()Description copied from interface:OperatingSystemDetermine whether the current process has elevated permissions such as sudo / Administrator- Specified by:
isElevatedin interfaceOperatingSystem- Returns:
- True if this process has elevated permissions
-
getServices
Description copied from interface:OperatingSystemGets the all services on the system. The definition of what is a service is platform-dependent.- Specified by:
getServicesin interfaceOperatingSystem- Returns:
- An array of
OSServiceobjects
-
queryElevated
protected abstract boolean queryElevated() -
processSort
protected java.util.List<OSProcess> processSort(java.util.List<OSProcess> processes, int limit, OperatingSystem.ProcessSort sort)Sorts an array of processes using the specified sorting, returning an array with the top limit results if positive.- Parameters:
processes- The array to sortlimit- The number of results to return if positive; if zero returns all resultssort- The sorting to use, or null- Returns:
- An array of size limit (if positive) or of all processes, sorted as specified
-
getSessions
Description copied from interface:OperatingSystemGets 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-standardwhocommand, and may internally employ reentrant code on some platforms. Users may opt to use this command-line variant by default using theoshi.os.unix.whoCommandconfiguration property.- Specified by:
getSessionsin interfaceOperatingSystem- Returns:
- An
UnmodifiableListofOSSessionobjects representing logged-in users
-
getProcesses
Description copied from interface:OperatingSystemGets currently running processes. No order is guaranteed.- Specified by:
getProcessesin interfaceOperatingSystem- Returns:
- An
UnmodifiableListofOSProcessobjects for the specified number (or all) of currently running processes, sorted as specified. The list may contain null elements or processes with a state ofOSProcess.State.INVALIDif a process terminates during iteration.
-
getProcesses
Description copied from interface:OperatingSystemGets information on aCollectionof currently running processes. This has potentially improved performance vs. iterating individual processes.- Specified by:
getProcessesin interfaceOperatingSystem- Parameters:
pids- A collection of process IDs- Returns:
- An
UnmodifiableListofOSProcessobjects for the specified process ids if it is running
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-