title: In Windows, why are some characters illegal?
body: <p>As most of us know, Windows bans the following characters in file names:</p>
  
  <p><code>* . " / \ [ ] : ; | = ,</code></p>
  
  <p>Linux, and other Unix based systems, only ban <code>\0</code> (the null character) and <code>/</code> (the path separator) for reasons that seem immediately obvious.</p>
  
  <p><strong>Why does Windows have so many banned characters?</strong></p>
  
  <p>I've looked, and every answer I find is some variation of "is this valid" or "what is valid", nothing discussing the design decisions that caused the Windows (DOS?) team to make them illegal.</p>