Как нам обустроить персональный компьютер


Все счастливые обладатели "персоналок" счастливы одинаково: только в момент их получения! Далее начинаются проблемы: как "одеть" родное чадо, где взять необходимые программные продукты, как их правильно установить, да чтобы они (продукты) еще и друг другу не мешали, да чтоб на винчестере осталось еще хоть немного свободного места...
Вряд ли найдется два "одинаково одетых" IBM PC!

Вот и автор этого опуса, обживая последовательно 286,386,486,Pentium компьютеры, пообщавшись с операционными системами MSDOS и Windows-95, приобрел некоторый опыт в этом деле и считает своим долгом сим опытом поделиться.

Начнем с ниже нуля: как лучше поделить винчестер на разделы (Partitions).
Для любителей резать диск на много мелких разделов напомню:

  1. Нынешние программные продукты имеют тенденцию к гигантизму, так что в маленький раздел просто не влезут;
  2. Более 3 разделов Вам не позволит эксплуатировать, например, NICE,использующий виртуальные диски F,G,Z в своих целях.
С другой стороны, не делить большой винчестер вообще - чревато потерей дисковой емкости из-за слишком большого размера т.н. кластера.
Дело в том, что как в MSDOS, так и в Windows-95 кванты распределяемого дискового пространства (кластеры) адресуются 16- разрядным адресом.
Поэтому на одном разделе диска не может быть больше 2**16=65536 кластеров.
При первоначальной подготовке дискового раздела объемом V килобайт размер кластера K определяется по следующему алгоритму:
         K:=2; While V/K > 65530 Do K:=2*K;
А теперь считайте сами:

при V=520 мегабайт у Вас будет 33280 кластеров размером 16кбайт каждый,
при V=500 мегабайт ---"--- 62000 кластеров по 8 кбайт!

Поскольку кластер является минимальной единицей распределяемого дискового пространства, то на каждом файле теряется в среднем половина емкости одного кластера.
Размер кластера в 16 килобайт, что соответствует V <1 Гб, кажется еще приемлемым, а вот 32 килобайта на кластер - это, пожалуй, слишком.

Итак, если уж Вы решили поделить Ваш диск на разделы, выбирайте V чуть меньше приемлемой для Вас степени двойки!

О сосуществовании программных продуктов.

Программным продуктом или подсистемой я называю комплект файлов, распространяющийся как единое целое и имеющий фирменное наименование.
Например: TeX, MicroSoft Fortran 5.00, Borland Pascal-7.
Как правило, установка программного продукта на Ваш компьютер требует:

  1. добавления ссылки на местонахождение головной программы продукта
    в переменную PATH в файле AUTOEXEC.BAT
  2. определения т.н. переменных окружения (например, SET LIB=d:\bc\lib)
    в том же файле AUTOEXEC.BAT
Наверное, Вы давно уже убедились, что "на всех не угодишь", т.е. невозможно иметь в файле AUTOEXEC.BAT заранее заготовленный PATH и все необходимые переменные окружения для всех потребных Вам программных продуктов. Грустно, но это так.
PATH имеет ограниченную длину, 128 символов, и обрезается без предупреждения. (В Windows-95, как показал эксперимент, размер PATH увеличен до 1034 байт).
Разные программные продукты используют иногда одни и те же переменные окружения (переменная LIB - типичный пример) и программы с одинаковыми именами (я потратил немало времени на ловлю link.exe, засевшего в директории DOS и втихую подменившего родной фортранный линкер!)

Приемлемое решение - иметь для каждой подсистемы свой batch-файл, выполняющий функцию ее запускателя. Например, файл FORTRAN.BAT для вызова MicroSoft Fortran 5.00:

      rem Вызов MicroSoft Fortran:  fortran имя_файла 
      set BIN=C:\fortran\bin                            
      set LIB=C:\fortran\lib                           
      set INCLUDE=C:\fortran\include                  
      PATH=%path%;%BIN%                                
      fl /G2 /FPi %1  graphics.lib > meerr.tmp          
 

Такой запускатель временно создает собственное окружение (Environment) для запускаемой подсистемы (в данном случае - Фортрана), а потом восстанавливает первоначальное окружение.

Недостаток этого подхода в том, что информация о месте расположения программных продуктов, составляющих "одежды" Вашего компьютера, распылена по множеству таких batch-файлов. Поскольку я предпочитаю "держать все яйца в одной корзине", я обьединил все такие "запускалки" в один файл START.BAT, первым параметром которого является имя запускаемого продукта:

  
      rem Всеобщий запускатель :  start  имя_программы  ее_параметры       
      @echo off                                                          
      if %1- == fortran-  goto fortran                                     
      if %1- == pascal-   goto pascal                                      
      if %1- == tex-      goto TeX                                         
         ........                                                          
      echo Unknown Subsystem : %1 !!!                                      
      exit                                                                 
      :fortran                                                             
         ...                                                               
        exit                                                               
      :pascal                                                              
         ...                                                               
        exit                                                               
         ........                                                          
    

А что если ...

Поразмыслив еще немного, на чем бы тут можно еще сэкономить, я взял да и сунул все это добро прямо в AUTOEXEC.BAT ! Действительно, ведь именно здесь традиционно описывается лицо Вашего компьютера, опишем здесь же и все его одежды! Вот начало моего AUTOEXEC-a :

       @echo off                                                               
       rem  ***  PATH = the things absolutely necessary for You! ***           
       path=c:\;c:\windows;c:\windows\command;S:\tools;S:\norton;S:\me         
                                                                               
       if not %1_ == _ goto special                                            
       REM   -------------------------------------------------------           
       rem   The usual call without parameters (when computer starts)          
       REM   -------------------------------------------------------           
       mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)           
       mode con codepage select=866                                            
                                                                               
       REM  ***  Client must map drive S: to server manually using Explorer.   
       rem if You're your Server yourself:    subst s:your_own_disk:\          
       REM if you want to keep TeX fonts yourself,  set FontDisk=c:            
                                                                               
       rem ...  add there Your own specific things ...                         
                                                                               
       rem lh keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys - if You dislike KeyRus  
       lh keyrus                                                               
       goto finish                                                             
                                                                               
       rem ----------------------------------------------------------          
       rem              VARIOUS  SUBSYSTEMS :                                  
       rem   C:\autoexec.bat  SubSystem_Name  [SubSystem_Params...]            
       rem   (see  NC.EXT as an example of using these mechanismus.)           
       rem ----------------------------------------------------------          
       rem  1. Norton Commander :        NORTON                                
       rem  2. T e X  :                  TEX COMMAND name                      
       rem  3. PFE-editor :              PFE name.ext                          
       rem  4. MicroSoft Fortran 5.0:    MSFORTRAN  name.for                   
       rem  5. PowerStation Fortran :    PSFORTRAN  name.for                   
       rem  6. NDP Fortran:              NDP COMP   name.for                   
       rem     Run NDP-executable :      NDP RUN    name.exp                   
       rem  7. FORTRAN-->C convertor:    GNU F2C  name.f                       
       rem     GNU C compiler:           GNU GCC  name.c                       
       rem     GNU-executable starter:   GNU GO32 name.out                     
       rem  8. RM Fortran:               RMFORT name  [/lib name +...]         
       rem 11. FoxPlus interpreter:      FOXPLUS  name                         
       rem 12. FoxPlus compiler:         FOXPCOMP name.prg                     
       rem 13. Turbo Pascal 7.0:         PASCAL name.pas                       
       rem 14. Pascal-compiler:          TPC    name.pas                       
       rem 15. DELPHI :                  DELPHI name                           
       rem 16. Quick Basic :             QBASIC name.bas                       
       rem 17. Borland C :               BC IDE or name.c                      
       rem 18. Antiviruses :             ANTIVIR aidstest or drweb             
       rem 19. Moscow Guide :            MOSCOW                                
       rem 20. Dictonaries  :            LINGVO                                
       rem ----------------------------------------------------------          
                                                                               
       :special                                                                
         rem                                                                   
         rem     1.  Norton Commander                                          
         rem     --------------------                                          
         rem  His full stuff (Commander+Utilities) locates in  S:\NORTON       
         if not %1_ == norton_ if not %1_ == NORTON_ goto s2                   
           nc                                                                  
           exit                                                                
         rem                                                                   
         rem     2.  TeX command filename                                      
         rem     ------------------------                                      
         rem It is a LaTeX taken from Moscow University, placed in S:\TeX      
         :s2                                                                   
         if not %1_ == tex_ if not %1_ == TEX_ goto s3                         
           set TeXdir=S:\TeX                                                   
           call %TeXDir%\bat\set!tex!.bat                                      
           if %2_ == SET_ goto finish                                          
           if %2_ == WINDOWS_ goto texwin                                      
           if %2_ == DVIWIN_  goto dviwin                                      
           call %2.bat %3                                                      
           exit                                                                
         :texwin                                                               
           copy %3.tex ~.tex                                                   
           win2dos ~.tex %3.tex                                                
           call latex.bat %3                                                   
           copy ~.tex %3.tex                                                   
           del ~.tex                                                           
         :dviwin                                                               
           path=%path%;%TeXDir%\dviwin                                         
           if     exist "%3.dvi" start dviwin2 -1 %3.dvi                       
           if not exist "%3.dvi" start dviwin2 -1 %3                           
           exit                                                                
                                                                               
         rem                                                                   
         rem     3.  PFE-editor                                                
         rem     --------------                                                
         :s3                                                                   
         if not %1_ == pfe_ if not %1_ == PFE_ goto s4                         
           PATH=S:\editors\pfe;%path%                                          
           pfe32 %2                                                            
           exit                                                                
         rem                                                                   
         rem     4.  MicroSoft Fortran 5.00    (errors --> meerr.tmp)          
         rem     ----------------------------------------------------          
         rem  We keep it as a single directory (S:\fortrans\MSF500)            
         rem  though it is usually divided on 3 parts: BIN,INCLUDE,LIB         
         :s4                                                                   
         if not %1_ == msfortran_ if not %1_ == MSFORTRAN_ goto s5             
           set BIN=S:\fortrans\MSF500                                          
           set LIB=%BIN%                                                       
           set INCLUDE=%LIB%                                                   
           set PATH=%path%;%BIN%                                               
           if %2_ == SET_ goto finish                                          
           set exename=exe.exe                                                 
           if exist "%2.for" set exename=%2.exe                                
           fl /G2 /FPi /Fe%exename% /Tf%2  graphics.lib > meerr.tmp            
           if not errorlevel 1  %exename%                                      
           if errorlevel 1  echo there were errors (see MEERR.TMP) !!!         
           pause                                                               
           exit                                                                
         rem                                                                   
         rem     5. PowerStation Fortran                                       
         rem     -----------------------                                       
         rem    Installed from original MicroSoft CDROM                        
         :s5                                                                   
         if not %1_ == psfortran_ if not %1_ == PSFORTRAN_ goto s6             
           set place=S:\fortrans\msdev\                                        
           set path=%place%bin;%path%                                          
           set include=%place%include                                          
           set lib=%place%lib                                                  
           if %2_ == SET_ goto finish                                          
           msdev %2                                                            
           exit                                                                
         rem  .......                                                          
         rem  Switch through all other SubSystems mentioned above ...          
         rem  .......                                                          
                                                                               
       :finish  

