Thursday, November 24, 2016

Almost there with FreeDOS 1.2

If you read my blog, you are probably also following that we are very close to FreeDOS 1.2. We released the FreeDOS 1.2 Release Candidate 1 (RC1) on Halloween, October 31. And earlier today on US Thanksgiving, November 24, we posted the FreeDOS 1.2 RC2.

You can find more info about the FreeDOS 1.2 RC2 release at my Open Source Software & Usability blog: FreeDOS 1.2 Release Candidate 2.

I'm very excited by the work everyone has put into these test releases. I think the FreeDOS 1.2 release will be one of our best-tested versions. Thank you to everyone who contributes to FreeDOS: developers, testers, and users.

So, what's new in FreeDOS 1.2? This new version doesn't change the game for FreeDOS in a very significant way. If you are on the freedos-devel mailing list, you may remember that we discussed what the next version of FreeDOS after FreeDOS 1.1 should look like. For a while, I thought we should think about what "DOS" might look like in 2016, if Windows hadn't displaced MS-DOS. I thought the next FreeDOS would be "FreeDOS 2.0" and would be more "modern."

But in the end, others convinced me that FreeDOS is still DOS, and we shouldn't look to change it. And they are right. FreeDOS wouldn't be "DOS" if it didn't look like DOS and act like DOS. FreeDOS still needs to be a DOS-compatible operating system. All of your DOS applications need to "just work" on FreeDOS. If we break any of that, then FreeDOS isn't "DOS" anymore. So we decided the next version should be an incremental improvement, and thus we are working toward "FreeDOS 1.2."

In FreeDOS 1.2, we changed many of the packages. Some packages were replaced, deprecated by newer and better packages. We also added other packages. And we expanded what we should include in the FreeDOS distribution. Where FreeDOS 1.0 and 1.1 where fairly spartan distributions with only "core" packages and software sets, the FreeDOS 1.2 distribution includes a rich set of additional packages. We even include games.

But the biggest change you are likely to notice in FreeDOS 1.2 is the updated installer. Jerome Shidel wrote an entirely new FreeDOS install program, and it looks great! We focused on keeping the new installer simple and easy to use. While many DOS users in 2016 are experienced DOS programmers and DOS power users, we often see many new users to FreeDOS, and I wanted to make the install process pleasant for them. The default mode for the installer is very straightforward, and you only have to answer a few questions to install FreeDOS on your system. There's also an "Advanced" mode where power users can tweak the install and customize the experience.

Please download the new FreeDOS 1.2 RC2 and let us know what you think. If you have problems, report them to the freedos-devel mailing list.

As always, I encourage you to install FreeDOS in a PC emulator or "virtual machine," especially if you already have another operating system (such as Windows) on your computer. A PC emulator allows you to install FreeDOS inside your regular operating system, and makes testing the new FreeDOS a low-risk experience.

Power users can also benefit from using a PC emulator, because you can use different virtual machines to test different things in FreeDOS. That's actually how I use FreeDOS on my own system. (I use GNOME Boxes, which is actually an instance of QEMU. I sometimes also use DOSEMU, especially if I'm developing programs for FreeDOS.)

Wednesday, October 5, 2016

Looking ahead to FreeDOS 1.2

Have you been testing the pre-releases of the upcoming FreeDOS 1.2 release? Jerome and others have been doing a great job putting this together, and I think we are almost "there" for a final FreeDOS 1.2 release.

We have only a few minor changes based on the latest 1.2-pre23. So we are planning the next one to be the release candidate! We are looking at the following release schedule:

10/31 - FreeDOS 1.2 RC1
11/24 - FreeDOS 1.2 RC2
12/25 - FreeDOS 1.2 official release

I think Jerome described the holiday-based release schedule best with this:

1.2 RC1 on 10/31/16, Scary release
1.2 RC2 on 11/24/16, Thankful if not needed
1.2 Final on 12/25/16, Gift to all FreeDOS users

I'd really appreciate everyone testing the heck out of this. We want to find (and fix!) any issues that still remain. Watch for official announcements on the FreeDOS website for each of the release candidates.

As always, please continue to test the latest FreeDOS 1.2-pre23 and report any issues. We'll work those fixes into the release candidate. You can download the pre-release version at ibiblio.

Monday, July 11, 2016

Updating the FreeDOS Wiki

I'm updating the FreeDOS website, and as part of that work, I am updating the FreeDOS Wiki.

