Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы / Куликова Н.В., Петровская Е.Н. (ч.1,2)

.pdf
Скачиваний:
52
Добавлен:
11.06.2015
Размер:
2.62 Mб
Скачать

Примеры использования утилиты OBJXREF. Предполагает-

ся, что обрабатываемые файлы находятся в текущем каталоге на текущем дисководе, а библиотечные файлы – в каталоге \LIB.

Пример 1

C>OBJXREF \BORLANDC\lib\c0I test1 test2\BORLANDC\lib\cl.lib

В этом примере определены файлы TEST1.0BJ и TEST2.0BJ, начальный файл \BORLANDC\LIB\C0L.OBJ и библиотечный файл \BORLANOC\LIB\CL.LIB. Поскольку тип отчета не определен, то по умолчанию генерируется отчет о ссылках.

Пример 2

C>OBJXREF /RV /Ltest1.arf

Файл подсказки программы TLINK TEST1.ARF содержит командную строку, аналогичную строке в примере 1.

Файл TEST1.ARF содержит следующие данные:

\BORLANDC\lib\c0I test1 test2

test1.exe test1. Map

\BORLANDC\lib\cl

Поскольку задан параметр /RV, то для каждого из указанных

.OBJ и .LIB файлов утилита OBJXREF будет генерировать отчет каждого типа.

Пример 3

C>OBJXREF /F /RV \BORLANDC\lib\cs.lib

Этот пример сообщает обо всех модулях библиотечного файла CS.LIB. В этом примере отчеты будут сгенерированы для всех модулей из библиотеки CS.LIB утилиты OBJXREF.

Сообщения, выдаваемые утилитой OBJXREF. Утилита

OBJXREF генерирует два типа диагностических сообщений: со-

общения об ошибках и предупреждающие сообщения.

Сообщения об ошибках

Out of memory (выход за границы памяти)

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

101

ние работ. Для выполнения программы OBJXREF необходимо освободить память от резидентных программ.

Предупреждающие сообщения

WARNING: Unable to open input file <filename> (невозможно открыть входной файл <filename>)

Входной файл <filename> не найден или не может быть открыт. Утилита OBJXREF переходит к обработке следующего файла.

WARNING: Unknown option – <option>

(неизвестный параметр <option>)

Имя параметра <option> не распознано утилитой OBJXREF. Утилита игнорирует данный параметр.

WARNING: Unresolved symbol <symbol> in module <module>

(идентификатор с неудовлетворенными ссылками в модуле

<module>)

Общее имя <symbol> в модуле <module> не определено в любом из файлов .OBJ или .LIB. Утилита OBJXREF помечает эти идентификаторы как неопределенные, и на них имеются ссылки.

WARNING: Invalid file specification <filename> (недопустимая спецификация файла <filename>)

Некоторая часть имени файла <filename> неправильная. Утилита OBJXREF переходит к обработке следующего файла.

WARNING: No files matching <filename> (нет соответствующих файлов <filename>)

Файл ffff, приведенный в командной строке либо в файле подсказки, не найден, не может быть открыт. Утилита OBJXREF переходит к обработке следующего файла.

WARNING: Symbol<symbol>defined ln<module1>duplicated ln<modufe2> (идентификатор <symbol> определен в <module1>

и дублируется в <module2>)

Общее имя <symbol> определено в модулях <module1> и <module2>. Утилита OBJXREF игнорирует второе определение.

Литература

1. Описание утилиты OBJXREF (файл Public\Ksst2\ Apps\Bc\Doc\ util.doc).

102

РАЗДЕЛ 6. БАЗОВЫЕ ФУНКЦИИ ОС LINUX

LINUX – свободно распространяемая операционная система, первоначально была разработана Линусом Торвальдсом (Linus Torvalds) в Университете Хельсинки (Финляндия). LINUX был создан с помощью многих UNIX-программистов и энтузиастов из Internet, тех, кто имеет достаточно навыков и способностей развивать систему.

LINUX – 32-разрядная операционная система, спроектированная для работы на компьютерах с процессором Intel 80386 (и выше). С технической точки зрения LINUX – аналог UNIX, т.е. эта система обрабатывает стандартные команды UNIX и запускает UNIX-программы.

LINUX отличается от других операционных систем, таких как MS-DOS, OS/2, а также других реализаций UNIX-подобных систем для персональных компьютеров. LINUX может сосуществовать с другими операционнымисистемами натойжемашине.

1. Особенности LINUX

альтернативная для коммерческих операционных систем;

построена для Internet и сетей (SLACKWARE LINUX со-

держит все необходимое);

полностью открытая система (на прилагаемых CD-ROM находятся исходные тексты ОС SLACKWARE LINUX, можно внести свои изменения в ОС);

многозадачная операционная система;

многопользовательская ОС;

эффективная ОС (была построена для процессора 80386, использует возможности процессоров семейства Intel. SLACKWARE LINUX обеспечивает защиту памяти).

Системные характеристики.

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

LINUX – это полная многозадачная многопользовательская операционная система. Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполнять много программ.

103

LINUX достаточно хорошо совместима с рядом стандартов для UNIX на уровне исходных текстов, включая IEEE POSIX.1, System V и BSD. Большинство свободно распространяемых по сети Internet программ для UNIX может быть откомпилировано для LINUX практически без особых изменений. Все исходные тексты для LINUX, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства, распространяются свободно.

Другими специфическими внутренними чертами LINUX являются контроль работ по стандарту POSIX (используемый оболочками, такими как CSH и BASH), псевдотерминалы (pty) и поддержка национальных и стандартных клавиатур динамически загружаемыми драйверами клавиатур.

LINUX также поддерживает виртуальные консоли (virtual consoles), которые позволяют «переключать экраны» на консоли в текстовом режиме.

LINUX поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для LINUX. Реализована также файловая система MS-DOS, позволяющая прямо обращаться к файлам MS-DOS на жестком диске. Поддерживается также файловая система ISO 9660 CD-ROM для работы с дисками CD-ROM.

LINUX обеспечивает полный набор протоколов TCP/IP для сетевой работы. Он включает в себя драйверы устройств для многих популярных карт Ethernet, SLIP (Serial Line Internet Protocol, обеспечивающие доступ по TCP/IP при последова-

тельном соединении), PLIP (Parallel Line Internet Protocol), PPP (Point-to-Point Protocol), NFS (Network File System) и т.д.

Ядро LINUX создано с учетом специального защищенного режима для процессоров Intel 80386 и 80486; поддерживает загрузку только нужных страниц, т.е. с диска в память загружаются те сегменты программы, которые действительно используются. Возможно использование одной страницы, физически один раз загруженной впамять, несколькими выполняемыми программами.

Для увеличения объема доступной памяти LINUX осуществляет также разбиение диска на страницы, на диске может быть вы-

104

делено до 256 Мбайт пространства для свопинга (swap space).

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

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

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

Языки программирования

LINUX обеспечивает полную UNIX-среду программирования, включая все стандартные библиотеки, программный инструментарий, компиляторы, отладчики, которые встречаются в других UNIX-системах. В мире UNIX большинство приложений и системных программ делаются на С или С++. Стандартным компилятором для С и С++ в LINUX служит GNU gcc, который является современным компилятором, поддерживающим много опций. Он способен компилировать С++ так же, как Objective-C, другие объ- ектно-ориентированные диалекты С.

Кроме С и С++ многие другие компиляторы и интерпретаторы были перенесены в LINUX, такие как Smalltalk, FORTRAN, PASCAL, LISP, Scheme и Ada. Cуществуют различные ассемблеры для написания кодов для защищенного режима80386.

105

Загрузка Linux

Если на компьютере установлен Linux, то после включения и самотестирования ПК не происходит автоматической загрузки операционной системы (как это происходит с Dos и Windows), а появляется приглашение загрузчика LILO (LInux LOader).

LILO boot:_

В ответ на это приглашение надо набрать, какую операционную систему Вы хотите загрузить, и нажать <Enter>. Название – это короткое слово, обычно linux для Linux, и dos для Dos/Windows. Список установленных ОС можно получить, нажав <Tab>. Обычно Lilo настроен так, что пользователь не вводит команду, через некоторое время (в RedHat – 5 сек.) загрузить ОС «по умолчанию» (обычно таковой является Linux).

Даже если Linux – единственная ОС, установленная на компьютере, все равно при загрузке появляется приглашение Lilo, т. к. это позволяет передать ядру некоторые параметры (например, «не используй второй ide-контроллер»).

Если приглашение появилось не полностью, например, только «LI» или «LIL», значит с компьютером что-то не в порядке (обычно это следствие неправильной установки или переконфигурации системы).

Вход в систему

После ввода в приглашении Lilo слова «linux» будет произведена загрузка системы. При этом на экран будет выводиться весьма подробная информация о том, что происходит – какая обнаружена аппаратура, какие запускаются системные сервисы и т.д.

eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xd400, 00:60:08:6f:fa:9e, IRQ 12

8K word-wide RAM 3:5 Rx:Tx split, autoselect/10baseT interface.

Enabling bus-master transmits and wholeframe receives.

search inp.nsk.su

Starting portmapper: portmap Mounting remote filesystems.

Starting system loggers: syslogd klogd

106

Starting at daemon: atd Starting cron daemon: crond Starting INET services: inetd Starting sshd: ssh

Starting lpd: lpd

Starting NFS services: rpc.mountd rpc.nfsd Starting amd: amd

Loading keymap: Loading /usr/lib/kbd/keymaps/i386/qwerty/ruok.map.gz

Loading symbolic screen map from file /usr/lib/kbd/consoletrans/koi2alt

Starting sendmail: sendmail Starting gpm mouse services: gpm Starting sound configuration: sound

Red Hat Linux release 5.2 (Apollo) Kernel 2.0.36 on an i586

bobby login

В конце концов, появится приглашение «login:» (на картинке «bobby» – это название компьютера). В ответ на него надо ввести свое login-имя (например, «ivanov») и нажать <Enter>. Затем появится приглашение ввести пароль («Password:»). При вводе пароля на экране ничего не отображается (даже «*»). Если пароль введен правильно, то Вы попадете в командную строку Unix, иначе – появится сообщение «Login incorrect» и затем опять приглашение «login:».