Для полноты картины приведу и свой CONFIG.SYS :

         DEVICE=C:\WINDOWS\HIMEM.SYS /testmem=off                 
         DEVICE=C:\WINDOWS\EMM386.EXE RAM                         
         DOS=HIGH,UMB                                             
         files=60                                                 
         lastdrive=z                                              
         break=on                                                 
         numlock=off                                              
         shell=C:\COMMAND.COM C:\ /e:4096 /p                      
         devicehigh=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)   
         Country=007,866,C:\WINDOWS\COMMAND\country.sys           
     

Предьявленный AUTOEXEC.BAT демонстрирует не только оглавление моей коллекции программных продуктов, но и способ ее организации. Упомянутые в самом начале файла директории TOOLS, NORTON и ME содержат вещи, служившие мне на всем пути от 286 компьютера до Pentium:
     TOOLS - всевозможные архиваторы, перекодировщики, много мелочей, написанных собственноручно. Всего около 2 Мб.
     NORTON - выжимки из Norton Commander и Norton Utilities, все что может понадобиться и ничего лишнего. Всего менее 3 Мб.
     ME - "карманный" (450 кб) MultiEdit-4.00, покрашенный в ненавязчивые цвета. Тем и дорог.

Что здесь еще странного бросается в глаза ? Конечно, диск S:
Я сознательно расположил все программные продукты, представляющие общественный интерес, на виртуальном диске S: Дело в том, что многие подсистемы, например Borland C и Pascal, не просто переписаны с одного компьютера на другой, а прошли этап первоначальной установки, в ходе которой в их "потрохах" запоминается местоположение их разнообразных компонент на винчестере. Грубо говоря, если Вы инсталлировали подсистему SomeWhat в директорию C: \somewhat, а потом переписали ее в директорию D:\somewhat, то на другом диске подсистема работать не будет !

