-
In Windows, files that are in use cannot be modified
- As a result, Windows updates have to happen when the computer is not in use, such as during shutdown or boot (often both)
- Compare to Linux/macOS, which can install updates while the computer is being used 😎
- As a result, Windows updates have to happen when the computer is not in use, such as during shutdown or boot (often both)
-
Windows uses backslashes (
\
) as file system path separators- All other modern operating systems (macOS, Linux, Android, iOS, etc) use a normal (i.e. forward) slash (
/
) and use backslashes for escaping
- All other modern operating systems (macOS, Linux, Android, iOS, etc) use a normal (i.e. forward) slash (
-
Windows' NTFS filesystem performs poorly compared to Linux's
ext4
filesystemUnfortunately, WSL1 was hampered by the performance characteristics of NTFS, which do not match the expectations of Linux software. Microsoft has since replaced WSL1 with WSL2, which provides similar functionality by running the Linux kernel in a virtual machine. In WSL2, Linux software runs against an ext4 file system, rather than an NTFS file system.
- Windows uses UTF-16 encoding, which is deprecated nearly everywhere else in favour of UTF-8 as UTF-16 is less efficient and is not compatible with ASCII
- Many Windows and Microsoft applications add hidden characters (unicode 00a0, 200b, 200c, 200d, etc) to text that break normal software expecting plain text input. This has even been observed in such simple applications as the calculator (microsoft/calculator#504)
- PowerShell cannot do a simple search and replace of text in a binary file because it attempts to encode all of the data as a string
- Compare to other operating systems where
sed
is able to simply replace text even in a binary file
- Compare to other operating systems where
-
Windows command line has a length limit of 8191 characters
- Compare to Linux, which has a much higher limit (typically over 100k characters)
-
Windows can't run Docker containers natively
- They need to run inside a Linux VM (they can be run inside WSL, which is itself a Linux VM)
See also: