REXX Tips & Tricks, Version 2.80

Inf-HTML [About][Toc][Index] 0.9b (c) 1995 Peter Childs

LX lite - a compressor for OS/2 executables

Name     LX lite - a compressor for OS/2 executables 
Version  1.1.8, 3/97
Author   Andrew Zabolotny 
         (see EMail Addresses)
Distrib. Freeware 
Type     EXE program 
Price    -
Source   BBS 
         Name: LXLT118.* 

This is a fantastic program to pack OS/2 executables in Linear Executable 
(LX) format. OS/2 uses the LX format for .EXE, .DLL, .PDR, .QPR, .DRV, 
.FON and .SYS files. Virtual Device Drivers (VDDs) for DOS sessions are 
also in LX format. You can even compress the OS/2 kernel (os2krnl)! 
LX compresses the files in the same way as LINK386 does. The decompression 
algorithm is part of the OS/2 WARP program loader. So files compressed 
with LX are "simple" OS/2 executables. There's no additional stub program 
necessary to uncompress the compressed files. 
The only drawback of this tool: 
You cannot execute compressed executables under OS/2 prior to WARP because 
the decompression code was first introduced in WARP. But that's no great 
problem because LxLite can also decompress compressed files again. 
LxLite is one of the most useful tools for OS/2 I've seen so far. 
(see Using REXX if booted from diskette for one use of LxLite) 
Another useful tool contained in this package is UNLOCK.EXE: 
"unLock is a simple utility which allows to 'unlock' application 
executables which are currently in use. Normally when an executable is 
loaded by OS/2 its file is open with a deny-write sharing mode. This is 
done because LX format structure is designed not to swap out unused pages 
in executables each time when they aren't needed anymore, but rather to 
discard them. When a discarded page is needed OS/2 simply reads it again 
from the executable. 
However, there is still a way to replace executables 'on-the-fly' even if 
they are currently running. There is an so-called 
'well-known-undocumented' function (which in fact means that it won't be 
neccesarily supported in future versions of OS/2) which allow to disable 
sharing protection on such files. Before doing that OS/2 reads entire 
executable in swap file, then page swapping is done as with usual memory. 
If you'll 'unlock' many running executables at the same time you can 
notice an increase in swap file size. 
So, this is just an temporary workaround, you have better to reboot after 
doing all neccesary things on former locked files. The command-line format 
of unLock is much like lxLite's, except that it have much less options 

Inf-HTML End Run - Successful