Именно из этих соображений я использую виртуальный диск. С помощью довольно редко используемой (но входящей в штатный комплект MSDOS) команды SUBST S: D:\ я отображаю виртуальный диск S: на свой диск D:\ , где все реально и хранится. Это работает и в Windows-95. Теперь Вы можете переписать с моей машины нужные Вам подсистемы к себе, скажем на диск С:\ , взять мой AUTOEXEC.BAT, вставить туда команду
     SUBST S: C:\ ,
добавить в отмеченное место специфику своей машины - и пользуйтесь на здоровье: вся информация о расположении и настройке подсистем локализована в AUTOEXEC.BAT (а уж его Вы не потеряете !)

Типичным пользователем этой схемы является сам Командир Нортон.
Вот фрагмент моего файла NC.EXT описывающего стандартные действия для разных типов файлов:

     f  : c:\autoexec GNU F2C !.!     - GNU Fortran --> C converter    
     c  : c:\autoexec GNU GCC !.!     - GNU C compiler                 
     out: c:\autoexec GNU GO32  !.!   - Run GNU-executable             
     for: c:\autoexec MSFORTRAN !.!   - MicroSoft Fortran-5.00         
     for: c:\autoexec PSFORTRAN !.!   - fortran-32 for Windows95       
     pas: c:\autoexec PASCAL    !.!   - вызов TURBO Pascal             
     bas: c:\autoexec QBASIC    !.!   - Quick Basic                    
     tex: c:\autoexec TEX TEXSHELL !  - TeX from DOS                   
     tex: c:\autoexec PFE        !.!  - TeX from WINDOWS               
  

Если Вы работаете под Windows-95

В этом случае Вы можете использовать мою коллекцию программных продуктов непосредственно из моего компьютера, не переписывая ее к себе! Возьмите только мой AUTOEXEC.BAT, уберите из него команду SUBST, а виртуальный диск S: организуйте вручную, отобразив его на диск D: моей машины.

  1. запустите Windows Explorer, войдите в меню Tools;
  2. выберите команду Map Network Drive;
  3. в поле "Drive:" наберите S - это Ваш виртуальный диск
  4. в поле "Path:" наберите \\PC4\D - а это сервер для него
  5. поставьте галочку в поле "Reconnect at logon", чтобы в дальнейшем эта операция делалась автоматически при включении Вашей машины.
  6. Если попросят пароль, скажите GUEST - это разрешает Вам читать со всех моих дисков и выполнять программные файлы.

Программный продукт, расположенный на таком удаленном сервере, требует иногда особого обращения. Это связано с тем, что программы иногда модифицируют свои файлы данных. В таких случаях приходится делить программный продукт на 2 части :
a)   неизменяемая часть, расположенная на удаленном сервере;
b)   изменяемая часть, располагающаяся на локальной машине.
Так, в ТеХ-е изменяемой частью является директория, содержащая фонты.
Встроенная в ТеХ подсистема MetaFont умеет "на ходу" создавать новые фонты и дописывать их в эту директорию. Если эта директория находится вместе с программами ТеХ-а на моем сервере, Вам никто не позволит что-либо туда записывать. В этом случае добавьте в свой AUTOEXEC.BAT строку
     SET FontDisk=c:
и все Ваши собственные вновь создаваемые фонты пойдут в C:\Fonts

Кстати, все изменения, вносимые Вами в AUTOEXEC после метки :special вовсе не требуют перезапуска системы, а вступают в силу немедленно.

Если Вы работаете под DOS

Тогда, конечно, прямо с моей машины ничего Вы не попользуете.
Но Вы имеете к ней доступ через FTP:

       ftp pc4.jinr.ru             - или просто pc4, если Вы тоже jinr.ru
       User ID : GUEST             - классический anonymous-доступ
       PassWord: GUEST             - у меня почему-то не получается!

Обычно эта машина доступна всегда. Кроме того, такое же программное обеспечение есть на DCT098. Для любителей инсталлировать программные продукты самостоятельно мы держим в DCT098\\D:\DISTRIB коллекцию популярных дистрибутивов, включая паневропейскую версию Windows-95. В корневом каталоге диска D: Вы найдете упомянутый выше AUTOEXEC.BAT, а также тот самый манускрипт, который Вы сейчас читаете.


20.05.97
А.П.Сапожников