Temporarily Borrow Semi-Essential Disk Space During Install Process.
Original Publication Date: 2002-Jul-12
Included in the Prior Art Database: 2003-Jun-21
Many applications or computer programs during installation, updates, or upgrades of software, require the use of significant amounts of temporary space to perform the function. Applications have to increase the size of a particular file system several times or use essential file systems space to be able to accomplish a task. This often makes it very difficult for the application to complete the task. In addition, over-expansion of a file system can occur, making the file system much larger than the user desires. Once a file system has been expanded, it's size cannot be reduced, so over-expansion of file systems is very undesirable. Another problem occurs when the file system selected by the application cannot be expanded any more, forcing the user to perform some maintenance before the task can be completed. The proposed mechanism simplifies temporary free space allocation for installing or updating applications, making it less likely that the action will fail or require user intervention, since the application will be using easily accessible semi-essential file systems instead of essential file systems. For example: when an application is performing a task mentioned above and it needs temporary space, it will use semi-essential file systems like paging. If it needs more it could use another semi-essential file system like dump, and so on. At the end of the task, it will release this space back to the system or delete any temporary file system created. The application will always have enough space and will not have to keep expanding or checking for free space on the essential file systems, which usually do not contain enough free space to be used. In addition, it is less likely that the user will have to perform system maintenance for the action to complete successfully. This will also prevent the undesired effect of over-expansion of essential file systems. During install, the install process calculates the number of MBs that the installed image will require. Typically, it gets permission from the user to expand the file system space of "/usr". However, since the compressed image is to be placed into /usr, it cannot unpack itself into that directory because it would chew up the precise space needed for the target binaries. Thus, the program must unpack in "public" space such as /tmp. But, sometimes /tmp is itself fairly full, so typically the program must halt or ask the user (in advance) for permission to expand /tmp if the program needs the space. This causes a probem as /tmp is expanded just to handle one install instance, and may never need to be that large again. The solution is that instead of using /tmp space, the program starts "borrowing or stealing" normally unused disk space such as that reserved for paging or dump. And when the install finishes, the paging and dump space is cleared up. Only when all "free" disk space is totally used up, and there is no choice, will /tmp be expanded. However in this method, the size of /tmp will only be minimally enlarged (as compared to the current case). 1