LTOOLS - Accessing Your Linux Files from Windows 9x and Windows NT
The LTOOLS under Windows provide a functionality similar to the MTOOLS under Linux: They let you access your files on the “hostile” file system.
At the heart of the LTOOLS is a set of command-line programs, which can be called from DOS or from a DOS-Window in Windows 9x or Windows NT. They provide the same functionality as the well-known LINUX commands ls, cp, rm, chmod, chown and ln. Thus, under DOS/Windows you can do the following:
list Linux files and directories (command: ldir)
copy files from Linux to Windows and vice versa (commands: lread, lwrite)
delete or rename Linux files (commands: ldel, lren)
create symbolic links (command: lln)
create new Linux directories (command: lmkdir)
modify a Linux file's access rights and owner (command: lchange)
change the Linux default directory (command: lcd)
set the Linux default drive (command: ldrive) and
show your hard disk partition setup (command: ldir -part)
As with many UNIX tools, these functions are included in a single executable, which is called with a bundle of command-line parameters. To make life easier, a set of batch files (shell scripts) are provided so that you don't need to remember and type in all these parameters.
Additionally, there is a UNIX/Linux version of the LTOOLS, to be used under Solaris or even Linux, when you want to access a file on another hard disk partition without mounting this partition.
Some may feel that command-line programs are old-fashioned and ask, “Where is the LTOOLS graphical user interface?” Well, no problem: Use LTOOLgui. LTOOLgui, written in Java using JDK 2's Swing library, provides a Windows Explorer-like user interface (Figure 1). In two sub-windows, LTOOLgui shows your DOS/Windows and your Linux directory trees. Navigating can be done with the usual point-and-click actions. Copying files from Windows to Linux or vice versa can be done by copy-and-paste or by drag-and- drop. Clicking the right mouse button will open a dialog to view and modify file attributes like access rights, GID or UID. Double-clicking on a file will start it, if it is a Windows executable, or open it with its associated application. This even works with Linux files if they have a registered Windows application.
By the way, you can also use LTOOLgui as a file manager under Linux. As the LTOOLS command-line programs also come in a Linux version, you may access files on disks without mounting them.
I chose Java for LTOOLgui, because Java is especially suited for low-level hard disk access...only joking! No, of course, this is not possible in Java at all. If you want to access hardware directly, you have to use C++ code and JNI (Java to Native Interface). However, as the JNI only works for 32bit code, under Windows 9x this would mean using 32-bit to 16-bit thunking (see below). As I did not like the idea of combining Sun's Java with Microsoft's MASM code, I took another approach. I simply used LTOOLS' command line program, which gets called from Java via the well-known stdin/stdout- interface. So for the Java side, hardware access means simple stream-based file I/O.
No doubt, any state-of-the-art program must be Internet aware. Well, if you run LREADjav on a remote computer and connect to it via LTOOLgui's connect button, you may access Linux files on this remote server as if they were local. LREADjav is a simple server dæmon, which translates requests, issued by LTOOLgui over TCP/IP, into LTOOLS command line program calls. The output of the command line programs is sent back via TCP/IP to LTOOLgui (see Figure 2). Of course, you can not only view directory listings, but also do everything remotely, that you can do locally, including file upload and download. The remote machine may run UNIX/Linux or Windows. At this point, this is more like a toy than a serious application, because LREADjav can pose security problems. In the default configuration, it can only be used from “localhost”, but it can be configured to allow connections from three different remote clients. As they are identified via their IP address only, there is no password protection or the like. However, if a user has a serious need for that, he can easily implement a login/password scheme...it's all open source!