Red Hat Linux release 5.2 (Apollo) Kernel 2.0.36 on an i586

bobby login: ivanov Password:

Last login: Fri Feb 12 11:57:30 on tty1 bobby:~% _

«bobby:~%» – это приглашение shell (интерпретатора командной строки Unix). Здесь «bobby» – имя компьютера, с которым вы работаете, а за ним через двоеточие идет имя текущей директории, в данном случае – «~», что обозначает домашнюю директорию.

107

Домашняя директория

В отличие от однопользовательских систем, таких как Dos/Windows, пользователь не может писать свои файлы в произвольное место на диске. Каждому пользователю дается так называемая домашняя директория (home directory). По умолчанию только сам пользователь может писать в нее. Именно в эту директорию пользователь и попадает сразу после входа в систему.

Как поменять свой пароль

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

bobby:~% passwd

Changing password for ivanov (current) UNIX password:

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

bobby:~% _

На то, каким должен быть пароль, накладываются определенные ограничения – в разных Unix'ах они варьируются, но общие правила таковы:

длина – от 6 до 8 символов;

он должен содержать заглавные и строчные буквы или буквы и небуквенные символы;

он не должен быть основан на словарном слове.

Кроме того, при смене новый пароль должен отличаться от старого, а Linux требует даже, чтобы пароль не был похож на старый (идеальный пароль – случайное сочетание букв и небукв, но его очень сложно запомнить).

Виртуальные консоли и запуск X

Втот момент, когда на экране появляется приглашение «login:», система уже полностью функциональна, даже без графической оболочки.

Вэтот момент уже доступны многопользовательские возможности Unix, в том числе и сетевые (например, вход по telnet). А в

108

текстовом режиме Linux позволяет использовать так называемые виртуальные консоли, переключение между которыми произво-

дится комбинациями клавиш <Alt>+<F1>, <Alt>+<F2> ...

<Alt>+<F6>. Каждая виртуальная консоль – как отдельный терминал, с тем лишь отличием, что нельзя взаимодействовать с ними всеми одновременно, атолько по очереди.

Для запуска же графической системы X-Window (сокращенно просто «X») надо набрать команду startx. Для выхода из X следует нажать левую кнопку мыши на любом свободном месте экрана, в появившемся меню выбрать пункт «Exit Fvwm» и за-

тем «Yes, Really Quit».

Каталоги в LINUX

/ – корневой каталог (фактически содержит программу LINUX, а также подкаталоги);

/home – каталог, содержащий начальные каталоги пользователей (вразныхсистемах UNIX этоможетбытькаталог/usr или/u);

/bin – каталог, содержащий многие из основных программ

LINUX;

/usr – каталог, содержащий каталоги, предназначенные для пользователей (docs – документация, включая полезную информацию о системе LINUX; man – справочное руководство LINUX); /usr/bin – каталог, содержащий ориентированные на пользо-

вателя программы LINUX;

/usr/spool – каталог, содержащий несколько подкаталогов: mail содержит почтовые файлы; spool хранит файлы для печати; /dev – каталог, содержащий устройства, т.е. специальные файлы, служащие шлюзами для физических компонентов компьютера (при копировании в /dev/fd0 данные отправляются на дискету; вся информация, посланная в /dev/null исчезает – реа-

лизация мусорного ведра);

/usr/sbin – каталог, содержащий файлы для системного администрирования;

/sbin – каталог, содержащий системные файлы, которые обычно автоматически запускаются системой LINUX;

/etc – каталог и его подкаталоги, содержащие многие файлы конфигурации LINUX (обычно текстовые файлы).

109

Файловая система ОС Unix

Файловая система в Unix организована в виде единого дерева директорий. Никаких букв дисков (a:, c:) здесь нет, а если используется несколько физических дисков (например, первый жесткий диск, второй, CD-ROM и т.д.), то они представляются отдельными ветвями на общем дереве.

Директории разделяются косой чертой «/» (а не обратной, как в Dos), например, «/home/inpunix/ivanov/» – поддиректория

«ivanov» в директории «inpunix» директории «home». Самая верхняя директория («корневая») называется «/».

Какие разрешаются имена:

Имя файла (и директории) может содержать практически любые символы, включая пробелы (и даже управляющие символы, типа перевода строки, если удастся их ввести).

Примеры: list.txt

A file with spaces.txt

Сводный отчет по трудозатратам за 1998 год.tex

Manual [part 1 of 3].txt

Символ «.» не является особенным, и в имени может быть любое их количество, а может и не быть вовсе. Так, к примеру,

file.with.many.dots short file_without_extension

.......

являются вполне нормальными именами.

Заглавные и маленькие буквы различаются. Например: report.txt

REPORT.TXT

Report.txt

RePorT.tXt

это четыре разных имени.

В отличие от Dos/Windows, нет зарезервированных имен, таких как con, com1 и т.д. Вместо них есть сответствующие файлы устройств в директории /dev:

110