Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Differences between the versions:

- Big difference in philosophy. CP/M is record-based, you work with big tables describing files. Dos 2.0 prefers streams, and it has much more lightweight, Unix-like file handles.

- Another Unix feature adopted is device files. There was no line printer or console file in DOS 1.0, if you wanted to do something unique with I/O you had to write a program for it. That along with pipes makes 2.0 much more nice to work with even 40 years later.

- Hierarchical directories and hard drives. The two go together, and the advantages should be obvious.

- Memory management. Dos 2.0 is the first to have equivalents of malloc, free, and realloc in its syscalls. This makes having Terminate and Stay Resident (TSR) programs much more feasible. The PRINT command is an example, it can run in the background.



Serious programmers bypassed almost all of that. The hierarchical files became important after people got what they called "hard drives".


If you bypassed DOS's memory allocation, your program would stomp on TSRs, or if it was a TSR then other programs would stomp on it, so either way it would be super unreliable.

The only thing I remember ever bypassing DOS for filesystem access was things like Norton DiskEdit, unerase utilities, and defraggers. Do you have examples in mind?

(Of course lots of programs didn't use standard output.)

I agree that without hard drives you didn't really need subdirectories. It's hard to fit more than a couple of screenfuls of files on a single floppy.


Question: bypassing graphics routines is very common to read, but how often was file I/O bypassed? I have never heard anything like that.


Games released as bootable floppies for instance.


There were only a dozen or so of those, it was pretty niche.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: