Операционные системы - статьи

         

Установка Corel LINUX


Пожалуй, Corel LINUX - единственный коммерческий вариант Linux (кстати, и UNIX), установка которого проходит действительно безболезненно. Графическая среда Corel LINUX Installer понятна безо всякой документации. Достаточно просто выбрать диск и программное обеспечение, которое вы планируете инсталлировать вместе с операционной системой. Вот уж где действительно работает Plug & Play! За все время установки я так и не узнал, что же у меня находится внутри моего "числодробителя". В то время как, конфигурируя Windows 98, я изучил все прерывания и каналы DMA вместе с портами, чтобы убрать конфликты между звуковой и сетевой платами и какой-то системной дребеденью. Разумеется, если ваш компьютер - нечто из ряда вон выходящее, можно подправить конфигурацию и вручную (при наличии драйверов).

Начало установки тривиально. Если вы находитесь в Windows, вставьте диск, и сработает программа автоматического запуска инсталляции. Более "человеческий" способ заключается в загрузке с дистрибутивного CD-ROM. Ну а если такого рода возможность на вашем компьютере отсутствует, что ж, сделайте, как в старину, загрузочную дискету.

Три различных вида установки доступны пользователю: Basic, Full и Custom. Первые два способа меня не вдохновили по причине простоты. Решено было попробовать Custom. В этом режиме пользователь сам выбирает размер раздела для инсталлируемой Corel LINUX. Имеются варианты: можно использовать все свободное пространство на диске, а можно явно указать размер создаваемого раздела в мегабайтах и точку монтирования файловой системы. Далее вы сами выбираете из древовидного списка ПО, которое хотите установить.

В процессе инсталляции Corel LINUX происходит замена главной записи диска (MBR) на менеджер разделов Corel. После этого при запуске компьютера вы видите симпатичную, хотя и крупноватую картинку с вращающимся диском в нижнем правом углу. Вам предлагаются несколько вариантов загрузки Corel LINUX, среди которых есть выход в видеорежим VGA (очень удобный, если случилась беда с настройками видео). Ну, и само собой, другие ранее установленные операционные системы появятся в списке. Выбрав обычный запуск Linux, вы можете с удовольствием созерцать сообщения о процессе загрузки на графическом фоне. Правда, установленный на моем компьютере хитрый менеджер разделов PTS Boot Wizard быстренько вернул себя на место. По всей видимости, причиной тому стала строка: @\BOOTWIZ\reinstal.com

в файле autoexec.bat ОС Windows 98, которая запускает самовосстановление. После этого запуск Corel LINUX стал похож на типичный старт любой ОС Linux - масса сообщений и куча непонятных кодов.

Еще одна маленькая приятность. Во время установки Corel LINUX Installer автоматически создается раздел подкачки. Это тем более отрадно, поскольку почти все Linux требуют ручного создания такого раздела, пусть даже с применением некоторых утилит.



Установка других операционных систем после Linux


При инсталляции MS-DOS и Windows 95/98 ее стандартный загрузчик независимо от вашего желания записывается в Master Boot Record (MBR), а признак активности в таблице разделов ставится на раздел MS-DOS (Windows 95/98). А стандартный загрузчик MS-DOS и Windows 95/98 умеет только передавать управление на первый сектор активного раздела. Поэтому, если вы вначале установите Linux, а потом будете ставить Windows 95/98 или MS-DOS, то Linux перестанет загружаться. Говорят, что Windows NT и 2000 загрузчик из MBR не трогают (но сам я этот факт не проверял). Восстановить загрузку LILO можно либо путем перезапуска /sbin/lilo (если LILO установлен в MBR), либо сделав активным раздел LILO (если он установлен в первичный раздел).

С проблемами, возникающими при установке после Linux другой ОС, обычно можно справиться, загрузившись в Linux с помощью загрузочной дискеты, откорректировав конфигурационный файл LILO (добавив вызов новой ОС) и запустив /sbin/lilo.



Установка двух ОС Windows на одном компьютере


В прошлом году на презентации Windows 2000 Professional президент компании Microsoft Стив Балмер назвал эту систему "лучшей операционной системой для бизнес-пользователей". В принципе это утверждение можно считать верным. Однако ОС Windows 2000 Professional не полностью совместима с компьютерным оборудованием и программным обеспечением, работающим под управлением Windows 9x.

Я, например, до сих пор ожидаю появления драйверов сканера и факса под Windows 2000 для моего устройства Hewlett-Packard HP OfficeJet 710. Кроме того, используемая мною программа имитации полетов под Windows 2000 не работает. Поэтому мне пока не удается полностью отказаться от Windows 98, и, судя по письмам читателей, не я один нахожусь в подобной ситуации. А это значит, что многих наверняка интересует, как организовать систему с двойной загрузкой ОС и переключаться между Windows 2000 Professional и Windows 98.



Установка и настройка загрузчика LILO


Как уже было сказано в разделе о выборе загрузчика, если у вас была установлена Windows 98 с файловой системой FAT16, то наиболее логичным и доступным выбором является использование программы, которая входит в состав всех дистрибутивов ОС Linux, и называется LILO (LInux LOader)..

Так же, как в случае с Windows NT, приведем пошаговые инструкции того, как в этом случае настроить процесс загрузки.



До начала каких-либо действий по инсталляции Linux изготовьте загрузочную дискету Windows.

С помощью программы Partition Magic освободите часть дискового пространства и создайте на свободном месте раздел типа ext2 (файловая система Linux) и swap-раздел. О том, как это сделать, рассказано выше. Если объем вашего жесткого диска превышает 8,4 Гбайта, особенно внимательно прочитайте разд. 2.3–2.5.

Проведите процедуру инсталляции Linux, следуя рекомендациям, прилагаемым к имеющемуся у вас дистрибутиву. Учтите, что если вы вознамерились использовать загрузчик LILO, вам необходимо при инсталляции системы установить LILO в основную загрузочную запись (Master Boot Record). Изготавливать в процессе установки загрузочную дискету, в принципе, не обязательно, но я очень рекомендую вам это сделать.

Примечание

Загрузчик LILO не обязательно устанавливать в главную загрузочную запись диска, он может располагаться в загрузочной записи первичного активного Linux-раздела или даже логического раздела в расширенном разделе. В таком случае в MBR должно быть нечто, способное его загрузить, например, стандартный загрузчик MS-DOS или Windows. Но необходимости применения такого варианта я не вижу (раз уж вы используете LILO в качестве основного загрузчика), поэтому здесь его рассматривать не будем.

На следующем шаге нужно заставить LILO загружать ОС по выбору. LILO конфигурируется с помощью файла /etc/lilo.conf и команды /etc/lilo. Эта команда устанавливает (или переустанавливает) LILO. Рассмотрим небольшой пример файла конфигурации LILO. Для примера будем считать, что устройство /dev/hda1 является разделом с DOS/Windows, а раздел /dev/hda2 содержит Linux.
В таком случае файл /etc/lilo. conf может иметь примерно такой вид:

boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg.txt root = current image = /boot/vmlinuz-2.2.11-4bc label = linux read-only other = /dev/hda1 table = /dev/hda label = dos

Дадим некоторые пояснения к этому примеру.

Строка boot указывает загрузочное устройство.

Строка compact включает режим сжатия map-файла, содержащего характеристики загрузочных ядер; это ускоряет начальную загрузку.

С помощью команды message можно заставить загрузчик выдавать при загрузке произвольное сообщение.

Начиная со строки image, идут секции конфигурационного файла, соответствующие разным операционным системам, которые должны загружаться по выбору пользователя. В каждой такой секции имеется строка label. В этой строке записывается имя, которое вводится в ответ на приглашение LILO или является командой меню и служит для выбора пользователем загружаемой ОС. Если имя не введено по истечении времени, заданного строкой delay (задается в десятых долях секунды), будет загружена ОС, выбираемая по умолчанию. В данном случае по умолчанию будет загружаться Linux, поскольку соответствующая ей секция стоит первой в файле. Можно указать загружаемую по умолчанию систему с помощью строки вида default=dos (т. е., используя метку из соответствующей строки label).

Строка table= содержит указание на устройство, на котором находится таблица разбиения диска. LILO не передает информацию о разбиении загружаемой операционной системе, если эта переменная не задана. (Некоторые операционные системы имеют другие средства для определения того, из какого раздела они загружены.) Не забывайте, что необходимо выполнить команду /sbin/lilo, если вы изменили ссылку на таблицу разбиения, задаваемую переменной table.

Если вы задали строку (лучше сказать, секцию) other = /dev/hda1 в файле /etc/lilo.conf, то в корневом каталоге диска /dev/hda1 (диска C: в терминологии Microsoft) должен находиться вторичный загрузчик. У меня, например, на одном из компьютеров с многовариантной загрузкой там находится NT Loader (поскольку Windows NT была установлена до Linux), и LILO успешно загружает Windows NT.


Только надо установить в файле boot. ini задержку времени равной нулю, чтобы не получать собственного меню загрузки NT Loader. Впрочем, если вы хотите по каким-то причинам видеть это меню, то значение timeout в файле boot.ini надо задать отличным от нуля (задается в секундах). Это может понадобиться, например, для обеспечения возможности загружать Windows 98 как еще один вариант ОС.

Если вы хотите грузить Windows непосредственно из LILO, то добавьте в /etc/lilo.conf еще одну секцию:

other = /boot/bootsect.dos label = win,

где файл bootsect.dos берется из корневого каталога того диска, на котором стоит NT Loader.

После того, как вы откорректировали файл /etc/lilo.conf, необходимо выполнить команду /etc/lilo, чтобы изменения вступили в силу. Эта команда (которая в руководстве называется map-installer) устанавливает вторичный загрузчик системы, который будет активизирован во время следующей загрузки машины. Прежде, чем запускать /etc/lilo для модификации загрузочных процедур, выполните эту команду с параметром -t. При этом будет выполнена вся процедура инсталляции загрузчика, кроме изменения map-файла, записи модифицированного загрузочного сектора и изменения таблицы разбиения диска, тоесть выполнен тест нового варианта. Если добавить еще опцию -v, вы получите более подробную информацию о том, что будет делать команда /etc/lilo.

Когда /sbin/lilo перезаписывает загрузочный сектор, старое содержимое этого сектора автоматически сохраняется в файле. По умолчанию это файл /boot/boot.NNNN, где NNNN соответствует номеру устройства, например, 0300 — это /dev/hda, 0800 — это /dev/sda и т. д. Если такой файл уже существует, он не перезаписывается. Но можно задать альтернативный файл для сохранения загрузочного сектора.

Файл /boot/boot.NNNN можно использовать для восстановления старого содержимого загрузочного сектора, если более простой метод его восстановления недоступен. Соответствующие команды имеют вид:

[root:~#] dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1

или

[root:~#] dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1



(bs= 446 потому что восстанавливаем только программу-загрузчик, и не трогаем таблицу разбиения диска).

Копию загрузочного сектора лучше сохранить на дискете. В случае, если неприятности произойдут, вы сможете восстановить старую загрузочную запись MBR, выполнив команду (предполагается, что дискета смонтирована в каталог /mnt):

[root:~#] dd if=/mnt/MBR of=/dev/hda bs=446 count=1

Восстановить старый MBR при необходимости можно также командой /sbin/lilo с опцией -u. Только надо иметь в виду, что эта команда отрабатывает корректно при условии, что каталог LILO (а именно, /boot) не изменялся со времени инсталляции.

Стандартный MBR от MS-DOS может быть восстановлен также, если воспользоваться загрузочной дискетой системы DOS, восстановив MBR командой fdisk /mbr. Она изменяет только код программы-загрузчика в MBR, не изменяя таблицу разбиения диска.

После переустановки загрузчика надо перезагрузить компьютер, опробовав разные варианты загрузки.

В заключение подраздела приведем некоторые сведения о том, какие затруднения могут возникать при использовании LILO.

Когда LILO загружается, он выводит на дисплей слово "LILO". При этом вывод каждой буквы обозначает завершение определенного действия или этапа загрузки LILO. Если загрузка сорвется, то по числу выведенных букв можно судить о причине возникновения проблемы.

Ничего не выведено — никакая часть LILO не была загружена. Либо LILO не был установлен, либо раздел, на котором он находится, не является активным.

L [код ошибки] — первичный загрузчик загрузился и стартовал (на него передано управление), но он не сумел загрузить вторичный загрузчик. Двухзначный код ошибки указывает на конкретную причину проблемы (расшифровку кодов надо искать в технической документации на LILO). Обычно это связано с дефектами носителя или неправильно заданной геометрией диска. Если только LILO не остановился на этом этапе, выдавая бесконечную последовательность кодов ошибки, проблема обычно легко решаема.

LI — первичный загрузчик сумел загрузить вторичный загрузчик, но не сумел запустить его на выполнение.Это может быть вызвано ошибкой в задании геометрии диска или тем, файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.

LIL — вторичный загрузчик запустился, но не смог загрузить таблицу дескрипторов из map-файла. Причина обычно состоит в наличии дефектов на диске или неправильно заданной геометрией диска.

LIL? — вторичный загрузчик был загружен по неправильному адресу. Обычно вызвано ошибкой в задании геометрии диска или тем, что файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.

LIL- — таблица дескрипторов разрушена. Обычно вызвано ошибкой в задании геометрии диска или тем, файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.

LILO — все части LILO успешно загружены.


Установка Linux на настольные ПК


Как оказалось, установить Linux на настольный ПК намного легче, чем на портативный. На всех выбранных мною компьютерах имелись сетевые платы 3Com 10/100 XL Ethernet, а поскольку они представляют собой почти что отраслевой стандарт, то, как я полагал, вряд ли могут вызвать сбой. Мое предположение подтвердилось.

Единственная проблема возникла из-за того, что на все шесть компьютеров я установил видеокарты Trident 975 с интерфейсом AGP. Поскольку большинство версий Linux не смогло работать с ними, я отказался от этих плат и вытащил из ящика с запчастями несколько более старых, а также плату ATI Technologies Mach 128. При этом последняя преподала мне ценный урок по работе с Linux: никогда не покупай нового оборудования. Поскольку версии Linux, с которыми я экспериментировал, не поддерживали ATI, она продолжает собирать пыль в ящике запчастей, дожидаясь выхода соответствующего ей клона. По ряду причин я не смог найти подходящих драйверов для Linux на Web-узлах изготовителей указанных плат.

И, наконец, я получил противоречивые результаты, пытаясь создать конфигурации с двойной загрузкой - Linux и Windows 2000 или Windows NT. Linux использует многовариантный загрузчик LILO, который предлагает широкий набор способов загрузки Linux, а также других операционных систем с гибкого или жесткого диска. Тем не менее примерно половина моих попыток организовать двойную загрузку через Linux оказалась неудачной - после перезагрузки Linux не подавала никаких признаков жизни, сколько бы я ни возился с Fdisk. Что касается SuSE Linux, то единственным условием, при котором она "согласилась" работать, было выделение ей всего диска - эта версия не желает делить дисковые ресурсы с другими операционными системами.



Установка Linux на переносные компьютеры


Сначала я попытался установить Red Hat Linux на свой ноутбук Compaq DIGITAL HiNote Ultra 2000, который укомплектован процессором Pentium MMX с частотой 266 МГц, стандартной видеокартой Chips & Technologies, встроенным модемом CreditCard Xircom Ethernet 10/100+Modem 56 (CEM56) и ЖК-дисплеем с разрешением 1024х768. В ходе установки я получил сообщение You have a PS/2 mouse, после чего мне было предложено нажать кнопку ОК. Однако сделать этого я не смог - система зависла. (На момент выхода статьи появилась версия Red Hat Linux 6.1, в которой этой проблемы не возникает.)

Затем я решил установить Red Hat Linux на портативный компьютер Toshiba Satellite 335CDT с аналогичными процессором и видеокартой, а также ЖК-монитором с разрешением 800х600. Поскольку мой компьютер не имел встроенного сетевого адаптера, я установил в него плату 3Com 3C574 Fast EtherLink. Установка системы прошла успешно, но на экране появилось сообщение о неработоспособности графического интерфейса. После перезагрузки выяснилось, что система не распознает сетевой адаптер, в связи с чем мне пришлось явно указать номер прерывания и адрес ввода/вывода. Однако даже после этого драйвер не заработал до тех пор, пока я вручную не установил номер прерывания и адрес ввода/вывода 300. (Хорошо, что это была плата 3Com - сетевые адаптеры Xircom не предусматривают возможность "прошивки" конкретного прерывания и адреса ввода/вывода.) Программа установки на обоих ноутбуках (до этого я устанавливал Red Hat Linux 6.0 на Ultra 2000) выбрала разрешение 640х480 и отказывалась менять его до тех пор, пока я не "обманул" ее, напрямую отредактировав файл конфигурации XF86Config.

OpenLinux также не заработала на Ultra 2000 - наверное, тоже не любит сетевые платы. Вместе с тем, ее отличают выдающиеся способности определения типа видеосистемы и умение выполнять тестирование. Помните, я предсказывал, что будущие версии Linux станут намного лучше идентифицировать видеосистему? OpenLinux можно считать первой из них.
Итак, программа установки распознала видеокарту, выяснила объем памяти на каждом из выбранных компьютеров и очень детально отобразила полученную информацию. Кроме того, она может протестировать каждый возможный видеорежим прямо в ходе установки, что предотвращает появление после загрузки пустого экрана вследствие неверно выбранного разрешения.

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

Несколько недель спустя после моей неудачной попытки установить Red Hat Linux 6.0 на Ultra 2000, компания Red Hat выпустила версию 6.1 этой системы. Ее загрузка на Ultra 2000 и Satellite 335CDT прошла намного успешнее. Тем не менее на Satellite 335CDT она смогла распознать плату сетевого адаптера лишь тогда, когда я либо извлекал, а затем снова вставлял ее, либо вводил команды Red Hat Linux, имитирующие замену адаптера.

В процессе установки с Red Hat Linux я столкнулся с еще одной нелепостью. Так, мне было предложено выбрать один из двух GUI: либо KDE, либо GNOME. Однако вне зависимости от моего выбора ставился все равно GNOME.

Лучше всех установку на Ultra 2000 выполнила Slackware, которой не потребовалось никакой помощи с видеоподсистемой и встроенным сетевым адаптером.

Самым занятным из всего, что мне пришлось изведать во время мучений с ноутбуками, была реакция моих знакомых из круга специалистов по Linux. Каждому, кто интересовался, как продвигается мой проект, я излагал свое твердое убеждение в том, что люди, писавшие программы установки Linux, знали, что Linux - классная операционная система, но не видели необходимости убеждать в этом остальных. Обычно собеседник спрашивал меня, на какой компьютер я ее устанавливал.Когда же я отвечал: "На портативный", слышал в ответ следующее: "Ах, вот в чем дело! Вы пытались установить Linux на ноутбук!" Тем не менее, несмотря на трудности, я понял, что это и в самом деле возможно.


Установка Linux, первые шаги


Алексей Федорчук,

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

Однако роднит их одно - все дистрибутивы пакетные и образованы путем компиляции наборов, включающих ядро, средства загрузки, системные и пользовательские утилиты и прикладное ПО. В то же время, все более активно развиваются дистрибутивы, основанные на сборке из исходных текстов (Source Based Distributions - SB-дистрибутивы, http://distrowatch.com) и предусматривающие установку из скомпилированных пакетов только базовых компонентов системы - все пользовательские приложения собираются непосредственно из авторских исходных кодов.

SB-дистрибутивы обеспечивают большую гибкость установки и обновления, практически неограниченные возможности оптимизации под конкретную машину или задачу. Взамен этого SB-дистрибутивы предъявляют более высокие, нежели при пакетной установке, требования к квалификации пользователя. Конечно, прекрасная документированность SB-дистрибутивов делает процесс их установки доступным не только для Unix-гуру, однако от пользователя требуется понимание ключевых этапов установки: создание дисковых разделов; файловых систем и монтирование.

С процедуры подготовки диска начинало знакомство с ОС не одно поколение грядущих ее пользователей, а устрашающие комментарии к ней были непременным атрибутом описания процесса подготовки к инсталляции. Потом пришло время графических инсталляторов и специализированных утилит для управления разделами, начиная с Disk Druid из Red Hat и заканчивая дисковыми менеджерами Caldera, Mandrake, ASPLinux. Казалось бы, пользователю Linux, особенно начинающему, жить стало лучше и проблема дисковых разделов уже не выглядит столь пугающей. Так почему же возникает необходимость снова обратиться к ней? Во-первых, эпоха, когда Linux можно было без проблем установить на диск в 300-500 Мбайт, канула в Лету - ныне ни один уважающий себя дистрибутив не запросит менее 1-1,5 Гбайт. Иными стали и требования к структуре разделов, мало кого удовлетворит элементарная схема из root- и swap-разделов. Да и файловые системы стали иными - к единственной еще недавно ext2fs добавились разнообразные журналируемые системы и программные RAID-массивы, особенности которых приходится учитывать уже на стадии разбиения диска. Во-вторых, никакие менеджеры дисков не заменят понимания логики создания разделов, которая если и не гарантирует полностью от ошибок, то хотя бы сведет к минимуму их вероятность.



Установка PPP-соединения в Linux


L i n u x P a r k

при поддержке

В. Водолазкий ()

Ох, как же мне надоел навязчивый сервис от Microsoft! Надоели "особенности" операционной системы Windows95, надоели ошибки в Microsoft Word, которые стоили при подготовке диссертации немало бессонных ночей, в общем... плюнул я на красивые форточки и всерьез сел за Linux.

Конечно же, многое поначалу было непривычно, а некоторые вещи поражают меня до сих пор. Возьмем, к примеру, проблему русификации. Есть и шрифты, и раскладки клавиатуры, и кодировка КОИ-8 постепенно пробила себе дорогу даже на экраны пользователей Windows... Но вот, чтобы воспользоваться всем этим, надо читать документацию на английском языке, подготовленную и переданную мировым сообществом гражданином Израиля, которому помогали ребята из Голландии, США, Тайваня, Замбии (или Заира - по e-mail адресу разве поймешь!) и только один наш соотечественник - Сергей Вакуленко оказался причастным к решению этой проблемы. Причем, как выяснилось, разработанные им шрифты и раскладки вошли в официальную версию X11 Release 6 и теперь доступны для всего человечества. Грустно, люди со всего мира о нас заботятся, бесплатно делают действительно нужную и важную работу, а нам наплевать! Знаете ли вы, например, о проекте интернационализации программных средств для UNIX, предусматривающим разработку, среди прочего и полностью русскоязычных версий всех утилит и системных программ. Но руководит русской частью проекта не родной наш Госкомитет по Информатике, а Ульрих Дреппер из западногерманского университета в Карлсруэ. Вот так...

Но к чему такое затянувшееся введение? А вот к чему! Дело в том, что университетские традиции Европы и Штатов предполагают обучение студентов на многопользовательских UNIX-системах, что предполагает качественно иной уровень "массовой" UNIX-культуры - базовых знаний системы, квалифицированных специалистов в пределах досягаемости неофитов, литературы, доступа к Internet и многих других факторов. У нас, по ряду причин, это не так.
И поэтому нередко документация по установке UNIX-программ, особенно связанных с настройкой сетевого подключения оказывается не слишком понятной, или, что еще хуже, применимой. Одной из таких проблем является подключение Linux-машины к сети Internet. Поэтому давайте попробуем сделать эту операцию шаг за шагом.

Прежде всего определимся с типом соединения. Отечественные провайдеры, в от- личие от большинства администраторов многопользовательских систем на Западе отдают предпочтение не SLIP-соединению, а более современному протоколу PPP, что между прочим, опровергает расхожий тезис об отсталости российских Internet-технологий. Основные преимущества PPP по сравнению со SLIP состоят в следующем:

назначение IP-адресов в PPP реализуется внутри PPP- соединения между компьютерами провайдера и клиента. Это значительно упрощает процесс конфигурирования при использовании динамических IP-адресов; Коррекция ошибок, возникающих при передаче данных осуществляется не между владельцем информационных ресурсов и потребителем, как в SLIP, а между провайдером и клиентом, что примерно на 15-20% повышает информационную скорость передачи данных.

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

Прежде чем приступить к непосредственной установке необходимо собрать некото- рый объем исходных данных. Вот что нам потребуется:

Что нам нужно: Значения в примере: Ваши данные:
Имя пользователя, используемое в электронной почте myname 
Входной идентификатор для регистрации в системе ppmyname 
Регистрационный пароль begemot 
IP-адрес пользователя 194.87.171.101 
IP-адрес сервера DNS 194.87.171.65 
Домен пользователя rinet.ru 
Особенность подключения Linux-машины от DOS состоит прежде всего в том, что ваш компьютер, подключенный с помощью PPP-соединения превращается в полноправный узел сети Internet, в котором вы можете выступать как клиентом, так и сервером.


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

за счет локальной базы данных, помещаемой в файле /etc/hosts; за счет использования специальных серверов доменных имен (Domain Name System - DNS)

за счет базы данных на специальном сервере NIS (Network Information Service).

Нам потребуется создать простейший инфантильный сервер, который при любом запросе обращается к "авторитету", которым в нашем случае является сервер DNS вашего провайдера. При желании вы можете впоследствии нарастить мощность вашего DNS-сервера, чтобы снизить накладные расходы на запрос IP-адресов при длительной работе с одними и теми же узлами сети. Но об этом в следующий раз. А сейчас предположим, что в вашей сети всего одна машина - myname.

Кстати, а как установить имя машины? Все проблемы решает строка типа: /bin/hostname myname.rinet.ru,

которая помещается в один из инициализационных файлов

Что касается самого выбора имени, то надо было договариваться с провайдером раньше - при регистрации. А теперь ваш IP-адрес будет ассоциироваться у всего мира с машиной mynet.rinet.com. Ура, мы становимся сервером Internet и можем сами командовать электронной почтой в пределах машины! Так чтобы послать вам письмо, ваш корреспондент должен теперь использовать что-нибудь типа root@myname.rinet.ru. Согласитесь, что это уже круто!

Впрочем надувать щеки пока рано. Это ведь только перспектива, а пока нам предстоит немало потрудиться. Мы используем комбинированный подход: создадим крохотную локальную базу данных хостов и подключим внешний DNS-сервер. Прежде всего необходимо установить значение нескольких конфигурационных файлов. Начнем с файла /etc/host.conf. Вот его содержимое с учетом сделанных ранее допущений: order hosts, bind multi on

Первая строка указывает на способ организации поиска при поиске адресов узлов сети. Ключ hosts говорит о необходимости просматривать прежде всего локальную базу данных, размещаемую обычно в файле /etc/hosts, а второй -- bind требует связаться для этого с внешним сервером DNS, который, между прочим, может быть запущен физически и на этой же физической машине.


Вторая строка файла объявляет о поддержке этим сервером "многоженства", то есть использовании сразу нескольких IP-адресов. Хотя на работу служб DNS этот параметр влияния не оказывает, не жадничайте - поставьте и забудьте.

Зачем принята такая структура? Исключительно для удобства настройки системы! Так, если вы установили содержимое /etc/host.conf в точности, как это написано в примере, то named вначале будет просматривать файл /etc/hosts и лишь затем обращаться к внешним источникам информации, а если вы введете строку вида: order bind, hosts

то наоборот - вначале будет сделан запрос к удаленному серверу, и только в том случае, если вы обращаетесь к локальным адресам будет использована внутренняя база данных. Впрочем, как показала практика, первый вариант в большинстве случаев является оптимальным.

Поэтому перейдет к обсуждению содержимого файла /etc/hosts. Вот что подойдет вам в подавляющем большинстве случаев: 127.0.0.1 localhost 194.87.171.101 myname.rinet.ru myname

Нам необходимо только две записи - локальный хост, используемый для работы ряда программ в пределах машины и IP-адрес вашей машины, который установлен вашим провайдером. Для упрощения доступа определяется также синоним - просто имя myname.

Но и это еще не все! Нам необходимо указать системе, какими же серверами DNS необходимо пользоваться для определения IP-адресов. Эта информация хранится в файле /etc/resolv.conf: domain rinet.ru nameserver 194.87.171.65

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

Но что представляет из себя процесс подключения? Реально он состоит из нескольких этапов:

соединение с компьютером провайдера по коммутируемой линии связи; регистрация пользователя в удаленной системе; инициализация PPP-соединения.



В Windows- среде решение этих трех задач осуществляется какой-либо программой-монстром, в которой разработчики пытаются упаковать все функции сразу. Но если этот подход применим для неподготовленных пользователей, не желающих эффективно использовать возможности аппаратных средств, то в UNIX мощь системы достигается за счет использования конвейера небольших, но тщательно отлаженных программ, каждая из которых решает какую-либо отдельную задачу. В случае с PPP этот функциональный набор состоит из следующих частей: /usr/sbin/ppp-on /usr/sbin/ppp-off /etc/ppp-on-dialer /etc/options

и, конечно же, собственно демон /sbin/pppd. Но демон живет внутренней жизнью и запускается при установлении соединения автоматически. А чтобы это соединение было установлено, нам придется разобраться с перечисленными выше файлами. Несмотря на их "огромное количество", работы совсем немного. Во-первых, с ppp-off вам делать ничего не придется - задача этого файла состоит в том, чтобы убить демон pppd после того, как сеанс работы с сетью завершен. А остальные мы рассмотрим по порядку.

Начнем с программы, которую обычно используют для установки соединения - ppp-on. Несмотря на то, что эта программа помещается при установке системы в каталог /sbin это обычный сценарный файл, в который вы, кстати, должны внести ваши данные: #!/bin/sh # # ppp-on # # Это основные параметры, которые вы должны настроить TELEPHONE=9567800 # По этому номеру будем звонить ACCOUNT=ppmyname # Регистрационное имя PASSWORD=begemot # Пароль LOCAL_IP=194.87.171.101 # А если динамический, то 0.0.0.0 REMOTE_IP=0.0.0.0 # IP-адрес с той стороны. Обычно : 0.0.0.0 NETMASK=255.255.255.0 # Маска подсети # # Эти переменные нужны для работы 'ppp-on-dialer'. export TELEPHONE ACCOUNT PASSWORD # # Теперь укажем полное имя программы набора номера # DIALER_SCRIPT=/etc/ppp/ppp-on-dialer # # Наиболее типичный запуск демона после соединения с помощью # ppp-on-dialer # exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS2 38400 \ asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT



Ну хорошо, в конце концов ppp-on вызовет программу ppp-on-dialer, а что представляет собой она? Это тоже небольшой сценарий, который приведен ниже: #!/bin/sh # # /etc/ppp-on-dialer # Выполняет всю черную работу по установке соединения # exec chat -v \ TIMEOUT 3 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' \rAT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 30 \ OK ATDP$TELEPHONE \ CONNECT '' \ name:--name: $ACCOUNT \ assword: $PASSWORD

Фактически, это последовательность сообщений, получаемых программой от модема и ее реакции. Нет ничего удивительного, что этот процесс, по большому счету, вполне стандартен для миллионов компьютеров во всем мире. Но, как говорится в одной рекламе:

"Вашему ребенку подойдет любой шампунь...

Но не моему малышу!"

Попросту говоря, вам потребуется указать модему, что вы пользуетесь не тональным набором номера (ATD) , а импульсным (ATDP), который принят у нас. На этом изменения в этом файле можно считать законченными.

Впрочем, это еще не все... Осталось установить еще одну строчку в файле /etc/ppp/options, а именно - указать имя домена (в нашем случае - rinet.ru). lock domain rinet.ru

Все! Вопреки многочисленным сказкам о неподъемности UNIX для конечного пользователя мы установили клиентскую часть ppp-соединения, затратив на это, максимум полчаса. Теперь нам потребуется только убедиться в работоспособности нашего соединения.

Прежде всего, проверим, как работает TCP/IP. Для этого нам достаточно использовать команду PING. Вначале потренируемся "на кошечках" и протестируем работу TCP/IP внутри вашего компьютера без выхода в Internet.

Итак, на моей домашней 486DX4/100 получается следующее: ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=1.0 ms 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.8 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.8 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.8 ms --- localhost ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.8/0.8/1.0 ms



Теперь смело в бой! Соединяемся с сервером (ppp-on соединится с провайдером, запустит демон pppd и вернет вам управление - запускать его в фоновом режиме не нужно), а после этого можно проверить доступность вашего провайдера с помощью команды типа ping www.rinet.ru. Если все в порядке, то вы получите времена задержки до 200-300 миллисекунд, в зависимости от пропускной способности вашего модема. Но это только небольшой, хотя и важный участок сети - между вами и провайдером. А как работает линия дальше?

Можно для проверки вновь воспользоваться ping, но на мой взгляд это слишком однообразное и нудное занятие, которое не плохо бы слегка оживить. А для оживления мы используем программу traceroute, которая возвращает список узлов, через который проходит ваш пакет при запросе типа ping. Для придания романтизма рутинной проверке работспособности PPP-соединения мы пойдем "в Пентагон", а вернее в сетевой центр NIC.DDN.MIL, который является одним из старейших и надежных сетевых информационных компьютеров. Вот что я получил для своего соединения (безымянный модем 14400): traceroute nic.ddn.mil 1 cs2511-1.rinet.ru (194.87.171.72) 263.971 ms 278.509 ms 259.626 ms 2 as51.rinet.ru (194.87.171.71) 229.535 ms 1829.28 ms 189.497 ms 3 hq-1-L0.Demos.net (194.87.15.1) 199.546 ms 279.114 ms 260.114 ms 4 m9-1-S5-1-2048K.Demos.net (194.87.15.130) 209.016 ms 299.288 ms 229.57 ms 5 mix-serial3-3.Boston.mci.net (204.189.128.157) 389.54 ms 509.237 ms 469.622 ms 6 core-fddi-0.Boston.mci.net (204.70.2.33) 399.489 ms 499.211 ms 479.66 ms 7 core3-hssi-2.WestOrange.mci.net (204.70.1.1) 459.415 ms 499.229 ms 428.81 ms 8 core3-hssi-2.WestOrange.mci.net (204.70.1.1) 439.498 ms 439.218 ms 469.64 ms 9 sprint-nap.WestOrange.mci.net (204.70.1.210) 509.465 ms 389.307 ms 499.47 ms 10 sprint-nap.disa.mil (192.157.69.45) 479.508 ms 489.183 ms 419.584 ms 11 137.209.200.202 (137.209.200.202) 589.512 ms 409.272 ms 430.3 ms 12 RESTON-HUB.NIPR.MIL (137.209.60.1) 568.761 ms * 540.131 ms 13 198.26.127.26 (198.26.127.26) 489.416 ms 439.21 ms 599.602 ms 14 nic.ddn.mil (192.112.36.5) 539.497 ms 499.047 ms 489.617 ms



Во-первых, мы проверили доступность и работу сервера DNS (мы ведь обратились к серверу NIC по имени, а не по IP-адресу), а во-вторых убедились, что пакеты бегают как положено по всему Internet. Теперь вы без проблем можете пользоваться ftp, telnet, gopher, archie, www и прочими приятными программами.

Не могу удержаться, чтобы лишний раз не пнуть DOS, Windows и проч. Все необходимые клиенты для всех служб Internet входят в стандартную поставку Linux. Кстати, Netscape выпустила версии своего Навигатора для Linux (как 2.0, так и 3.01), и работают эти программы стабильнее и быстрее, чем в Windows.

Насчет "быстрее " можно и поконкретнее. Я пытался "пропинговать> nic.ddn.mil и из под Windows 95. На той же машине... И получил среднее время доступа порядка 760 миллисекунд. Факты говорят сами за себя...

Но я знаю, знаю, что поклонники "форточек> уже заготовили смертельный удар! И состоит он в простом и каверзном одновременно вопросе: А что делать, если телефон провайдера занят? Неужели потребуется еще и еще раз вручную вводить ppp-on?

Вы что же, рассчитываете на ответ настоящего аскета - мол нет в этом никакой проблемы, и руки у пользователя не отвалятся? Не дождетесь, в UNIX-е ведь работают такие же люди как и везде, и тоже не любят дурной работы. А поэтому позвольте предложить вам небольшой сценарий, который организует дозвон до провайдера в автоматическом режиме. Вот он: #!/bin/sh # # Установка ppp-соединения с автоматическим дозвоном до провайдера # # Написано на основе заметочки в Linux Gazette No.13 (msalama@usa.net) # # # vvv@rinet.ru В.В.Водолазкий, Москва, 1997 # # Вызов программы: isp [NNN] # где NNN - время дозвона в минутах (мне очень понравилось это в # программе Trumpet Winsock # # По умолчанию дозваниваемся в течение 30 минут # wd=1 # счетчик попыток stopflag=1 # Признак окончания работы сценария SLEEPTIME=45 # Время засыпания между попытками echo echo "Устанавливаю ppp-соединение " echo # # if [ "$1" = "" ]; then # Установка предельного времени дозвона repeattime=30 # Если не указали специально, то будем ждать 30 минут else repeattime=$1 fi # А не запущен ли pppd раньше. # Этой проверкой мы блокируем повторную инициализацию канала...


foo=$(ps -ax) # Посмотрим, какие процессы крутятся в системе bar=$(echo $foo | grep "/usr/sbin/pppd") # Есть ли родимый pppd? if [ $bar ]; then # Есть, поэтому заканчиваем работу... stopflag=0 echo echo " pppd уже функционирует!" echo exit 0 fi echo "Время на дозвон к провайдеру: $repeattime" while [ $stopflag ]; do # Основной цикл дозвона echo "Попытка соединения: $wd" ppp-on # Просто вызываем программу установки соединения sleep $SLEEPTIME foo=$(ifconfig); # смотрим, не образовался ли канал ppp0 echo $foo bar=$(echo $foo | grep "ppp0" ) if [ "$bar" = 1 ]; then # Да, все в порядке echo "**********************" echo "*** Соединение с провайдером установлено! ****" echo "**********************" exit 0 else # Не вышло... let wd=$wd+1 # Корректируем счетчик попыток if [ $wd -gt $repeattime ]; then stopflag=0 echo echo "Установить соединение не удалось..." echo exit 1 fi fi done # Завершаем работу сценария

На этом можно сделать паузу. Паузу, потому что за кадром остались такие немаловажные вопросы, как установка и настройка Linux-машины в качестве узла Internet, обеспечивающего доступ пользователей Сети к его ресурсам. Но об этом в следующий раз.

За подробностями отправляю читателя к книге П.Храмцова "Лабиринт Internet", выпущенной в 1996 году издательством "ЭлектроИнформ". Обычно это файл /etc/rc.d/rc.local в котором хранятся команды настройки для данной машины. Которая обычно носит гордое имя "дайлер" Естественно, я полагаю, что ваше ядро поддерживает PPP, а при установке системы с дистрибутива вы не забыли попросить ее установить pppd - все остальные файлы будут установлены вместе с демоном. Одну минутку... Эту команду, вообще говоря, имеет право использовать только root!


Установка правил преобразования формата года


При запуске утилиты Regional Options из окна Control Panel открывается диалоговое окно с множеством вкладок. Вкладка Date, показанная на Экране 4, позволяет выбрать порядок обработки года, введенного в двухсимвольном формате. По умолчанию предполагается, что такие значения попадают в диапазон с 1930 по 2029 год. Следовательно, дата 6-6-44 будет интерпретироваться как 6-6-1944, а 7-7-17 - как 7-7-2017. Однако такой порядок преобразования может не соответствовать принятым на предприятии стандартам, либо не совпадать с порядком преобразования, используемым каким-либо приложением. Например, SQL Server по умолчанию предполагает, что двухсимвольные значения следует интерпретировать как годы с 1950 по 2049, хотя администратор базы данных вправе это соглашение изменить. Рекомендуется устанавливать порядок преобразования формата года в соответствии с принятыми на предприятии стандартами.

экран 4. Установка порядка обработки даты.



Утилита "Проверка реестра" и ее настройки


Основные параметры Выполняемое действие Значения настроек

Backup= Ежедневно запускает "Проверку реестра" при первом запуске системы 1: Enabled ("подключено" - значение, устанавливаемое по умолчанию); 0: Disabled ("отключено")
Optimize= Удаляет все лишнее из реестровых файлов system.dat и user.dat при каждом запуске "Проверки реестра" 1: Enabled (по умолчанию); 0: Disabled
MaxBackupCopies= Устанавливает количество последовательно создаваемых резервных копий 5 (резервируется пять копий - значение, устанавливаемое по умолчанию); максимальное число копий - 99
BackupDirectory= Устанавливает, в каком каталоге будут храниться CAB-файлы По умолчанию задается каталог c:\windows\setup
Files= Добавляет файлы к резервному CAB-файлу Имена файлов с полным указанием их местонахождения, разделенные запятыми (например, c:\autoxec.bat, c:\config.sys)

Чтобы установить количество сохраняемых резервных копий и добавить файлы в автоматически создаваемый утилитой "Проверка реестра" резервный файл, используйте scanreg.ini

Утилита "Проверка реестра" позволяет отчасти избежать ловушки, создавая множество резервных копий. При запуске Windows 98 она создает копии файлов Реестра в отдельном файле и сохраняет их в каталоге Windows/Sysbckup. Замечание: если в течение нескольких дней вы не перезапускали ПК, то инициируйте автоматическое резервирование файлов, для чего нажмите кнопку "Пуск", выберите пункт "Выполнить" и введите scanreg в командную строку.

Резервные файлы сжимаются и сохраняются с расширением .cab под именем rbxxx.cab, где xxx - номер резервной копии (001, 002 и т. д.). Эти номера не соответствуют датам резервирования; чтобы найти последнюю копию, выясните дату записи файла с помощью Проводника (или средств работы с файлами, например Windows Commander).

По умолчанию утилита сохраняет только пять резервных копий Реестра, в дальнейшем каждая новая замещает самую старую. Можно настроить утилиту таким образом, что она будет сохранять до 99 резервных копий.
Для этого щелкните на кнопке "Пуск", выберите пункт "Выполнить" и в командную строку введите scanreg.ini. Указанный файл откроется в Блокноте. Найдите строку MaxBackupCopies=x, отредактируйте ее, сохраните и закройте файл. Здесь же находятся и другие настройки (см. врезку "Утилита "Проверка реестра" и ее настройки").

Однако не всегда больше означает лучше. Учтите, что на каждые пять сжатых реестровых CAB-файлов придется пожертвовать от 2 до 5 Мбайт дискового пространства. Поэтому лучше, наверное, сохранить принятое по умолчанию число резервных файлов - пять: их вполне достаточно, чтобы предотвратить большинство чрезвычайных происшествий с Реестром. Конечно, чтобы их обнаружить, иногда требуется и более пяти дней (или более пяти резервных копий). Поэтому попробуйте сделать следующее: дополните создание резервных копий с помощью утилиты "Проверка реестра" выборочным копированием файлов Реестра до инсталляции любого нового оборудования или программы и после. Причины, по которым требуется предынсталляционный резервный файл, очевидны, но столь же важна и постинсталляционная резервная копия Реестра. Если проблемы в работе появляются через несколько недель после установки аппаратного и программного обеспечения и если они возникли не из-за него, а, скажем, из-за дефектов жесткого диска или случайного конфликта в ПО, то постинсталяционный резервный файл поможет избежать повторной инсталляции.


Утилиты


Здесь под утилитами подразумеваются не только полезные программы сторонних производителей, но и полезные встроенные средства системы, как, например, окно консоли Console, без которой любая UNIX немыслима.



Утилиты управления производительностью


В состав Microsoft Windows NT Workstation 4.0 Resource Kit входят несколько утилит для настройки производительности. В каталоге Perftool можно найти следующие файлы.

\cntrtool\counters.hlp. В этом файле подсказки перечислены и описаны стандартные счетчики Performance Monitor.

\logtools\typeperf.exe. Это утилита командной строки, аналогичная Performance Monitor, которая выводит на экран значения параметров, разделенные запятыми, как показано на Экране А. Typeperf отслеживает параметры, соответствующие объектам и счетчикам Performance Monitor, и возвращает их текущие значения. На Экране А выведены значения, полученные при мониторинге Memory: Committed Bytes и Microsoft Internet Explorer Working Set с интервалом в 1 секунду. Задавая путь в формате UNC перед объектом, за которым проводится наблюдение (например, "\\machine\memory\committed bytes"), можно следить за производительностью удаленных машин.

ЭКРАН A. Результаты работы утилиты \logtools\typeperf.exe.

\meastool\empty.exe. Это утилита удаляет набор счетчиков Working Set работающего приложения. Используется для освобождения большего количества физической памяти непосредственно приложению.

\meastool\ntimer.exe. Данная утилита показывает время работы конкретного приложения, включая время работы в привилегированном и пользовательском режимах (в процентах).

\meastool\pview.exe. Данная утилита выводит детальную информацию о памяти, выделенной процессу системой. Кроме этого она помогает узнать маркер безопасности, который система назначила данному процессу и его потокам.

\meastool\top.exe. Утилита командной строки, которая в непрерывном режиме выводит основные процессы, занимающие процессор.

\meastool\wperf.exe. Графическая утилита, показывающая значения большого числа параметров, характеризующих использование памяти и процессора. Напоминает утилиту Perfmeter в UNIX.



Утилиты Windows NT Resource Kit для управления производительностью


Помимо My Leaky App и CPU Stress, Resource Kit содержит ряд полезных утилит управления производительностью компьютеров, работающих под Windows NT. Большая часть их размещена в папке Perftool, а список некоторых из них приведен во врезке "Утилиты управления производительностью". Секрет успеха при управлении производительностью Windows NT Workstation - отличное знание своих приложений и порядка использования ими ресурсов операционной системы.

После освоения работы со счетчиками Performance Monitor я рекомендую обратить внимание на утилиту Response Probe из Resource Kit, которая дает возможность создавать скоростные приложения, заранее оценивая их характеристики. С ее помощью можно генерировать искусственные нагрузки, позволяющие моделировать уровень загруженности системы. Вместе с тем, оптимизация производительности при работе с одним приложением - не самая трудная задача. Самое интересное начинается тогда, когда в работу включаются одновременно 20 приложений и целый набор служб и утилит.



Узлы и каталоги


Во времена юности Unix, когда автор Linux еще не ходил в школу, работа с файлами в этой ОС была организована весьма просто: все файлы на диске нумеровались и для каждого создавалась специальная запись - узел (inode; к сожалению, устоявшегося русского перевода этого термина пока нет), где содержалась служебная информация о файле. Имя в состав этой информации не включалось, а связывалось с узлом с помощью ссылки (link). Ссылки оформлялись как пары вида "имя файла - номер узла" и хранились в каталогах. Каталог можно было читать, как обычный файл, однако для его модификации уже тогда требовалось использовать специальные команды.

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



В NT появилась возможность управления предприятием


Хотя в довольно короткой статье был охвачен целый ряд аспектов, функциональные возможности WMI на самом деле гораздо шире. Гибкость WMI и универсальность его применения в Windows 2000 делают этот механизм мощной технологией программного обеспечения среднего уровня, которой с успехом могут пользоваться поставщики инструментальных средств для управления предприятием.

Марк Русинович

доктор философии в области вычислительной техники Университета Карнеги-Меллон и один из соавторов многих популярных утилит для Windows NT, включая NTFSDOS, Filemon, Regmon и Recover. С ним можно связаться по электронной почте по адресу: , или через Web-узел .

Таблица 1. Спецификации провайдера.

Провайдер Описание

Класс Может вызывать, изменять, удалять, просматривать класс, специфичный для провайдера. Также поддерживает выполнение запросов.
Экземпляр Может вызывать, изменять, удалять, просматривать экземпляры системы и классы, специфичные для провайдера. Также поддерживает выполнение запросов.
Свойство Может вызывать и изменять значения индивидуальных свойств.
Метод Вызывает методы, специфичные для класса провайдера.
Событие Формирует уведомления о событии.
Потребитель события Ставит в соответствие физического потребителя событий логическому для передачи уведомлений о событиях.



Варианты загрузки


Итак, на мой взгляд, выбор варианта загрузки производится следующим образом:

Если у вас установлена Windows NT или Windows 2000, то используйте NT Loader. Если у вас стоит Windows 95 или Windows 98 на FAT16, и вы не хотите ставить программу-загрузчик из другой ОС или от независимого разработчика, то можете либо использовать LILO, либо сначала запускать ДОС, а затем загружать Linux с помощью loadlin.exe (или другой аналогичной программы, их существует несколько, но другие мы рассматривать не будем). Если у вас установлена Windows 95 OSR2 или Windows 98 на FAT32, и вы не хотите ставить программу-загрузчик из другой ОС или от независимого разработчика, то вы должны будете использовать loadlin.exe. Многие HOWTO утверждают, что не нужно использовать LILO, если активный раздел у вас форматирован в системе FAT32, хотя причины этого мне неизвестны. Но моя собственная попытка загружать Linux через NT Loader, установленный в FAT32-разделе, окончилась неудачей. Так что мне тоже пришлось в этом случае воспользоваться программой loadlin.exe, которая с успехом справилась с задачей, и при этом вообще произвела на меня самое благоприятное впечатление, так что я рекомендую вам применять ее для загрузки Linux.

В следующих разделах я расскажу о том, как установить Linux, используя все три варианта загрузки: через загрузчик NT Loader (см. разд. 2.6), загрузчик LILO (см. разд. 2.7) и загрузчик loadlin.exe (см. разд. 2.8). Но до установки загрузчика надо подготовить разделы на диске (или, по крайней мере, продумать, как их организовать).



Как бы вы ни относились


Скотт Спэнбауэр, , #06/2000



Как бы вы ни относились к Microsoft, трудно отрицать, что Windows 2000 Professional - это на сегодня самая стабильная и мощная версия Windows. Если вы были бы рады избавиться от изъянов и ограничений Windows 95 или 98, но не собираетесь в ближайшее время вступать в ряды пользователей Linux, то вам, вероятно, нужно установить на свой рабочий ПК Windows 2000.

Но не спешите. Разумеется, Windows 2000 значительно отличается в лучшую сторону от Windows NT 4.0 с точки зрения аппаратной и программной совместимости, но она не может сравниться с Windows 98 по простоте. Те, кто поторопится с модернизацией, возможно, будут проклинать все на свете, оставшись без необходимых программ, устройств или данных. Секрет успеха заключается в предварительной домашней подготовке - исследовании совместимости машины. И обязательно оставьте себе возможность вернуться к Windows 9x или NT на случай, если медовый месяц с Windows 2000 окажется кислым, как незрелое яблоко.

Чтобы помочь вам избежать беды, мы протестировали последние бета-версии (Release Candidate 2 и 3) Windows 2000, а под конец процесса получили из Microsoft также окончательную версию. Всего в тестировании было задействовано 24 машины (от Pentium-133 до Pentium III-550). Кроме того, мы проверили на совместимость с Windows 2000 29 периферийных устройств и 16 прикладных программ. Система устанавливалась на компьютеры с Windows 95, Windows 98, Windows 98 SE и Windows NT, причем как поверх предыдущей версии Windows, так и в дополнение к ней.

Увы, мы выяснили только то, что в зависимости от состава аппаратного и программного обеспечения компьютера переход к Windows 2000 может оказаться и легким, как дуновение ветерка, и кошмарно тяжелым. Чтобы модернизация прошла для вас максимально безболезненно, прочтите наши рекомендации по ее проведению, прежде чем покупать пакет.


Виртуальные машины и экзоядра


Классические виртуальные машины [24] представляют собой мощное средство для одновременного выполнения нескольких операционных систем. Экзоядра [10] похожи на виртуальные машины, но в них ресурсы скорее разделяются, а не реплицируются, что приводит к большей эффективности. Однако ни один из этих подходов не решает проблему, поставленную в разд. 1.3: как предотвратить отказы операционных систем по вине драйверов устройств, содержащих ошибки?



Вклад этой статьи


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

Наш подход состоял в разработке надежной мультисерверной операционной системы поверх крошечного ядра, не содержащего какого-либо внешнего, ненадежного кода. Для обеспечения должной изоляции сбоев каждый сервер и драйвер выполняется в пользовательском режиме в рамках отдельного процесса. Кроме того, мы добавили механизмы для восстановления после возникновения распространенных сбоев. Мы подробно описываем средства поддержки надежности и объясняем, почему они отсутствуют в традиционных монолитных операционных системах. Мы также обсуждаем полученные показатели эффективности системы и показываем, что средства поддержки надежности замедляют систему на 5-10%, но делают ее устойчивой к наличию неверных указателей, бесконечных циклов и других ошибок, которые привели бы к аварийному отказу или зависанию традиционных операционных систем.

Хотя ни один из отдельных аспектов нашего подхода (ядра небольшого размера, драйверы устройств, выполняемые в пользовательском режиме, или мультисерверные системы) не является новым, никто раньше не собирал вместе все эти части для построения небольшой, гибкой, модульной UNIX-подобной системы, являющейся гораздо более отказоустойчивой, чем обычные системы семейства UNIX, и теряющий только 5-10% эффективности по сравнению с нашей базовой системой, содержащей драйверы в ядре.

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

Мы начинаем статью со сравнения нашей разработки со структурами других операционных систем (разд. 2) и далее переходим к пространному обсуждению средств поддержки надежности нашей системы (разд. 3). Затем мы анализируем надежность (разд. 4) и эффективность (разд. 5) системы на основе реальных измерений. В конце статьи мы анализируем некоторые смежные работы (разд. 6) и представляем свои выводы (разд. 7).



Восстановление после сбоев


Серверы и драйверы запускаются и контролируются системным процессом, называемым сервером реинкарнации. Если контролируемый процесс непредвиденным или аварийным образом завершается, это немедленно распознается, поскольку сервер процессов оповещает сервер реинкарнации о завершении сервера или драйвера, и процесс автоматически перезапускается. Кроме того, сервер реинкарнации периодически опрашивает все серверы и драйверы на предмет их состояния. Если какой-либо из этих процессов не отвечает правильным образом в течение установленного интервала времени, то сервер реинкарнации насильственно завершает и перезапускает плохо ведущие себя серверы и драйверы. Поскольку очень многие ошибки ввода-вывода бывают неустойчивыми, проявляющимися при редко возникающих временных соотношениях, синхронизационных тупиках и т.д., простой перезапуск драйвера устраняет проблему.

Сбой драйвера имеет последствия и для файловой системы. Могут быть потеряны невыполненные запросы ввода-вывода, и в некоторых случаях информация об ошибке ввода-вывода доводится до сведения приложения. Однако во многих случаях возможно полное восстановление. Более подробное обсуждение сервера реинкарнации и надежности на уровне приложений приводится в разд. 4.

В монолитных системах обычно отсутствует возможность обнаружения сбойных драйверов «на лету», хотя имеются данные о некоторых исследованиях в этой области [25]. Тем не менее, замена на лету ядерного драйвера является сложным делом, поскольку ко времени замены он может удерживать ядерные блокировки или находиться в критическом участке.



Встроенные функции


Встроенные функции:

sin (expr)синус expr

cos (expr)косинус expr
exp (expr)возведение в степень expr

log (expr)натуральный логорифм expr

sqrt (expr)извлечение корня expr

int (expr)целая часть числа

length (s)длина строки s

printf (fmt, ...)форматирование (аналогично Си) по спецификации fmt.

substr (s, m, n)подстрока в n символов строки s, начинающаяся с m.

getline ()чтение следующей строки.

0конец файла, иначе 1.

index (s1, s2)номер позиции, с которой s1 совпадает с s2, иначе 0.

split (s, M, c)строка s разбивается элементы массива M по разделителю c (по умолчанию FS=" "); функция возвращает число полей.

Примеры.

1) awk ' BEGIN {FS = "."; a=0}

length ($1) > 8 {print (length ($1), $0);

a++

}

END {print ("Найдено строк: " a) }' f-awk

Результат:

9 Сидоров С.К. 1979 40

10 Хведоров И.Х. 1970 60

Найдено строк: 2

Здесь поля разделяются по ".", выбираются

строки у которых длина первого поля больше 8-ми, и их длина "length

($1)" печатается перед строкой "$0".

2) awk '{i=split($0, Name, ".");

for (j=1; j<=i; j++)

print ("Name[" j "]=" Name[j])

}' f-awk

Результат:

Name[1]=Иванов И

Name[2]=И

Name[3]= 1980 50

Name[1]=Петров А

Name[2]=В

Name[3]= 1979 40

Name[1]=Сидоров С

Name[2]=К

Name[3]= 1979 40

Name[1]=Хведоров И

Name[2]=Х

Name[3]= 1970 60

3) awk '{print (length)}' f-awk

Результат:

22

22

22

22

Поскольку все строки были выровнены пробелами, а

в длине строки учитываются все символы до конца строки.

4) awk '{printf "%7.2f %s\n", NR, $0}' f-awk

echo

awk '{printf "\t%s %s \n", NR, $0}' f-awk

Результат:

1.00 Иванов И.И. 1980 50

2.00 Петров А.В. 1979 40

3.00 Сидоров С.К. 1979 40

4.00 Хведоров И.Х. 1970 60

1 Иванов И.И. 1980 50

2 Петров А.В. 1979 40

3 Сидоров С.К. 1979 40

4 Хведоров И.Х. 1970 60



Встроенный надежный инструментарий


Первые сетевые операционные системы для ПК, как правило, включали небольшой набор инструментальных средств. Чтобы иметь возможность нормально работать, нужно было покупать программы независимых поставщиков. Например, 15 лет назад компания 3Com продавала ПО файлового сервера и сервера печати. А пользователям системы NetWare 3.x, в составе которой не было средств удаленного доступа, приходилось приобретать отдельный модуль асинхронного шлюза.

В этом смысле Windows NT 3.1 была уникальным явлением, поскольку предлагала ряд стандартных инструментальных модулей (в том числе модуль коммутируемого доступа). Впоследствии разработчики Microsoft продолжили эту линию, включив в систему Web-сервер, HTML-редактор, DNS-сервер и другие компоненты.

Инструментарий Linux намного богаче. В состав этой системы входят модуль почтового сервера Internet, широкий набор протоколов IP-маршрутизации, мощная графическая программа для рисования и черчения, модуль Samba, позволяющий Linux стыковаться с файловым сервером Windows NT или же выступать в роли такого сервера, базовый модуль сетевого экрана. Более того, инструментарий Linux отличается высокой надежностью, поскольку разработан на основе программного кода UNIX, использовавшегося миллионами людей в течение многих лет. Например, в основе DNS-сервера Linux лежит программа Berkeley Internet Name Domain (BIND), различные модификации которой применялись с середины 80-х годов для поддержки иерархических структур DNS.



Вторая серия:


Столкнувшись один раз с парком компьютерной техники, составляющим 2-3 серии одинаковых машин, у меня возникла идея о клонировании данных с одного компьютера на остальные. Причины, по которым я решил, что это будет работать и что это "правильно":

1. Оборудование однотипно, это значит, что аппаратная часть полностью идентична. И при соблюдении всей последовательности действий при установке, данные байт в байт на дисках двух однотипных компьютерах будут совпадать. Значит, установив обычным способом ОС и программы на один компьютер и перенеся жесткий диск на другой - все будет работать. То есть остается только скопировать раздел одного диска на диск еще одного однотипного компьютера. Цель это процедуры - сократить время установки ОС. Примерно 4 часа затрачивается на установку WindowsNT+Service Pack, Office2000, драйверов, программ и т.д. А при копировании раздела диска - до 12 минут. Выгода очевидна. На данном этапе основной момент технологии, думаю, понятен.

2. Лучшим способом борьбы со сбоями в операционной системе Windows и глюками я считаю полную переустановку. Во-первых, Norton Unilites, Crash Guard, Mem busters - это утилиты, которые неудачно борются со следствиями и зачастую не облегчают, а усложняют работу. А если после сбоя на диске возникли потерянные кластера, кто даст гарантию, что не повредился какой нибудь системный файл и на фоне вроде бы работоспособной системы это проявит себя вдруг не самым приятным образом. Зачем нам это надо? Тем более что наша полная переустановка занимает от 4 до 10 минут.



Введение в SMS Installer Script Editor


Журнал , #02/2000

Брэд Эллиот

Создавать установочные пользовательские пакеты администраторы сети могут с помощью Microsoft Systems Management Server (SMS) Installer, который поставляется в составе SMS 2.0. Работая с мастером Installation Expert, они получают доступ к функциям графического интерфейса, обеспечивающим контроль над большинством задач процесса установки, включая установку файлов, создание значков и изменение параметров реестра. Тем не менее, хотя Installation Expert неплохо справляется со своими обязанностями, наиболее полно возможности SMS Installer раскрываются при работе с редактором сценариев Script Editor. Это более эффективное средство для формирования установочных пакетов, предоставляющее дополнительные возможности, которых нет у мастера. Например, если администратор планирует использовать в своих пакетах операторы условного перехода (скажем, конструкцию if...then), он сможет внести их в базовый сценарий с помощью редактора. Тех же читателей, кого сама мысль о предстоящем изучении очередного сценарного языка повергает в уныние, могу успокоить: работа редактора сценариев основана на графическом интерфейсе и базируется на самых простых концепциях программирования.



Ввод и вывод данных


В общем случае в команде awk может быть указано несколько

файлов. Напомним форматы вызова команды:

awk [-Fc] 'prog.awk' [file ...]

awk [-Fc] -f prog.awk [file ...]

^

Файлы обрабатываются последовательно в указанном

порядке. Это можно использовать для "настройки" awk

команды при обработке последующих файлов.

Пусть файл "f0" имеет вид:

60 Сидоров

А файл awk-программы "prim.awk" имеет вид:

FILENAME == "f0" { # если просматривается файл "f0"

w1 = $2 # присваиваются значения переменным

w2 = $1 # w1 - Сидоров, w2 - 60

}

$1 == w1 { print ("фамилия: "$1)} # означенные переменные

$4 == w2 { print ("годы: " $4)} # используются в

# селекторах

Тогда при вызове команды

awk -f prim.awk f0 f-awk

Результат:

фамилия: Сидоров

годы: 60

То есть второе поле файла "f0" дает значение

переменной "w1", а первое - "w2". Эти переменные

используются в селекторах при обработке файла "f-awk".

Изменим программу в файле "f-awk":

FILENAME == "f0" {

w1 = $2

w2 = $1

next

}

{ print ("фамилия: "$1); next}

$4 == w2 { print ("годы: " $4)}

Результат:

фамилия: Иванов

фамилия: Петров

фамилия: Сидоров

фамилия: Хведоров

Если исключить первый оператор "next",

то в выходном файле появится дополнительно первая строка:

фамилия: 60

поскольку выбирается снова первое поле в певом файле

("f0"). Если исключить и второй "next", то

в выходном файле появится дополнительно последняя строка:

годы: 60

которая ранее не выводилась, так как в предшествующий

оператор " { print ("фамилия: "$1)}" заканчивал

работу на ПОСЛЕДНЕЙ строке файла "f-awk", поэтому "next"

пропускал последующую командную строку

$4 == w2 { print ("годы: " $4)}

И еще одна модификация в связи с вводом данных с

терминала. Вызов команды будет:

awk -f prim.awk f0 f-awk

А файл "prim.awk" примет вид:

BEGIN { print ("Введите годы и фамилию: ")}

FILENAME == "-" {

w1 = $2

w2 = $1

next

}

$1 == w1 { print ("фамилия: "$1); next}

$4 == w2 { print ("годы: " $4)}



Выбор загрузчика


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



Выделенная виртуальная память и файл подкачки


Счетчики Commited Bytes, Commit Limit и %Commited Bytes In Use - очень удобный инструментарий для определения интенсивности использования памяти в Windows NT Workstation. Однако, прежде чем говорить о них, необходимо разобраться с принципами формирования файла подкачки.

В документации Microsoft указано, что минимальный размер этого файла должен быть равен объему физической памяти плюс еще примерно 12 Мбайт. Однако это значение может быть оптимизировано, исходя из реальных требований системы. О максимальном же размере беспокоиться нечего, ибо во всех исследованных мною версиях Windows NT, включая NT 4.0 с установленным Service Pack 6 (SP6), операционная система игнорировала любое задаваемое значение. Она увеличивает файл подкачки настолько, насколько это необходимо для удовлетворения потребностей в памяти, вплоть до исчерпания места на диске. Чтобы проверить, как Windows NT реагирует на возрастающий дефицит памяти, во вкладке Performance значка System на Control Panel введем значение максимального размера файла подкачки. Затем возьмем из каталога \perftool\meastool пакета Windows NT Resource Kit файл leakyapp.exe. Это созданное программистами Microsoft приложение My Leaky App, предназначенное для тестирования поведения системы в процессе непрекращающегося выделения памяти. После запуска этой программы размер занимаемой ею системной памяти будет постоянно расти.

ЭКРАН 2. Приложение MyLeakyApp отображает использование файла подкачки.

Запустим приложение и, для инициации тестового процесса, нажмем кнопку Start Leaking. Приложение будет непрерывно отображать уровень использования файла подкачки, позволяя, как показано на Экране 2, останавливать и снова запускать процедуру запроса на дополнительную память. Если программа будет работать достаточно долго, размер файла подкачки начнет увеличиваться сверх предельного уровня, указанного во вкладке Performance. После превышения файлом подкачки установленного минимального значения для его возврата к исходной величине необходимо перезагрузить компьютер.


Когда Windows NT начнет, в целях удовлетворения растущих запросов на память, увеличивать файл подкачки, производительность резко упадет, особенно если файл размещен на медленном или сильно фрагментированном диске. С помощью счетчиков Committed Bytes и Commit Limit можно фиксировать рост потребления памяти, что провоцирует резкий рост файла подкачки. Упрощенно говоря, Windows NT записывает в Commit Limit значение, равное сумме объема установленной на компьютере физической памяти и размера файла подкачки, заданного во вкладке Performance. Значение счетчика Committed Bytes равняется общему размеру выделенной работающему процессу памяти. По мере роста Committed Bytes происходит приближение к предельному значению Commit Limit, достичь которого можно в случае выполнения следующих один за другим запросов на память со стороны одного или нескольких приложений. Следя за счетчиком %Committed Bytes In Use, можно увидеть, что при достижении им величины 100% система начнет увеличивать размеры файла подкачки, пытаясь удовлетворить растущие запросы на память.

Чтобы система могла справиться с этими запросами, увеличение файла подкачки будет производиться до тех пор, пока позволяет размер дискового пространства. При этом возможно появление показанного на Экране 3 сообщения Out of Virtual Memory. Если это произойдет, следует запустить Performance Monitor. Для всех работающих приложений нужно выбрать объект Process, счетчики Working Set и Pagefile Bytes. Довольно скоро выяснится, какое приложение отвечает за столь резкий рост потребления памяти. Следует помнить, что с помощью счетчика %Committed Bytes In Use можно определить оптимальный размер файла подкачки. Если постоянно следить за показаниями этого счетчика, то всегда можно подогнать минимальный размер файла под требования имеющегося на компьютере набора приложений.



ЭКРАН 3. Сообщение Out Of Virtual Memory


Выводы из изложенного:


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

Примечание:

Каждому предоставляется право делать или распространять дословные копии этого документа на любом носителе при условии сохранения уведомления об авторских правах и уведомления о разрешениях и при условии предоставления распространителем разрешения получателю на повторное распространение, как в этом уведомлении.

Изменять этот документ нельзя.

С уважением Олег П. Филон



Вызов awk


Возможны два основных варианта:

1) awk [-Fc] 'prog.awk' [files]

Это простейший случай, когда программа (заключенная

в кавычки " ' ") находится в теле команды, "-Fc"

- флаг, меняющий стандартный разделитель полей на "c"

"file" - имя файла исходных данных, при его отсутствии

- со стандартного входа. (Этот формат использован в начальных

примерах).

cat f-awk | awk '/до/ {print}'

и

awk '/до/ {print}' < f-awk

дают результат, аналогичный

awk '/до/ {print}' f-awk

Для демонстрации действия флага "-Fc" рассмотрим

вызовы:

awk '/до/ {print($2)}' f-awk

awk -F0 '/до/ {print($2)}' f-awk

На экран будет выведено:

С.К.

И.Х.

6

Первая команда "awk" выведет вторые поля

(благодаря позиционной переменной "$2") строк, содержащие

"до". (Кстати, позиционная переменная "$0"

соответсвует всей строке). Во втором случае, благодаря флагу "-F"

стандартные разделители заменены на символ "0", т.е.

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

поля:

Сидоров С.К. 1979 40

---------------------^--------------------

1-е поле 2-е поле (пусто)

Хведоров И.Х. 1970 60

-----------------^---^--------------------

1-е поле 2-е 3-е поле (пусто)

2) awk [-Fc] -f prog.awk [files]

Флаг "-f" говорит о том, что awk-программу

надо брать из файла, имя которого указано следом (имя может быть

произвольным и расширение ".awk" добавлено здесь просто

из эстетических соображений).



Windows NT и Linux : загрузка через OS Loader от NT


В этом разделе, говоря о Windows NT, я все время буду иметь в виду и Windows 2000, так как в части установки Linux между ними различий нет. Будем предполагать, что Windows NT установлена в разделе /dev/hda2 (как вы помните, /dev/hda1 предлагалось отвести под FAT16-раздел). Раз ОС Windows NT на вашем компьютере уже установлена, значит и загрузчик OS Loader тоже уже установлен, а, следовательно, вполне логично использовать его и для загрузки Linux. Я надеюсь, что вы сделали резервную копию всей ценной для вас информации с жесткого диска(ов). После этого можно перейти к установке Linux. Этапы установки можно описать следующим образом.

Если вы не сделали этого ранее, то до начала каких-либо действий по инсталляции Linux изготовьте загрузочные дискеты для загрузки и восстановления Windows NT. Для создания загрузочной дискеты достаточно скопировать на отформатированную дискету файлы ntldr, ntdetect.com и boot.ini из корневого каталога загрузочного диска. Программу создания дискеты аварийного восстановления для Windows 2000 можно запустить из панели управления (команда Архивация данных), а в Windows NT 4.0 я ее сумел найти только с помощью поиска в справочной системе (ищите "Создание диска аварийного восстановления").

С помощью программы Partition Magic освободите часть дискового пространства и создайте на свободном месте раздел типа ext2 (файловая система Linux) и swap-раздел. О том, что надо при этом учесть, было рассказано выше.

Проведите процедуру инсталляции Linux, следуя рекомендациям, прилагаемым к имеющемуся у вас дистрибутиву. В ходе процедуры инсталляции учтите следующее:

во-первых, в процессе установки надо обязательно изготовить загрузочную дискету, для чего при запросе о создании загрузочного диска выбрать команду Yes, make a BOOT DISK (Создать загрузочный диск). Этот диск понадобится вам на одном из следующих этапов. Кроме того, в последующем можно будет просто использовать эту дискету для загрузки Linux. Это тоже вариант загрузки, тем более что, в отличие от загрузочной дискеты ДОС, после загрузки система уже о дискете не вспоминает, ее можно убрать из дисковода (даже размонтировать не требуется) и использовать дисковод для работы с обычными дискетами.
Однако этот метод все же не совсем удобен, так что я не предлагаю вам использовать его постоянно. Только как запасной! Но это потом, а при настройке многовариантной загрузки он будет просто необходим!

во-вторых, при установке Linux надо установить LILO не в главный загрузочный сектор диска (Master Boot Record), а в первый сектор того раздела, который вы отвели для корневого раздела Linux. Для определенности предположим, что Linux устанавливается в первый сектор раздела /dev/hda3. В принципе, если вы установите LILO в MBR, то и это не смертельно, конечный результат (загрузка через NT Loader) может быть достигнут и в этом случае, но потребуется больше усилий. Дело в том, что формат MBR, создаваемого LILO и Windows (DOS), различен. Поэтому если вы поставите LILO в MBR, вам придется потом восстановить MBR от Windows. На всякий случай я позже расскажу, как это делается, но лучше будет, если вы сразу поставите LILO в первый сектор его собственного раздела.

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

Скопируйте загрузочный сектор Linux в файл; он понадобится для того, чтобы загрузчик Windows NT/2000 мог запускать Linux. Для этого надо смонтировать чистую дискету, например, так:

[root]# mount -t vfat /dev/fda1 /mnt/floppy

перейти в каталог /mnt/floppy

[root]# cd /mnt/floppy

и выполнить команду

[root]# dd if=/dev/hda3 of=/mnt/floppy/bootsect.lnx bs=512 count=1

которая позволяет записать содержимое загрузочного сектора диска /dev/hda3 в файл

/mnt/floppy/bootsect.lnx.

Примечание

Хочу заметить, что если диск C: (/dev/hda1) отформатирован в системе FAT, то можно сразу создать файл bootsect.lnx в корневом каталоге диска C:. Отмечу, что я не знаю (не пробовал) можно ли будет загружаться без дискеты, если первый раздел загрузочного диска отформатирован в NTFS. Но думаю, что проблем и здесь не будет, кроме необходимости переноса boot-сектора через дискету, поскольку пока что поставляемые в дистрибутиве варианты ядра не поддерживают NTFS.



Далее необходимо перезагрузиться, чтобы запустить Windows NT, для чего даем в Linux команду:

[root]# shutdown -h now

Поскольку главная загрузочная запись не была изменена, должна загрузиться Windows NT. После завершения загрузки необходимо перенести файл /mnt/floppy/bootsect.lnx в корневой каталог диска C:, точнее — в корневой каталог того раздела, с которого загружается Windows NT. В зависимости от того, как вы устанавливали Windows NT, это может быть как FAT16-раздел, так и NTFS-раздел. Признаком нужного раздела является наличие в нем файлов ntldr и boot.ini (эти файлы могут быть скрытыми!). Файлу bootsect.lnx можно присвоить атрибут read-only.

После завершения загрузки NT найдите файл boot.ini в корневом каталоге и добавьте в него следующую строчку:

C:\bootsect.lnx="LINUX"

(естественно, что в кавычках вы можете поставить все, что вам угодно).

Осталось перезапустить компьютер еще раз, причем при загрузке вы уже будете иметь возможность выбрать Linux для загрузки. После этого будет запущен LILO, который загрузит Linux.

Теперь отдельно рассмотрим случай, когда вы (по ошибке или намеренно) установили LILO в главную загрузочную запись диска (Master Boot Record, MBR). В этом случае загрузочная запись Windows NT (или 2000) будет затерта, и загрузить Windows NT (см. шаг 6 выше) уже будет невозможно. Если вы все еще намерены пользоваться загрузчиком OS Loader от NT, а не LILO, последовательность действий несколько изменяется: вместо шага 6 необходимо проделать следующее.

Загрузите Windows NT с загрузочных дискет (см. шаг 1). При этом необходимо выбрать в меню загрузчика команду Recover, а затем — режим Command mode. При запросе следует зарегистрироваться с учетной записью администратора системы (Administrator).

Восстановите главную загрузочную запись диска. Для этого можно дать команду fdisk /mbr. У меня получалось, хотя в некоторых статьях утверждается, что восстановить таким образом MBR удается не всегда. В Windows 2000 имеются специальные команды fixboot и fixmbr (они запускаются из консоли восстановления, см.


справку). Выполните их обе в указанном порядке. Теперь Windows 2000 снова будет загружаться нормально.

Перезапустите компьютер с загрузочной дискеты Linux и зарегистрируйтесь в системе с полномочиями администратора (root).Введите команду cd /etc и откройте файл lilo.conf. В начале этого файла есть ссылка на загрузочный раздел по умолчанию, например, /dev/hda.

С помощью любого редактора, например, CoolEdit из Midnight Commander, следует заменить это значение указанием на диск и раздел, куда была установлена Linux (точнее, указанием на тот диск и раздел, который монтируется как корневой в Linux). Если Linux установлена в раздел /dev/hdc1, то именно это и следует записать, т. е. поменять /dev/hda на /dev/hdc1. Если вы не помните, куда именно установлена Linux, найдите последнюю переменную файла /etc/lilo.conf — переменную image. В ней хранится нужное значение.

Выполнить команду /etc/lilo для записи загрузчика в раздел /dev/hdc1 (команду lilo нужно выполнить без аргументов). Будет выдано предупреждение о том, что раздел не является первым на диске. Именно это нам и нужно, чтобы загрузочная запись Windows 2000 осталась в целости и сохранности.

Выполнить шаги 6–8 приведенного выше алгоритма.

Легко догадаться, что только что приведенная сложная последовательность операций с двумя лишними перезагрузками потребовалась только для того, чтобы перенести загрузочный сектор Linux из MBR в первый сектор раздела, отведенного для Linux, и восстановить MBR от Windows.

Все, на этом установка завершена, и вы имеете возможность на этапе загрузки выбирать ту ОС, которая будет осуществлять управление вашим компьютером в данном сеансе работы.


Windows NT против Linux


, #03/2000

Три преимущества и три недостатка популярной ОС

Новые операционные системы очаровывают меня. Я очень люблю тестировать их, ибо не теряю надежды найти устойчивую, гибкую и универсальную во всех отношениях среду. За прошедшие 20 лет мне приходилось иметь дело с самыми разными операционными системами, в том числе CP/M корпорации Digital Research и ее клонами CP/M-86 и MP/M, системой TRSDOS для машин Radio Shack TRS-80, TOS для Atari 520, GEM для Amiga, UCSD P-System Калифорнийского университета в Сан-Диего (задолго до появления Java, обеспечившей независимость от аппаратной платформы), IGC VM/386, Microsoft Windows/386 и Quarterdeck DesQ (три попытки создания многозадачных сред для DOS), Microsoft OS/2, IBM OS/2, Banyan VINES, Novell NetWare и, конечно, Windows NT.

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

Самая молодая сегодня среди профессиональных операционных систем - Linux. Свой вклад в развитие этой UNIX-подобной системы, которую, еще будучи студентом, в 1991 г. разработал Линус Торвальдс, внесли тысячи программистов. Именно это стало одной из причин ее неслыханной популярности в последние два года (кстати, лишь немногие разработчики Linux получают деньги за свой труд).

В последнее время я очень много узнал о Linux, поскольку занимаюсь подготовкой книги для экспертов по Windows NT, где пытаюсь разъяснить основы новой операционной системы, ее возможности и идеологию, а также то, каким образом она упрощает работу администраторов Windows NT. Среди открытых мною преимуществ Linux - умение работать в качестве сервера без графического интерфейса, надежный встроенный инструментарий и готовность к удаленному управлению.



WISIWIG-редакторы под Linux


В простейшем варианте таковые представлены Netscape Communicator со своим Composer'ом. Однако мне он не нравился в версии для Windows. И в версии для Linux - тоже не внушил симпатий. Причин - две: неудобство редактирования кода (чтобы получить к нему доступ, требуется подключить внешний редактор, иначе на код можно только любоваться) и стремление переиначить введенные руками тэги.

Для особо ленивых (или наоборот, любящих китайскую работу) есть возможность в качестве web-редактора использовать текстовый процессор StarWriter из комплекта StarOffice. Конечно, то довольно комфортная среда для работы, кое в чем поудобнее MS Office и прочих офисных наборов для Windows. Однако с русскими буквами в html-формате он работает не лучшим образом, превращая их в четырехзначные коды. Что, правда, можно преодолеть, как описано на сайте http://isd.anet.donetsk.us/~lein/StarOffice.html. Однако генерируемый StarWriter html-код все равно остается неудобочитаемым из-за изобилия отсебятины типа тэгов <font>...</font> в произвольных позициях, вплоть до середины слова. В общем, точно так же, как в html-документах, экспортированных из MS Word 97.

Специализированные WISIWIG-редакторы для Web я не очень люблю - уж больно они любят улучшать введенный руками код, а то и пороть откровенную отсебятину (вспомните, сколько неудобопонятного кода пишет FrontPage 97). Бывают, конечно, и исключения (Dreamweaver, например, или AOLPress), да и те - не без греха. Однако в ряде случаев их использование бывает полезным - для быстрого создания прототипа страницы. И для полноты картины следовало с ними ознакомиться. Первой в списке была

Amaya

Я скачал ее с в виде бинарного архива tar.gz. Установка его проблем не вызвала, он благополучно распаковался куда надо и запустился из командной строки терминала. На первый взгляд Amaya производила приятное впечатление (рис. 1): инструментальная панель современного вида, наличие встроенного браузера, как в AOLPress'е, переключение с режима редактора в режим браузера и т.д.




Рисунок 1. Web-редактор Amaya

Однако первые же опыты вызвали сплошные разочарования. Во первых, Amaya сразу же начала находить у меня ошибочные теги (в меру своего разумения, соответствующего спецификации html чуть ли не второй версии). И до исправления ошибок категорически отказывался переключаться в режим редактора. Для пробы последовал мудрым советам, после чего получил доступ к редактору. Тут последовало второе разочарование: я не нашел никакого способа доступа к html-коду. Без чего web-редактора, будь он хоть трижды wisiwig, не приемлю: знаем мы, какие они умные... И, наконец, моя борьба за русские буквы оказалась безуспешной. На запуск с параметром, скажем, -fn fixed Amaya плевать хотела, а поиск какого-либо другого способа русификации (если он существует) требовал неоправданных, как мне показалось, затрат сил и времени. И с Amaya я благополучно распростился, перейдя к пункту второму и последнему -

Bulldozer

Его я тоже взял с в виде tar-архива. При установке он задавал мне какие-то вопросы о местоположении каталогов, после чего оказался в отдельном подкаталоге в /usr/bin. И при запуске для начала сообщил о невозможности воспользоваться help'ом по причине неправильного его расположения. Правда, тут же давался совет, как сделать это расположение правильным.



Рисунок 2. Web-редактор Bulldozer

Я этого делать не стал по двум причинам. Первая - на команду dozer -fn fixed он не прореагировал никак - русских букв как не было, так и не стало. И второе - мою титульную страничку Linux-раздела он перекорежил так, как это можно видеть на рисунке 2. Смею заверить, в тот момент картинка с Сигурдом Драконоборцем в любом браузере (и линуксовом, и виндовом) находилась на своем месте. Разбираться, в чем дело, я не стал, Просто вычеркнув Бульдозера из списков живых (на моем компьютере). Да и название не больно эстетичное...

На этом тема WISIWIG-редакторов была почти исчерпана. Можно было заняться


Working with Win32: the Good, the Bad, and the Ugly


David Korn, A Bell Labs fellow and an AT&T fellow, ;login, November 1997

Оригинал статьи можно найти по адресу



Загрузчик LILO из дистрибутива ОС Linux


Загрузчик LILO создан Вернером Альмесбергером (Werner Almesberger). LILO может загружать ядро Linux как с дискеты, так и с жесткого диска, а также может загружать другие операционные системы: PC/MS-DOS, DR DOS, OS/2, Windows 95/98, Windows NT, 386BSD, SCO UNIX, Unixware и т. д. Может быть задан выбор до 16 разных операционных систем на этапе загрузки.

LILO представляет собой комплект из нескольких программ: собственно загрузчика, программ, используемых для установки и настройки загрузчика, и служебных файлов:

программа /sbin/lilo, которая запускается из-под Linux, служит для того, чтобы записать всю информацию, необходимую на этапе загрузки, в соответствующие места. Ее необходимо перезапускать каждый раз после внесения изменений в ядро или в конфигурационный файл LILO;

различные служебные файлы, которые нужны LILO во время загрузки. Эти файлы обычно располагаются в каталоге /boot. Самые важные из них — это собственно загрузчик (смотри ниже) и map-файл (/boot/map), в котором указывается местоположение ядра. Еще один важный файл — это файл конфигурации LILO, который обычно имеет имя /etc/lilo.conf;

собственно загрузчик — это та часть LILO, которая первой загружается в память через прерывание BIOS, и которая загружает ядро Linux или загрузочный сектор другой операционной системы. Загрузчик тоже состоит из двух частей. Первая часть записывается в загрузочный сектор и служит для загрузки второй части, которая значительно больше по размеру. Обе части обычно хранятся на диске в файле /boot/boot.b.

Надо иметь в виду, что формат загрузочного сектора, создаваемого LILO, отличается от формата DOS MBR, так что если записать загрузочный сектор LILO в MBR, то ранее установленные системы от Microsoft перестанут загружаться (если не принять дополнительных мер).

Загрузочный сектор LILO спроектирован так, чтобы его можно было использовать как загрузочный сектор раздела, в частности, в нем есть место для таблицы разделов.

Загрузочный сектор LILO при инсталляции системы можно разместить в следующих местах:


загрузочный сектор дискеты в формате Linux (/dev/fd0, ...);

MBR первого жесткого диска (/dev/hda, /dev/sda, ...);

загрузочный сектор первичного раздела файловой системы Linux на первом жестком диске (/dev/hda1, /dev/hda2, ...);

загрузочный сектор логического раздела в расширенном разделе первого жесткого диска (/dev/hda5, ...). Правда большинство программ типа fdisk не предполагают, что можно загружаться из расширенного раздела и отказываются объявлять его активным. Поэтому в состав LILO включена специальная программа (activate), которая позволяет обойти это ограничение. Но программа fdisk из дистрибутива Linux поддерживает возможность активизации расширенного раздела. Для этого надо использовать либо опцию -b, либо переменную BOOT.

Загрузочный сектор LILO не может быть размещен в следующих местах:

загрузочный сектор дискеты или первичного раздела, отформатированных в других файловых системах;

в swap-разделе Linux;

на втором жестком диске.

Кроме того, имейте в виду, что LILO во время загрузки нужны еще следующие файлы:

/boot/boot.b;

/boot/map (создается при запуске /sbin/lilo);

все загружаемые версии ядра (если вы выбираете версию ядра на этапе загрузки);

загрузочные сектора других операционных систем, которые будут загружаться через LILO;

выдаваемые при загрузке сообщения (если таковые определены).

Следовательно, как загрузочный сектор LILO, так и перечисленные файлы (в том числе те, которые вы будете устанавливать впоследствии) должны находиться в пределах первых 1024 цилиндров на жестком диске, так как они должны быть доступны через BIOS.

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


Загрузка Linux из MS-DOS с помощью loadlin.exe


Не только загрузочные файлы и образы ядра могут располагаться в DOS-разделе, но и вообще вся загрузка Linux может быть организована из DOS. Для этого используется специальная программа loadlin.exe, разработанная Хансом Лерменом (Hans Lermen, lermen@elserv.ffm.fgan.de). Эта программа используется в таких дистрибутивах, как Red Hat, для организации процедур установки Linux с CD-ROM. Поэтому она имеется на дистрибутивном диске, а, следовательно, всегда имеется в вашем распоряжении.

Loadlin.exe предоставляет вам самый безопасный способ загрузки Linux с жесткого диска, если вы имеете на нем загрузочный (активный) DOS- или Windows-раздел. Этот вариант организации загрузки Linux можно особенно порекомендовать начинающим пользователям Linux. Большинство новичков, устанавливающих Linux, слишком нетерпеливы для того, чтобы читать очень хорошее, но очень длинное описание загрузчика LILO, прилагаемое к этой программе (да еще по-английски!). Поэтому они часто используют его некорректно, в результате чего теряют возможность вообще загрузить какую-нибудь операционную систему (я тоже попадал в такую ситуацию). Для таких пользователей гораздо удобнее начать освоение Linux, используя для загрузки loadlin.exe.

Программа loadlin.exe не требует какой-либо установки, надо только разместить саму программу и образы ядра на одном из дисков, доступных в DOS. С помощью этой программы можно загрузить Linux с CD или сетевого диска, не используя загрузочной дискеты. Это делает loadlin.exe великолепным инструментом на те случаи, когда необходимо загрузить Linux после какого-то сбоя в работе загрузчика LILO.

Версия 1.6 loadlin.exe работает практически при любых конфигурациях DOS и имеет очень мало ограничений. Она может использовать расширенную память и может загружать большие ядра (bzImages) и образы виртуальных дисков (initrd) непосредственно в верхние области ОП.

Применение loadlin.exe не означает, что Linux работает под DOS, так как эта программа обеспечивает "логическую перезагрузку" вашего компьютера, после чего DOS полностью заменяется на Linux.
Если вы хотите вернуться в DOS, вы должны перезагрузить компьютер, например, с помощью команды reboot. Итак, что же необходимо для того, чтобы воспользоваться программой loadlin.exe.

На вашем компьютере (конечно, с процессором 386 или выше) должна быть установлена DOS или WINDOWS 95.

Нужно иметь сжатые образы ядра (zImage, bzImage). Примечание.

zImage — это старый бинарный формат ядра, bzImage — это более новый формат (номер ядра версии больше 1.3.73), который может иметь размер до 1 Мбайта, следовательно, разархивированное ядро может иметь размер до 2 Мбайт. Далее будем говорить только о файлах zImage, хотя вы можете всюду заменить zImage на bzImage.

Саму программу loadlin.exe, которую вы можете найти на дистрибутивном диске как в разархивированном виде, так и в пакете LODLIN16.TGZ, который содержит, кроме того, руководство по ее использованию DOC\MANUAL.TXT, пример файла задания параметров DOC\TEST.PAR, и руководство по заданию параметров DOC\PARAMS.DOC (не забывайте, что все это файлы DОS).

Если вы запустите команду loadlin без параметров:

C:\LOADLIN> loadlin

то получите подсказку по использованию программы. Удобнее может оказаться запустить ту же программу с параметром more (в стиле Linux):

C:\LOADLIN> loadlin | more

Теперь мы можем рассмотреть последовательность действий по установке Linux в том варианте, когда загружаться она будет с помощью loadlin.exe.

Выделите раздел для Linux (как это сделать — см. разд. 2.5).

Установите Linux в выделенный раздел. При этом LILO установите в первый сектор Linux-раздела, чтобы не перезаписать MBR и не потерять возможность загружаться в Windows.

После завершения процедур установки загрузите Linux (если не получается по-другому, то используйте загрузочную дискету). Смонтируйте DOS-раздел (будем считать, что в Linux DOS-раздел именуется как /dev/hda1, а Linux-раздел — как /dev/hda3):

root]# mount -t vfat /dev/hda1 /mnt/C

Создайте каталог /mnt/C/loadlin и разархивируйте в него содержимое файла LODLIN16.TGZ с дистрибутивного CD-диска Linux.


Кроме того, поместите туда же файл с образом ядра из каталога /boot. Найти нужный файл образа ядра можно с помощью файла /etc/lilo.conf: найдите в нем строку "image=..." и вы увидите нужное имя справа от знака равенства. У меня, например, полное имя этого файла — vmlinuz-2.2.16-3bc, но я при копировании в каталог /mnt/C/loadlin переименовал его в vmlinuz; это имя и буду использовать далее в примерах.

Теперь перезагрузите компьютер в DOS. Если у вас есть возможность загрузить непосредственно DOS, то делайте это сразу, а если нет, то загружайте Windows, при появлении сообщения "Загрузка Windows 95" нажимайте клавишу и выбирайте вариант Command prompt only. Если вы не успели нажать на клавишу , то можно дождаться завершения загрузки Windows 95, после чего воспользоваться кнопкой Пуск, выбрать команду Завершение работы и далее — команду Перезагрузить компьютер в режиме эмуляции DOS.

После выхода в режим DOS перейдите в каталог C:\LOADLIN (CD \LOADLIN) и выполните команду

C:\LOADLIN> LOADLIN vmlinuz /dev/hda3 ro vga=ask

или, если вы хотите загрузить ядро с установкой RAM-диска:

C:\LOADLIN> LOADLIN vmlinuz /dev/ram rw initrd=diskimage

Можно также записать все аргументы команды loadlin.exe в файл (например, с именем param) и вызвать ту же команду следующим образом:

C:\LOADLIN> LOADLIN @params

Такая возможность особенно полезна для тех случаев, когда вы задаете много аргументов командной строки, и ее длина становится больше 127 символов. Полное описание всех возможных аргументов (параметров) команды loadlin.exe вы сможете найти в файле PARAMS.DOC или в Интернете на сайтах http://sunsite.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html и http://rsphy1.anu.edu/~gpg109/BootPrompt-HOWTO.html.

Теперь вы можете пользоваться этим способом загрузки Linux. Единственное, что остается, это избавиться от необходимости каждый раз при загрузке вводить команду loadlin со всеми параметрами. Для облегчения можно прописать вызов loadlin в файл autoexec.bat или создать командный файл (например, linux.bat), с помощью которого просто запускать Linux, предварительно загрузившись в режиме DOS.


Я думаю, что приведенных выше данных вполне достаточно для создания необходимого bat-файла. Если же у вас что-то не получится, загляните в статью А. Московских [П4.13], где этот вопрос рассмотрен более подробно. Там, в частности, отмечается, что если на машине установлены Windows 95 и Linux, то нельзя пытаться загружать Linux из графической оболочки и требуется отключить некоторые опции в скрытом файле C:\MSDOS.SYS (это простой текстовый файл), а именно, добавить в него две строки:

BootGUI=0 Logo=0

Первая строка отключает загрузку графической оболочки, и выбор команды меню W95 будет вызывать переход к обычной командной строке ДОС. (Чтобы загрузить графическую оболочку, вы должны будете ввести команду C:> win).

Logo=0 отключает вывод логотипа Windows. Дело в том, что для некоторых графических адаптеров Linux может выдавать после загрузки "пустой" экран, если перед его загрузкой отображался логотип Windows.

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



Запрещение доступа к портам ввода-вывода


Для каждого драйвера в ядре поддерживается список портов ввода-вывода, из которых он может читать, а также тех, в которые он может писать. Чтение и запись защищаются по отдельности, так что процесс, у которого имеется право на только чтение из некоторого порта ввода-вывода, не может писать в него. Любая попытка нарушения этих правил приводит к выработке кода ошибки, возвращаемого вызывающей стороне. Таким образом, драйвер принтера может быть ограничен доступом только к портам ввода-вывода принтера, аудио-драйвер может быть ограничен доступом только к портам ввода-вывода звуковой карты и т.д.

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

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

Хотя в настоящее время таблицы, разрешающие доступ к портам ввода-вывода, инициализируются из конфигурационного файла, мы планируем реализовать сервер шины PCI, который будет делать это автоматически. Сервер шины PCI может получить из BIOS порты ввода-вывода, требуемые каждому драйверу, и использовать эту информацию для инициализации таблиц ядра.



Запуск демона syslogd


Оба демона протоколирования запускаются на этапе инициализации системы посредством скрипта /etc/rc.d/init.d/syslog, однако для того, чтобы задать параметры запуска, нет необходимости корректировать этот скрипт - начиная с версии 7.2, в дистрибутиве Red Hat опции запуска обеих демонов считываются из отдельного конфигурационного файла /etc/sysconfig/syslog. Среди некоторых возможных параметров запуска демона syslogd можно назвать следующие:

-d - отладочный режим. При этом демон не переходит в фоновый режим и выдает все сообщения на текущий терминал; -f имя-конфигурационного-файла. Задает имя альтернативного конфигурационного файла, который будет использоваться вместо заданного по умолчанию /etc/syslog.conf; -l список-хостов - задание списка хостов, имена которых не должны записываться с указанием полного доменного имени (FQDN - Full Qwalified Domain Name); -m минут - запущенный без этой опции sysklogd через каждые 20 минут записывает в протокол сообщения категории mark (временные отметки). С помощью опции -m можно либо изменить интервал между отметками, либо вовсе отменить выдачу таких сообщений; -p socket - задание альтернативного сокета UNIX (вместо прослушиваемого по умолчанию /dev/log); -r - разрешение принимать сообщения от удаленных хостов; -x - запрет определения имени хоста по его адресу для предотвращения зависания при работе на одном хосте с сервером DNS.

После запуска демона syslogd создается файл статуса /var/lock/subsys/syslog нулевой длины, и файл с идентификационным номером процесса /var/run/syslogd.pid.

С помощью команды

kill -SIGNAL `cat /var/run/syslogd.pid`

можно послать демону syslogd один из следующих сигналов: SIGHUP - перезапуск демона; SIGTERM - завершение работы; SIGUSR1 - включить/выключить режим отладки.



Защищенные Области


DG/UX B2 Security Option ограничивает доступ системы к пользователю или приложению, ограничивая видимость данных и ограничивая число операций, которые могут производится над этими данными. Вдобавок, система ограничивает доступ к административным функциям, даже для тех пользователей, которые имеют все необходимые пароли. DG/UX B2 Security Option не позволяет внешним анонимным сеансам получить доступ к конфиденциальной информации - конфиденциальная информация доступна только для идентифицированных сеансов.



Защита Инвестиций


Кроме того, что продукт DG/UX B2 Security Option обеспечивает необходимый вам уровень безопасности, он также позволяет сохранить ваши вложения в оборудование и приложения. Например, благодаря тому, что программный продукт DG/UX B2 Security Option позволяет вам комбинировать несколько функций, вы можете на одном сервере решать сразу несколько задач. В этом принципиальное отличие DG/UX B2 Security Option от технологии брандмауэров, которая обеспечивает только одну внешнюю защиту.

Эта полнофункциональная операционная система может использоваться, например, как база для брандмауэра, web-сервера, а также баз данных для хранения как внешней, так и внутренней конфиденциальной информации. Высокая степень уверенности, обеспечиваемая DG/UX B2 Security Option, служит основной базой для всех ваших организационных потребностей.

Вдобавок, любое приложение, работавшее под управлением операционной системы DG/UX, при переходе на работу с DG/UX B2 Security Option не требует модификации, если оно было установлено в надлежащую защищенную область (containment area).



Защитим права администратора!


Журнал , #02/2000

Франклин Р. Смит

Знание слабых мест системы безопасности поможет предотвратить несанкционированный доступ

Доступ с правами администратора - голубая мечта взломщика компьютерных систем, поэтому именно о защите административных полномочий должен в первую очередь заботиться тот, кто отвечает за безопасность. Однако обеспечить надежную защиту административных учетных записей - значит не только просто правильно выбрать пароль. Некоторые особенности Windows NT, ошибки и неудачные параметры конфигурации по умолчанию образуют множество "дыр", через которые взломщик может проникнуть в систему. Системные администраторы настолько загружены, что часто еще больше усложняют проблему, используя широко распространенные, но ненадежные приемы администрирования. Знать слабые места в системе безопасности чрезвычайно важно для защиты и мониторинга административных учетных записей.



Здоровый Реестр - путь к лучшей жизни


Керк Стирс

Журнал "", #02/2000

Когда ОС Windows 98 хочет узнать, какие графическая плата, жесткий диск или иное аппаратное обеспечение установлены на ПК, она обращается к Реестру. И если не находит там ответов на свои вопросы, то "сильно огорчается" и может наградить вас самыми разными неприятностями. Так что Реестр стоит того, чтобы о нем заботились.

При работе в среде Windows 95 поддержка и исправление Реестра были делом по меньшей мере обременительным. Пользователям Windows 98 повезло больше: предусмотренная в этой ОС утилита "Проверка реестра" упрощает решение задач.

Заботиться о Реестре означает следить за двумя скрытыми файлами в каталоге Windows: system.dat и user.dat. В них содержатся все аппаратные, программные и пользовательские настройки вашего ПК. Если эти файлы повреждены (например, из-за неправильного завершения работы системы или проблем с жестким диском), то некоторые приложения могут работать некорректно, что может привести к отказу системы.

Утилита "Проверка реестра" оптимизирует эти файлы и предохраняет их от возникновения осложнений в будущем. Каждый раз при запуске Windows 98 она автоматически оптимизирует ваш Реестр. Обнаружив, что объем устаревших записей достиг или превысил 500 Кбайт, программа удаляет их, сокращая размер DAT-файлов. Тем самым эти файлы становятся более удобными для резервного копирования, а также ускоряются и запуск, и завершение работы Windows 98. Кроме того, утилита "Проверка реестра" сканирует DAT-файлы, чтобы обнаружить возможные повреждения. И наконец, при аварийных отказах, поиске и устранении неисправностей эта программа сэкономит вам не один час.



вы все еще стремитесь поставить


Что, вы все еще стремитесь поставить Windows 2000? Конечно, последовав нашим советам по подготовке компьютера, вы сведете к минимуму несовместимости и другие проблемы. И все же если Windows 2000 еще не поддерживает устройство или программу, которыми вы пользуетесь, лучше на полгодика остаться при своей прежней ОС.

Несомненно, для большинства из нас Windows 2000 окажется лучше той версии Windows, с которой мы имеем дело сейчас. Но когда цифровая камера, какое-либо устройство, жизненно важное для вашей работы, несовместимо с Windows 2000, не стоит торопить события. Возможно, имеет смысл подумать о системе с двухвариантной загрузкой, чтобы, когда понадобится такое устройство, переключаться на прежнюю ОС. А если это для вас неприемлемо, придется по крайней мере некоторое время обходиться либо без нужного устройства, либо без Windows 2000. К концу лета большинство производителей программ и аппаратуры планируют обеспечить совместимость своих продуктов с Windows 2000.

Тщательно взвесьте все варианты, и пусть победит лучшая версия Windows.


Знакомимся с редактором сценариев


Система графического интерфейса Script Editor, доступ к которому осуществляется из меню View, состоит из двух панелей. На левой панели размещен список всех возможных действий (конкретных команд или операций), которые может выполнять установочный пакет.

ЭКРАН 1. Вид окна Script Editor.

К числу наиболее распространенных операций относятся установка переменных среды, установка файлов, создание значков и изменение реестра. На правой панели, как показано на Экране 1, отображается активный сценарий. В верхней части окна расположена строка меню и панель инструментов, включающие привычные команды File и Edit, а также набор типовых команд сценария.

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

Примерно 40 или 50 первых строк выполняют такие подготовительные операции, как объявление переменных и определение структуры диалоговых окон мастера. Ни в коем случае не следует менять или удалять эти строки, поскольку они закладывают основу для работы сценария. Например, если установочный пакет отображает в ходе инсталляции процесс выполнения установки, сценарий не будет компилироваться без команды Check Disk Space (контроль дискового пространства).

Если для создания установочного пакета использовался мастер, сценарий будет содержать целый ряд команд Install File (установка файла), каждая из которых соответствует операции копирования конкретного файла установочного пакета на клиентский компьютер. В заключительной части сценария, вероятнее всего, появится несколько команд Create Shortcut (создание значка) и Edit Registry (редактирование реестра), хотя, конечно, это зависит от типа устанавливаемого приложения.

Существует несколько способов добавить в сценарий дополнительные команды. Самый простой метод - "перетащить" их мышью с левой панели на правую, в нужный раздел сценария. Хотя Script Editor использует текстовый язык сценариев, работа с командами ведется с помощью диалоговых окон. При добавлении или изменении команды появляется диалоговое окно редактирования, включающее такие стандартные элементы управления, как флажки и раскрывающиеся меню.