# Class OperatingSystemFamily

java.lang.Object
org.gradle.nativeplatform.OperatingSystemFamily

All Implemented Interfaces:
  `Named`

public abstract class OperatingSystemFamily extends Object implements Named
Represents the operating system of a configuration. Typical operating system include Windows, Linux, and macOS. This interface allows the user to customize operating systems by implementing this interface.

Since:
  4.7

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `LINUX`
  The Linux operating system family.
  `static final String`
  `MACOS`
  The macOS operating system family.
  `static final Attribute<OperatingSystemFamily>`
  `OPERATING_SYSTEM_ATTRIBUTE`
  Of.
  `static final String`
  `WINDOWS`
  The Windows operating system family.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OperatingSystemFamily()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract String`
  `getName()`
  The object's name.
  `boolean`
  `isLinux()`
  Is this the Linux operating system family?
  `boolean`
  `isMacOs()`
  Is this the macOS operating system family?
  `boolean`
  `isWindows()`
  Is this the Windows operating system family?

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### OPERATING_SYSTEM_ATTRIBUTE

    public static final Attribute<OperatingSystemFamily> OPERATING_SYSTEM_ATTRIBUTE
    Of.
    Since:
      4.7

  - ### WINDOWS

    public static final String WINDOWS
    The Windows operating system family.
    Since:
      4.7
    See Also:
      - Constant Field Values

  - ### LINUX

    public static final String LINUX
    The Linux operating system family.
    Since:
      4.7
    See Also:
      - Constant Field Values

  - ### MACOS

    public static final String MACOS
    The macOS operating system family.
    Since:
      4.8
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### OperatingSystemFamily

    public OperatingSystemFamily()

- ## Method Details

  - ### getName

    @Input public abstract String getName()
    The object's name.

    Must be constant for the life of the object.

    Specified by:
      `getName` in interface `Named`
    Returns:
      The name. Never null.

  - ### isWindows

    public boolean isWindows()
    Is this the Windows operating system family?
    Since:
      4.8

  - ### isLinux

    public boolean isLinux()
    Is this the Linux operating system family?
    Since:
      4.8

  - ### isMacOs

    public boolean isMacOs()
    Is this the macOS operating system family?
    Since:
      4.8