Roger wrote: > I finished reading the "Why We Love FreeDOS" book a few nights > ago. A really good read, and led myself to a similar conclusion, > DOS/FreeDOS is a really good platform for learning and implementing > initial experimental engineering for experimental or working hardware > due to simplicity and bare metal access.
I'm glad you liked the book! I also think FreeDOS is a great platform to learn about computing. One reason is it is so simple; DOS has very few "moving parts" to confuse things. I recently wrote an article for Allthingsopen.org about "how FreeDOS boots" to help people understand how a computer boots up. If you can understand this for a simple operating system like DOS, you can use that to figure out the more complex operating systems like Linux, Windows, and Mac. For example, DOS computers essentially do this: 1. The computer powers on and does a Power On Self Test ("POST") to verify that the hardware is working, then loads the kernel (FreeDOS) 2. The FreeDOS kernel reads \FDCONFIG.SYS (or \CONFIG.SYS) to read its configuration - this might include SHELL to tell the kernel which user shell to use 3. The kernel starts the user shell (or \COMMAND.COM if the shell was not specified) 4. COMMAND.COM executes commands in \AUTOEXEC.BAT (or another file like FDAUTO.BAT, if given) to set the initial environment 5. The user gets the ">" prompt and can type commands Once you understand those steps, you can start to understand how more complex operating systems boot up. > No wonder I had such a difficult time with DOS, DOS was a morphed > incarnation of CP/M. Main difference, instead of a ready prompt, > put the user at the C:\ prompt. > > I more so enjoy the Unix/Linux platform, all the software tends to > co-exist more peacefully than the intricate parts of DOS. On the > flip, DOS is assembly, whereas Unix/Linux is primarily C programming > language. Unix/Linux, when using the command line, typing just flows > far better than typing DOS commands. Well, Unix/Linux and DOS have very different origins to solve different problems - and because of that, they grew up quite differently. The main thing about Unix is that it was created with the idea that each program should be specific and do one thing really well, and you can combine programs to do something really cool. That design idea meant that you didn't have "applications" on Unix, you had a set of tools. DOS was created for a different purpose. When IBM created the IBM PC 5150 in 1981, they needed an operating system to run on it, so the computer could run programs. I'll save the backstory, but Microsoft licensed a "DOS" from Seattle Computing, and that became the PC's DOS. But DOS was not intended to be a set of tools like Unix. Instead, the DOS command line was something you might use to do a few things like format a floppy or edit a file, or do basic file management, but mostly you just ran an application (such as the BASIC interpreter). DOS has always been very application-based. -- I'm very off-topic with this, but here's an example: 'cat' will print the contents of a file (or files) to the terminal. 'tr' will translate one character set to another character set, or delete characters from a set. 'uniq' will remove duplicate lines from a file. 'sort' will sort the lines in a file. And 'comm' will compare two files and print the lines that are unique to file1, file2, or both. Individually, these are interesting commands that you can use to do a lot of different things. And by combining them in a specific way, you can do something like find misspelled words in a text file: (The first command just makes sure you have a correctly sorted list) > $ sort /usr/share/dict/words > words > $ cat hello.txt Hi there! This is a demnstration of how to find misspelled words. > $ cat hello.txt | tr A-Z a-z | tr -d '.,:;()?!' | tr ' ' '\n' | sort | uniq | > comm -2 -3 - words demnstration In other words: convert uppercase to lowercase, remove punctuation, turn spaces into new-lines (each word will be on a separate line), sort the list, remove duplicates, compare to the dictionary (the 'words' file') and only show the lines (words) that do NOT appear in the dictionary. So that just shows how to combine tools to do different things, rather than relying on a single application to do it all for you. There's tradeoffs either way for "tools" v "applications," I'm just showing an example of "tools." *The sort command was an original program from Unix 1st Edition (November 1971), uniq arrived in Unix 3rd Edition (February 1973), and tr and comm were both introduced in Unix 4th Edition (November 1973). _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user