Tuesday, May 12, 2015

A few thoughts on simplifying the install process

Years ago, I wrote the very first FreeDOS Install program. That was what really launched FreeDOS from its Alpha release to a Beta release in 1998, with the FreeDOS 0.1 "Orlando" distribution. Over time, I updated the FreeDOS Install program to make the install process more modular, to make things easier for a packager to assemble a FreeDOS distribution. The install process was quite simple back then: the FreeDOS Install program just scanned a list of packages and package "sets," and gave you the option of what sets to install, or what specific packages.

Later, another developer added a post-install process to update the system, to make it ready for first use. And that version is pretty much what you see today in the FreeDOS 1.1 distribution. The FreeDOS install process hasn't changed substantially, even from 1998.

I want to simplify the install proces. DOS is a very simple system; do we really need to have all these options of what packages and package sets to install? I don't think so. Let's just install the whole thing.

But I want to simplify things even more. When you take a step back, the FreeDOS Install program is just a wrapper to the Info-Unzip library. Once you set it in motion, it runs through all the packages and unzip them to the target drive and directory (usually C:\FDOS). We don't need a compiled program for that. We can simplify this to a smart batch script that calls Unzip for every package in the distribution.

My idea: Rather than create a single DOS application, create a set of small "batch utilities" that do the work of the install process, including the FreeDOS Install program. I imagine these batch utilities as "Visual" utility programs—utilities that are similar to their command-line counterparts, except they use a pretty full-screen interface. Let me define what I think is needed to simplify the install process using these Visual batch utilities. For each program, I'll use V ("Visual") to start the program name:
VCHOICE "prompt" "choice"…
Display some text, and allow the user to select an option from a list.
Can be used to display simple prompts:
VCHOICE "Hi there. This is the FreeDOS 1.2 distribution…" "OK" "Exit"

Or, select what to install:
VCHOICE "Do you want to install everything?" "Yes, everything" "Just BASE" "Exit"

Or, select to install source code:
VCHOICE "Do you want to install source code, too?" "Yes" "No" "Exit"
VECHO "text"…
Display some text. This might be used to display a message while the install process is busy working. For example, this could print a "Now installing FreeDOS…" message as the install process unzips all of the packages.

VCLS
Clear the screen, and draw a basic screen (background color, header) without any windows.

It's clear to me that VCLS is the "base" program here; just clear the display and draw a basic screen with background colors and "FreeDOS 1.2" header. From that, it's a small step to build the VECHO program. And from VECHO, you are another step to build the VCHOICE program.
And I think we need another simple program to help the install process along:
CHECKC
Checks if the C: drive exists, and is formatted. The errorlevel could indicate status:
0 C: exists and is formatted
1 C: exists but is not formatted
2 C: does not exist
With a modular approach to a simplified install process, we might add other simple programs that do specific things. One program might detect hardware and output lines that get appended to CONFIG.SYS or AUTOEXEC.BAT.

Unfortunately, I am really really overcommitted right now. I wanted to write these programs over the winter break in December and January, but I didn't have the free time I thought I would have. But maybe others can take these ideas and run with them. Feel free to write these utility programs and contribute them to FreeDOS. This will help everyone. In particular, I think it is an important step towards the FreeDOS 1.2 distribution!

No comments:

Post a Comment