This phase of the update is mostly cosmetic: moving the FreeDOS Wiki website address. We host the FreeDOS website and the FreeDOS Wiki at different locations: the website via a private webserver at Amazon, and the wiki at our project website at SourceForge:


The wiki will still run from SourceForge, but you'll soon be able to access it more directly at:


In later phases, I plan to go through the FreeDOS Wiki to update the "landing" page and make sure other pages on the wiki are well organized.

Sunday, August 30, 2015

Thoughts on updating the install process

Jerome Shidel has been working on a set of power utilities for DOS batch files. Called the V8Power Tools for DOS, they provide "Visual" equivalents to many command line tools, such as VCLS, VCHOICE, VECHO .. as well as new power tools such as VPROGRES (display a progress bar) and VFRAME (for text-mode boxes).

I would love to see an update to the FreeDOS install process that uses Jerome's V8Power Tools. It may help to know that we've previously discussed (on the mailing list, and individually with a few developers) that the next FreeDOS distribution should assume some defaults. For example, rather than ask "minimal install," "normal install," "complete install," and "custom install," simply assume a "default" installation. The only option that needs to be asked is if the user wants to install source code, too.

This simplifies the install process quite a lot. And it means that everyone starts with a standard configuration, which makes debugging easier (rather than having to ask "did you do a complete install or only the minimal install?" when helping someone with a question or problem). FreeDOS isn't very large, so limiting the install options is unlikely to be an issue for many people these days.

Applying Jerome's V8Power Tools, the INSTALL.BAT would be quite simple. Here's an example that I'm just making up (I haven't tested this):
@ECHO OFF

VCHOICE "Hi there. You are about to install FreeDOS onto your computer. If this is not what you intend to do, please exit now." "Continue" "Exit"
IF ERRORLEVEL 2 GOTO QUIT

VCHOICE "Do you want to install source code, too?" "Yes" "No"
IF ERRORLEVEL 1 GOTO INSTALL

SET EXCLUDE="-x SOURCE"

:INSTALL
VECHO "Installing FreeDOS … Please wait"

UNZIP -qq A:\INSTALL\PKGS\BASE\*.ZIP %EXCLUDE% -d C:\FDOS
UNZIP -qq A:\INSTALL\PKGS\DEVEL\*.ZIP %EXCLUDE% -d C:\FDOS
UNZIP -qq A:\INSTALL\PKGS\EDIT\*.ZIP %EXCLUDE% -d C:\FDOS
REM … and so on for other package sets

VCHOICE "FreeDOS has been installed! You can reboot the computer now, or you can just exit back to the system." "Reboot" "Exit"
IF ERRORLEVEL 2 GOTO DONE

VECHO "Rebooting …"
REBOOT

:QUIT
VECHO "You have aborted the installation."
GOTO END

:DONE
VCLS
ECHO "Ok"

:END

That batch script is over-simplified (it doesn't check if the C: drive is ready, doesn't run post-install scripts, etc.) but I think it's enough that you can see the idea I had.

Sunday, August 16, 2015

Farewell to CarbonOS

I meant to share a note about this earlier, but then SourceForge went down and my attention was drawn to other things. I just wanted to share Corbin's note that Carbon OS is discontinued. Carbon OS was a distribution of FreeDOS for non-DOS users. I mentioned it on twitter in 2014.

Tuesday, July 28, 2015

Visual batch tools (simplifying the install process)

I don't think of these tools as the "FreeDOS Install program" per-se. Rather, they are a set of useful batch tools that others might use for other things. It also makes a very nice FreeDOS Install program.

I imagine that the "V" tools will all share a common command line syntax. So options to define the background color, text color, window color, window background, screen title, and window title. Environment variables would also be a nice option.

So with the right options to define background color=blue, title background color=cyan, title text color=black, window background color=red, window text color=white, … title="FreeDOS 1.2", window title="Hi there!" … you might have this:
VECHO "This is a simple message box"
FreeDOS 1.2
Hi there!
This is a simple message box
I'm just making stuff up as I type, but maybe the options could be defined as environment variables like so:
VBACKGR=BLUE
VTITLEBG=CYAN
VTITLE=BLACK
VWINBG=RED
VWIN=WHITE
Or as command line options:
VECHO /VBACKGR:BLUE /VTITLEBG:CYAN /VTITLE:BLACK … "This is a simple message box"
By providing flexibility for both command line options and environment variables, it will make things very easy for someone who wants to use the "VTOOLS" to make their own "visual" batch script.

With text options:
VECHO /TITLE:"FreeDOS 1.2" /WIN:"Hi there!" "This is a simple message box"

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!