The 2diskxwin embedded X Linux review

I have been following the development of this distro since it first appeared on freshmeat as I find embedded and minimal systems very interesting and I have a fairly dated 486dx33 as my home machine and so size and speed mean alot to me. I have tried many attempts at correspondence with the authors. Trying to obtain information, support, or making suggestions has mostly ended fruitless, but after making some reasonable bug reports and suggestions for enhancements and convincing the developers that i knew what I was doing they finally offered me something i couldn't refuse. Full access to the current CVS tree and some of the developer docs, but to get this I had to write them a nice glowing review........

What is 2diskxwin embedded X Linux

2diskxwin is pretty much what it says on the tin. An X11 system that fits on two floppy disks, Or to put it another way an entire linux system with networking and basic utilities on one disk, and a second disk with X11. The developers say it is part of a hardware development project for next generation Embedded applications in thin client, PDA, entertainment and communications systems. It has been released as a demo/beta testing review platform to help market and speed bug review in the development stage. It is a fairly complete Unix system with most posix features and the following X applications:

a number of other utilities i wont list(there is far to little time and space to do that),

Embedded Linux Setup

Setting up the system is fairly straight forward just find some clean floppy disks with no bad sectors and follow the installation instructions. Inserting the boot disk and rebooting

Running the Embedded system

Once booting is complete you login by typing "root"
you are then dumped to a fairly standard sh prompt, you can do most normal unix tasks using busybox commands and some additional utilities and commands are implemented as multicall to save space.
I should point out that these tools are not the GNU standards so some differences and missing options can be expected.

Once you have explored the command line you will probably want to get onto the good stuff, X is started by executing a script called xwin not startx as is the usual case, the xwin script asks some questions about what graphics mode and poiner device you want to use, then runs startx with the required options. I have suggested that they combine all this into the startx script but, they sent me a rather rude reply so I said no more on the subject. Anyhoo onceyou have entered the correct options to the xwin script the moment of truth comes.... You find out if you graphics card if VESA compliant, you either get the lovely aesthetic GUI that has been provided, or your monitor melts down or blows up.

The system seems to borrow much UI theme from the MS-win9x ilk, with taskbar at the bottom of the screen and similar window manager theme and behaviour, although no popup menus for window management options (developers say that will be available soon). A nice touch is multiple desktops that can be switched using the taskbar and editable mouse button functions. I am told that the window manager is moving toward full dynamic scriptability using event output and control input fifos and allowing the window manager behaviour to be controlled by an external script (a sh script although any language could be used). One major difference to windows is a second deskmanager bar which emulates the CDE and works quite well for showing system tasks and launching apps, it is actually a html script displayed in the browser.

Next thing I looked at was the file manager, xfm this is an old file manager but it is still very good as it is so light weight yet flexible is speeds along at an incredible pace and after using it on this distro I decided to switch to using it as my main file manager on my usual mandrake linux work system. Editing the xfmrc file for new file type associations can be confusing at first but once you workout the entry format it isnt any real chore. All in all a nice file manager and i have been told (from the developer docs) that the binary has been reduced to only 81kbytes (also note that xfm is likely to become deprecated as the web browser filemanagement functions improve)

So now we come to the web browser this is a nice piece of code, the independant binary compiles in at 152kbytes (according to dev docs). It supports frames, ssl, cookies, authentication, tables, plugins, basic javascript(in development it causes fairly frequent crashes) and many other features. It is based on chimera although less than 20% of the code is now derived from chimera and that is gradually being removed function by function. This browser just seems so good I cant believe it is so unknown it is probably more stable than dillo yet smaller, has fewer smaller library dependencies, more features, althoughit maybe slightly slower than dillo (i havent really done any benchmarks thats just my impression). The developer docs state that an IE 'look and feel' is being worked towards with file management and scriptability in progress.

The text editor is another marvel of optimization, the dev docs say it is based on usk and has a binary size of 9kbytes. Its pretty much similar to notepad with one major difference, scriptability. the editor can be extended and scripted using control fifos which give you great flexibility there are two pipes in /tmp/usk_fifo??, cont which receives single letter commands that represent the available menu commands, and p_text which receives text that is to be put into the Xselection buffer using these simple tools and editing the xdefaults for usk many functions can be setup in the user menu or bound to keyboard short cuts. For example you can setup a function to save the edit buffer to a temporary file spell check it copy it back to the edit buffer. This takes some thought to realise it's power and what can be done, but some of you will start getting hooked on editing you appdefaults file to implement new functions, pipeing your code to cb, or adding a short cut to save the file, run make, then execute the new app to test it. This little app rocks...

There are a number of other apps that i wont go into as i havent really used them (vnc,rdesktop,ssh).

All these apps are combined into one multicall binary that includes the Xt and Xaw library components and weights in at about 1Mbytes. I actually found most of these so useful that I decided to put the binary on my mandrake system and it works great. I just hope the CVS access means I can strip out the things I dont need and link it dynamically, I should get wm/fm/browser/editor in less than 200kbytes. Other goals ofthe project are to strip out unused Xlib, Xt ,and Xaw functions and minimize the librarys (dev docs say sizes of 400kbytes, 100kbytes and 190kbytes should be fairly easily obtainable)

And finally

Well if two disks is just too much for you the developers have produced a version that fits on one floppy(if you can format 1722kb disks) this image is slightly different using uclibc and a number of the components have been removed, but its still a usable system and no need to swap disks on bootup.