diff --git a/docs/doing-a-release.rst b/docs/doing-a-release.rst
index 8e9222e..2da2c80 100644
--- a/docs/doing-a-release.rst
+++ b/docs/doing-a-release.rst
@@ -6,8 +6,8 @@
 Verifying and upgrading OpenSSL version
 ---------------------------------------
 
-The release process uses a static build for Windows and OS X wheels. Check that
-the Windows and OS X Jenkins builders have the latest version of OpenSSL
+The release process uses a static build for Windows and macOS wheels. Check
+that the Windows and macOS Jenkins builders have the latest version of OpenSSL
 installed before performing the release. If they do not:
 
 Upgrading Windows
@@ -16,8 +16,8 @@
 Run the ``openssl-release-1.1`` Jenkins job, then copy the resulting artifacts
 to the Windows builders and unzip them in the root of the file system.
 
-Upgrading OS X
-~~~~~~~~~~~~~~
+Upgrading macOS
+~~~~~~~~~~~~~~~
 
 ``brew update`` and then ``brew upgrade openssl@1.1 --build-bottle`` to
 install a 64-bit only library compatible with all Intel Macs.
diff --git a/docs/faq.rst b/docs/faq.rst
index 4327d11..4a9fd5c 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -14,10 +14,10 @@
 
 If you prefer NaCl's design, we highly recommend `PyNaCl`_.
 
-Compiling ``cryptography`` on OS X produces a ``fatal error: 'openssl/aes.h' file not found`` error
----------------------------------------------------------------------------------------------------
+Compiling ``cryptography`` on macOS produces a ``fatal error: 'openssl/aes.h' file not found`` error
+----------------------------------------------------------------------------------------------------
 
-This happens because OS X 10.11 no longer includes a copy of OpenSSL.
+This happens because macOS 10.11 no longer includes a copy of OpenSSL.
 ``cryptography`` now provides wheels which include a statically linked copy of
 OpenSSL. You're seeing this error because your copy of pip is too old to find
 our wheel files. Upgrade your copy of pip with ``pip install -U pip`` and then
diff --git a/docs/hazmat/backends/commoncrypto.rst b/docs/hazmat/backends/commoncrypto.rst
index a6eb490..e976b6f 100644
--- a/docs/hazmat/backends/commoncrypto.rst
+++ b/docs/hazmat/backends/commoncrypto.rst
@@ -3,8 +3,8 @@
 CommonCrypto backend
 ====================
 
-The `CommonCrypto`_ C library provided by Apple on OS X and iOS. The
-CommonCrypto backend is only supported on OS X versions 10.8 and above.
+The `CommonCrypto`_ C library provided by Apple on macOS and iOS. The
+CommonCrypto backend is only supported on macOS versions 10.8 and above.
 
 .. currentmodule:: cryptography.hazmat.backends.commoncrypto.backend
 
diff --git a/docs/hazmat/backends/openssl.rst b/docs/hazmat/backends/openssl.rst
index 22807f1..897a05c 100644
--- a/docs/hazmat/backends/openssl.rst
+++ b/docs/hazmat/backends/openssl.rst
@@ -92,7 +92,7 @@
 OS random sources
 -----------------
 
-On OS X and FreeBSD ``/dev/urandom`` is an alias for ``/dev/random`` and
+On macOS and FreeBSD ``/dev/urandom`` is an alias for ``/dev/random`` and
 utilizes the `Yarrow`_ algorithm.
 
 On Windows the implementation of ``CryptGenRandom`` depends on which version of
diff --git a/docs/hazmat/bindings/commoncrypto.rst b/docs/hazmat/bindings/commoncrypto.rst
index d5a739c..63e734c 100644
--- a/docs/hazmat/bindings/commoncrypto.rst
+++ b/docs/hazmat/bindings/commoncrypto.rst
@@ -8,7 +8,7 @@
 .. versionadded:: 0.2
 
 These are `CFFI`_ bindings to the `CommonCrypto`_ C library. It is only
-available on Mac OS X versions 10.8 and above.
+available on macOS versions 10.8 and above.
 
 .. class:: cryptography.hazmat.bindings.commoncrypto.binding.Binding()
 
diff --git a/docs/security.rst b/docs/security.rst
index ff0a84a..67c3d33 100644
--- a/docs/security.rst
+++ b/docs/security.rst
@@ -64,7 +64,7 @@
 --------------------------------
 
 As of version 0.5, ``cryptography`` statically links OpenSSL on Windows, and as
-of version 1.0.1 on OS X, to ease installation. Due to this, ``cryptography``
+of version 1.0.1 on macOS, to ease installation. Due to this, ``cryptography``
 will release a new version whenever OpenSSL has a security or bug fix release to
 avoid shipping insecure software.
 
diff --git a/src/_cffi_src/utils.py b/src/_cffi_src/utils.py
index 00c8bad..3a4dd77 100644
--- a/src/_cffi_src/utils.py
+++ b/src/_cffi_src/utils.py
@@ -90,7 +90,7 @@
 def compiler_type():
     """
     Gets the compiler type from distutils. On Windows with MSVC it will be
-    "msvc". On OS X and linux it is "unix".
+    "msvc". On macOS and linux it is "unix".
     """
     dist = Distribution()
     dist.parse_config_files()
diff --git a/src/cryptography/hazmat/backends/commoncrypto/backend.py b/src/cryptography/hazmat/backends/commoncrypto/backend.py
index 838e572..da78c9a 100644
--- a/src/cryptography/hazmat/backends/commoncrypto/backend.py
+++ b/src/cryptography/hazmat/backends/commoncrypto/backend.py
@@ -104,7 +104,7 @@
         return _HMACContext(self, key, algorithm)
 
     def cipher_supported(self, cipher, mode):
-        # In OS X 10.11.2-5 (as of this writing) CommonCrypto has a bug with
+        # In macOS 10.11.2-5 (as of this writing) CommonCrypto has a bug with
         # Blowfish key lengths less than 64-bit. Filed as radar://26636600
         if isinstance(cipher, Blowfish) and len(cipher.key) < 8:
             return False
