Issue #27626: Spelling fixes in docs, comments and internal names

Based on patch by Ville Skyttä.
diff --git a/Doc/howto/clinic.rst b/Doc/howto/clinic.rst
index 7f275a4..82eae01 100644
--- a/Doc/howto/clinic.rst
+++ b/Doc/howto/clinic.rst
@@ -1583,7 +1583,7 @@
 
     preserve
 
-This tells Clinic that the current contents of the output should be kept, unmodifed.
+This tells Clinic that the current contents of the output should be kept, unmodified.
 This is used internally by Clinic when dumping output into ``file`` files; wrapping
 it in a Clinic block lets Clinic use its existing checksum functionality to ensure
 the file was not modified by hand before it gets overwritten.
diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst
index 04394d4..bc71d85 100644
--- a/Doc/howto/sockets.rst
+++ b/Doc/howto/sockets.rst
@@ -106,7 +106,7 @@
 There's actually 3 general ways in which this loop could work - dispatching a
 thread to handle ``clientsocket``, create a new process to handle
 ``clientsocket``, or restructure this app to use non-blocking sockets, and
-mulitplex between our "server" socket and any active ``clientsocket``\ s using
+multiplex between our "server" socket and any active ``clientsocket``\ s using
 ``select``. More about that later. The important thing to understand now is
 this: this is *all* a "server" socket does. It doesn't send any data. It doesn't
 receive any data. It just produces "client" sockets. Each ``clientsocket`` is
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst
index eeae96a..a9a5f5a 100644
--- a/Doc/library/configparser.rst
+++ b/Doc/library/configparser.rst
@@ -66,7 +66,7 @@
 <#supported-ini-file-structure>`_.  Essentially, the file
 consists of sections, each of which contains keys with values.
 :mod:`configparser` classes can read and write such files.  Let's start by
-creating the above configuration file programatically.
+creating the above configuration file programmatically.
 
 .. doctest::
 
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index ff7cc91..06e9ea3 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -629,7 +629,7 @@
     .. method:: path_stats(path)
 
         Optional abstract method which returns a :class:`dict` containing
-        metadata about the specifed path.  Supported dictionary keys are:
+        metadata about the specified path.  Supported dictionary keys are:
 
         - ``'mtime'`` (mandatory): an integer or floating-point number
           representing the modification time of the source code;
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index e73d8ee..4265bc2 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -1900,7 +1900,7 @@
    On Unix, *path* can be of type :class:`str` or :class:`bytes` (use
    :func:`~os.fsencode` and :func:`~os.fsdecode` to encode and decode
    :class:`bytes` paths). On Windows, *path* must be of type :class:`str`.
-   On both sytems, the type of the :attr:`~DirEntry.name` and
+   On both systems, the type of the :attr:`~DirEntry.name` and
    :attr:`~DirEntry.path` attributes of each :class:`DirEntry` will be of
    the same type as *path*.
 
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 48311c5..02f2350 100644
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -1211,7 +1211,7 @@
    much data, if any, was successfully sent.
 
    .. versionchanged:: 3.5
-      The socket timeout is no more reset each time data is sent successfuly.
+      The socket timeout is no more reset each time data is sent successfully.
       The socket timeout is now the maximum total duration to send all data.
 
    .. versionchanged:: 3.5