[HN Gopher] The Life of MS-DOS
       ___________________________________________________________________
        
       The Life of MS-DOS
        
       Author : ingve
       Score  : 69 points
       Date   : 2022-02-13 16:45 UTC (6 hours ago)
        
 (HTM) web link (b13rg.github.io)
 (TXT) w3m dump (b13rg.github.io)
        
       | pdenton wrote:
       | The article omits the incompatibility issues with Lotus, and the
       | patent infringement lawsuit about DoubleSpace.
        
         | mrlonglong wrote:
         | It also omits mention about things like FreeDOS that's still
         | being worked on today!
        
           | paulryanrogers wrote:
           | It is strange though I suppose it could be considered an
           | independent reimplementation since there is no shared source.
           | There's also DOSEmu and DOSBox, which while not directly
           | bootable, are DOS environments.
        
       | achairapart wrote:
       | Well, the article misses version 5.0, which according to its rap-
       | promo commercial[0] freed "45kb of memory at least"(!).
       | 
       | [0]: https://www.youtube.com/watch?v=dmEvPZUdAVI
        
       | malkia wrote:
       | When I discovered ProDos for Apple ][/e (Actually what I had the
       | was the bulgarian clone called Pravetz 8C) I was so overjoyed
       | (because at school MS-DOS is what we used on PC/AT/XT machines)
       | and it was closer. Then I learned that there were even more
       | options!
        
       | mrlonglong wrote:
       | I've wanted to re-implement DOS in pure assembler for years to
       | have that lean and mean that uses less memory than MS-DOS but
       | never had the time.
        
         | ok123456 wrote:
         | The sources for MS-DOS have been floating around the net
         | basically forever. The original first few releases are even on
         | Microsoft's github. It largely is already in ASM. Some of the
         | user programs are written in C.
         | 
         | To me, it would be far more interesting to see what modern
         | compilers and development tooling could do towards producing
         | DOS programs and operating system extensions. The tooling from
         | back in the day was very baroque. You had to rely on different
         | mutually incomparable dos extenders to get around all the
         | limitations. (Just try to find the documentation to Phar Lap
         | 386 in 2022.)
        
           | mrlonglong wrote:
           | Personally for me it would be an interesting experience to
           | see what and why they chose to do things they did with MS-
           | DOS. One thing to try is to see if it's possible to write a
           | 64 bit DOS extender.
        
             | oso2k wrote:
             | There's a couple attempts at running 64-bit in DOS. It
             | usually has no benefits for old code and very little new
             | 64-bit is being written and there are no libraries for
             | common compilers.
             | 
             | https://github.com/Baron-von-Riedesel/Dos64-stub
             | 
             | https://www.bttr-software.de/forum/board_entry.php?id=15853
        
               | mrlonglong wrote:
               | Nice one, thanks.
        
           | tored wrote:
           | What would writing DOS programs and extenders with modern
           | tooling accomplish? Trying to understand the goal.
        
             | ok123456 wrote:
             | Making easy to understand and maintain programs in C++,
             | with compilers that can that can do aggressive
             | optimizations and inlining that compilers of the day could
             | not do.
             | 
             | The STL didn't exist until the late 90s, and before C++98
             | it was a wild-west.
        
               | krkixohjk wrote:
               | But what is the goal in having maintainable ms-dos
               | software?
               | 
               | The OS is still ancient and lacks most every possible
               | security measure.
               | 
               | Every program can r/w any memory and so on...
        
               | Koshkin wrote:
               | > _lacks most every possible security measure_
               | 
               | So do calculators and typewriters. (Some people use
               | computers to, gasp, perform computations, and low or no
               | overhead is nice.)
        
               | ok123456 wrote:
               | The fact that it gets out of your way is a feature. Why
               | does security matter on a single user, non-multitasked
               | environment with no networking?
               | 
               | The netsec industrial complex has really set back
               | computing.
        
               | xunn0026 wrote:
               | I agree with the sentiment but note there were still
               | viruses being circulated through floppy disks. So, 3rd
               | party code may still be executed on a non-networked
               | machine.
               | 
               | Indeed, it would be awesome to see how much a machine can
               | do without all the layers. Even the Intel CPU security
               | fixes could be bypassed and gain some extra speed.
        
               | tored wrote:
               | Stuxnet is the modern variant.
               | 
               | Regardless of the qualities of DOS, the user interfaces
               | of the graphical programs was in many cases superior
               | compared to today, everything keyboard controlled,
               | clearly labeled shortcut keys, views that usually only
               | did one thing, distinctive coloring.
        
               | ok123456 wrote:
               | Stuxnet happened even with all of those protection
               | mechanisms in place.
        
               | wyldfire wrote:
               | MSDOS did have MMU support since 80386, IIRC. So I think
               | GPs claim might be inaccurate. But it wasn't a security
               | feature, it was a productivity feature. It protected your
               | programs from defects in other programs and vice versa.
               | This helps programmers find defects during design and
               | helps users for defects that escape testing.
        
               | kevin_thibedeau wrote:
               | DOS serves as a good bootloader for an embedded system.
        
               | Koshkin wrote:
               | E.g. https://en.wikipedia.org/wiki/Loadlin
        
           | hulitu wrote:
           | Taken into account how the modern compilers evolved, i don't
           | have big hopes. They seem to become more bloated with every
           | release.
        
             | boznz wrote:
             | The compilers have probably got better but the C language
             | has definitely bloated since the 80s
        
             | oso2k wrote:
             | gcc-ia16 and OpenWatcom are both modern compilers that
             | generate as good a set of code as any compiler ever did for
             | Pentium and older processors. But using a higher level
             | language like C means there's more than one compiler that
             | can compile your DOS. That's a reason to be hopeful if
             | you're a DOS developer.
        
             | ok123456 wrote:
             | constexpr code and move semantics didn't exist until
             | relatively recently. These are steps towards less bloat and
             | more aggressive optimization. They also can elide
             | gratuitous copy construction.
             | 
             | There are a lot of these little optimizations that are
             | found in modern compilers that you could only dream about
             | in 1991.
        
         | bitigchi wrote:
         | Why not contribute to FreeDOS?
        
         | 13of40 wrote:
         | It was written in assembly code:
         | https://github.com/microsoft/MS-DOS/tree/master/v2.0/source
         | 
         | This is a very old version, but I've seen bits and pieces of
         | the last one they shipped and things like command.com and the
         | "kernel" were nearly the same as this, except for maybe some
         | memory management changes. What part did you want to
         | reimplement?
        
       | timbit42 wrote:
       | There's not much about the life of MS-DOS there. It's mostly pre-
       | history.
        
       | marcodiego wrote:
       | The DOS family tree lacks FreeDOS, the last remaining maintained
       | DOS implementation.
        
         | cout wrote:
         | Where in the chart would you put FreeDOS? AFAIK it's not a
         | direct descendant of any version of DOS on the chart but is a
         | separate implementation.
        
       | Yhippa wrote:
       | I was a kid with not much else to do. We had a home PC and no
       | internet connectivity. I spent so much time going through the MS-
       | DOS manual and trying out all the commands. If only I had spent
       | that time learning Linux commands...
        
         | sedatk wrote:
         | Luckily, my older brother had brought home a "Learning UNIX"
         | book when I was a kid, which helped me learn about UNIX
         | fundamentals years before getting my hands on a machine with
         | it. I was fascinated with the book because UNIX sounded too
         | advanced compared to what I was using back then (an 8-bit
         | Amstrad CPC464). I still use the same knowledge such as
         | managing shell background jobs, exiting vi, using tar,
         | permissions, and so forth 30 years later. UNIX is quite magical
         | in its consistency.
        
           | unixhero wrote:
           | I rarely bring in anecdotes from my mum, but she said it
           | seemed like I was learning something so arcane, as if I was
           | learning how to run nuclear powerplants when I studied Unix
           | at the age of 16. I still use the knowledge I learned from
           | those books, thanks IDC and O'Reilly. I still think Sendmail
           | and bind DNS is a bitch. I still also ridicule Microsoft,
           | although on various points I know I am at least partially
           | wrong.
           | 
           | Unix and Linux, what a world.
        
         | yokoprime wrote:
         | Same. MS-DOS was such a turd of an operating system. So much
         | time fiddling with IRQ settings and disabling stuff to squeeze
         | out just a little more conventional memory so I could play
         | Warcraft II
        
           | 13of40 wrote:
           | I was at a conference or something one time and saw a talk by
           | Bill Gates, where he said that they'd tried to convince IBM
           | to use a 68000 CPU in the original PC. Imagine what DOS could
           | have been with a 32-bit instruction set and 16MB address
           | space from day one. A lot of the eccentricities of DOS at the
           | API level stem from the limitations of the hardware.
        
             | kwhitefoot wrote:
             | Then you have to explain why CP/M running on 8 bit hardware
             | was so much better than DOS on 16 bit.
        
               | 13of40 wrote:
               | I've had pretty limited experience using CP/M - I think
               | the last time I actually played with it was in the early
               | 90s when some old guy I knew was still using it to run a
               | BBS. As far as I recall it was just as atrocious as DOS
               | and other things of that era, at least from a UX point of
               | view. DOS's int 21h API is a close cousin of the system
               | library in CP/M, so I'd expect the developer experience
               | to be kind of similar. Is there something specific you
               | think CP/M was doing better?
        
       | rascul wrote:
       | The article mentions MS-DOS 6.3 as the latest standalone version,
       | but I can't find anything about it anywhere.
       | 
       | PC-DOS had a 6.3, but as far as I know, MS-DOS only went to 6.22
       | before going to 7 (which was not shipped standalone).
        
         | jmclnx wrote:
         | IBM came out with PC-DOS 7.0 around 2000, it had fixes for the
         | Year 2000 plus REX language. I still a copy of it somewhere.
        
         | mobilio wrote:
         | I also note that.
         | 
         | Probably typo mistake from author?
        
       ___________________________________________________________________
       (page generated 2022-02-13 23:00 UTC)