ТаблицейБлоками.

Оптимизация и спасение IBM PC: виртуальный диск

Последняя модификация: 10.08.2014 г

Страница загружена с адреса: http://comp.site3k.ru/ibmpc/chaptr18.html

Моя студия веб-дизайна

Глава 18: Автоматический поиск виртуального диска.

В отношении оперативной памяти применима та же система адресации, что и в отношении дисковой, в результате чего, часть оперативной памяти может использоваться под временное хранение файлов, подобно обычному диску, со свойственной ему файловой структурой и системой каталогов. Поэтому, память отведенную для хранения файлов, называют виртуальным (электронным) диском.

Виртуальный диск используется для ускорения выполнения программ и временного хранения файлов извлекаемых из дискет. Однако, создание виртуального диска и копирование на него программ для ускорения их запуска, процесс довольно продолжительный, ни чуть не уступающий по продолжительности запуску этих же программ с обычных дисков, и применение виртуального диска только лишь для ускорения запуска программ вряд ли имеет смысл. Но при работе с дискетами, виртуальный диск может оказаться необходимым. Он позволяет использовать программы, не вмещающиеся на одной дискете (посредством сборки на нем единой программы из разрозненных частей расположенных на нескольких дискетах или распаковки программы содержащейся на дискете в сжатом виде).

Поскольку виртуальный диск по своим функциям полностью аналогичен жестким дискам, при его образовании, ему назначается синоним, соответствующий очередному жесткому диску (синонимы CDROM и других съемных носителей при этом смещаются на один символ к концу алфавита) и определение буквы вмртуального диска не представляет какой-либо сложности. Тем не менее, во многих случаях удобно использовать ее автоматическое определение.

Подобная автоматизация полезна для дискет могущих применятся на разных компьютерах или на компьютере, в котором количество жестких дисков может быть изменено (при изменении числа дисков на компьютере, переделка однажды составленной и проверенной дискеты с автоматическим определением буквы, не потребуется), а так же для случаев, когда какой-либо из дисков оказался недоступен, а значит и не занял соответствующую ему букву.

Для создания виртуального диска достаточно через Config.sys подключить драйвер RamDrive.sys и указать требуемые параметры создаваемого диска, например:

Devicehigh Ramdrive.sys /E 5120

Остальное управление происходит либо через Autoexec.bat, либо в ручную.

Через Autoexec.bat на него можно скопировать необходимые файлы и установить пути их поиска командой Path. Например:

Copy a:\Файл Буква:
Path Буква:

Где буква – буква, символизирующая созданный виртуальный диск.

Если файлы сжаты, их распаковку так же можно произвести автоматически, указав в этом же файле команду запуска MS-DOS-распаковщика.

Если же требуется, чтобы буква диска определялась автоматически, требуется обнулить переменные Ramd и CDROM и запустить программу FindRamd.exe (имеющую размер 7 килобайт), которая выдаст код возврата соответствующий букве полученной диском (зависящей от количества доступных логических разделов). После чего, по коду возврата устанавливается переменная Ramd и CDROM.

Наиболее удобно все эти процедуры произвести через специальный файл, обычно называемый SetRamd.bat, вызываемый из файла Autoexec.bat. Перед его вызовом в Autoexec.bat устанавливается переменная, содержащая параметры вызова, что позволяет сократить SetRamd.bat в несколько раз. Команды установки переменной имеют вид:

set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C

В таком случае, команда вызова SetRamd.bat выглядит так:

call setramd.bat %LglDrv%

Сам файл при этом имеет следующее содержание:

@echo off
set RAMD=
set CDROM=
a:\findramd
if errorlevel 255 goto no_ramdrive
if not errorlevel 3 goto no_ramdrive
goto do_shift
:loop
if errorlevel %1 goto no_shift
:do_shift
set cdrom=%2
shift
shift
if not %1*==* goto loop
goto no_ramdrive
:no_shift
set ramd=%2
if "%RAMD%"=="C" goto c_drive
goto success
:c_drive
cls
echo Disk C no FAT32!
Pause
goto success
:no_ramdrive
cls
echo No Virtual Disk!
Pause
:success

И выполняет все необходимое для установления переменной RAMD, содержащей букву символизирующую виртуальный диск, а так же, сообщающий о проблемах, если таковые возникнут при создании диска. При этом, сообщение “No Virtual Disk!”, как правило, выдается при невозможности создать виртуальный диск из-за недоступности должного количества оперативной памяти, а сообщение “Disk C no FAT32!”, соответствует недоступности диска С, например, из-за несоответствия операционных систем или из-за повреждения главной загрузочной записи, в том числе, действием вирусов.

После автоматического определения буквы диска, операции с ним можно производить через переменную Ramd и, вышеприведенные команды Autoexec.bat видоизменяются до:

Copy A:\Файл %Ramd%:
Path %Ramd%:

И тому подобное, в результате чего, запланированные операции выполняются именно с виртуальным диском, не зависимо от назначенного ему символа, действия вирусов и разницы операционных систем. Обращение к диску непосредственно через букву, остается в силе, но в автоматически исполняемых файлах не срабатывает, если диск по каким-либо причинам получил не ту букву, которая планировалась.

 

< Глава 17. Глава 18. Глава 19. >

 

Комментарии к странице

 

 

 


На главную страницу сайта