<story><title>Why is the DOS path character &quot;\&quot;? (2005)</title><url>https://web.archive.org/web/20100612035120/http://blogs.msdn.com/b/larryosterman/archive/2005/06/24/432386.aspx</url></story><parent_chain></parent_chain><comment><author>kiwidrew</author><text>Thanks to Microsoft&amp;#x27;s recent release of the MS-DOS 2.0 source code, we can now peek under the hood and confirm that Microsoft specifically intended for the DOS 2.0 file APIs to be compatible with Unix.  From XENIX.ASM [1], the code that implements the new API:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    ;
    ; xenix file calls for MSDOS
    ;
    
    TITLE   XENIX - IO system to mimic UNIX
&lt;/code&gt;&lt;/pre&gt;
And the CONFIG.DOC [2] file discusses the &amp;#x27;AVAILDEV&amp;#x27; option which lets the system mimic Unix even more:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    AVAILDEV = &amp;lt;TRUE or FALSE&amp;gt;
        The  default  is  TRUE which means both &amp;#x2F;dev&amp;#x2F;&amp;lt;dev&amp;gt; and
        &amp;lt;dev&amp;gt; will reference the device &amp;lt;dev&amp;gt;.   If  FALSE  is
        selected,  only  &amp;#x2F;dev&amp;#x2F;&amp;lt;dev&amp;gt;  refers  to  device &amp;lt;dev&amp;gt;,
        &amp;lt;dev&amp;gt; by itself means a file in the current  directory
        with the same name as one of the devices.
&lt;/code&gt;&lt;/pre&gt;
Finally, an example CONFIG.SYS file from the same document:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    A typical configuration file might look like this:
    
    BUFFERS = 10
    FILES = 10
    DEVICE = &amp;#x2F;bin&amp;#x2F;network.sys
    BREAK = ON
    SWITCHAR = -
    SHELL = a:&amp;#x2F;bin&amp;#x2F;command.com a:&amp;#x2F;bin -p
&lt;/code&gt;&lt;/pre&gt;
I think it&amp;#x27;s pretty clear how Microsoft intended for MS-DOS to be configured, but alas IBM had other ideas...&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;MS-DOS&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;v2.0&amp;#x2F;source&amp;#x2F;XENIX.ASM&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;MS-DOS&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;v2.0&amp;#x2F;source&amp;#x2F;...&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;MS-DOS&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;v2.0&amp;#x2F;bin&amp;#x2F;CONFIG.DOC#L60&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;microsoft&amp;#x2F;MS-DOS&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;v2.0&amp;#x2F;bin&amp;#x2F;CON...&lt;/a&gt;</text></comment>
<story><title>Why is the DOS path character &quot;\&quot;? (2005)</title><url>https://web.archive.org/web/20100612035120/http://blogs.msdn.com/b/larryosterman/archive/2005/06/24/432386.aspx</url></story><parent_chain></parent_chain><comment><author>lifthrasiir</author><text>In addition to its use as a path separator in DOS and Windows, the backslash character itself is also interesting because it is very likely a modern invention, with the first attestation in 1940s (!). Its original use in ASCII (1960s) was for ALGOL operator digraphs `\&amp;#x2F;` and `&amp;#x2F;\`. Its early use as the C escape sequence (1970s, replacing `*` in BCPL) suggests that it carried no significant semantics at that time.</text></comment>