10 1. ОБЩИЕ СВЕДЕНИЯ О СИСТЕМЕ UNIX 1.1. Основные функции и компоненты системы UNIX Операционная система UNIX - это набор программ, который управляет компьютером, осуществляет связь между вами и компьютером и обеспечивает вас инструментальными средствами, чтобы помочь вам выполнить вашу работу. Разработанная, чтобы обеспечить легкость, эффективность и гибкость программного обеспечения, система UNIX имеет несколько полезных функций: - основная цель системы - это выполнять широкий спектр заданий и программ; - интерактивное окружение, которое позволяет вам связываться напрямую с компьютером и получать немедленно ответы на ваши запросы и сообщения; - многопользовательское окружение, которое позволяет вам разделять ресурсы компьютера с другими пользователями без уменьшения производительности. Этот метод называется разделением времени. Система UNIX взаимодействует с пользователями поочередно, но так быстро, что кажется, что взаимодействует со всеми пользователями одновременно; - многозадачное окружение, которое позволяет вам выполнять более одного задания в одно и тоже время. Система UNIX имеет 4 основных компонента: ядро - это программа, которая образует ядро операционной системы; она координирует внутренние функции компьютера ( такие как размещение системных ресурсов). Ядро работает невидимо для вас; shell - это программа, которая осуществляет связь между вами и ядром, интерпретируя и выполняя ваши команды. Так как она читает ваш ввод и посылает вам сообщения, то описывается как интерактивная; commands - это имена программ, которые компьютер должен выполнить. Пакеты программ называются инструментальными средствами. Система UNIX обеспечивает инструментальными средствами для таких заданий как создание и изменение текста, написание программ, развитие инструментария программного обеспечения, обмен информацией с другими посредством компьютера; file system - файловая система - это набор всех файлов, возможных для вашего компьютера. Она помогает вам легко сохранять и отыскивать информацию. 1.2. Ядро Ядро контролирует доступ к компьютеру, управляет памятью компьютера, обслуживает файловую систему и распределяет ресурсы компьютера среди пользователей. На рис. 1 приведено функциональное представление ядра. 11 Ядро \ Распределение / \ ресурсов / \ системы / \ / Управление \ / Обслуживание памятью \/ файловой / \ системы / \ / Контроль \ / доступа \ / к компьютеру \ Рис. 1 1.3. shell shell - это программа, которая позволяет вам связываться с операционной системой. shell считывает команды, которые вы вводите, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу или обеспечение вывода. shell также является мощным языком программирования, не похожим на язык программировани Си, который опеспечивает условное выполнение и управление потоками данных. 1.4. Команды Программа - это набор инструкций для компьютера. Программы, которые могут быть выполнены компьютером без предварительной трансляции, называются исполняемыми программами или командами. Как обычному пользователю системы UNIX вам доступно множество стандартных программ и инструментальных средств. Если вы используете систему UNIX для написания программ и развития программного обеспечения, то вы также можете задействовать системные вызовы, подпрограммы и другие инструментальные средства. И, конечно, любая написанная вами программа будет в вашем распоряжении. Этот раздел знакомит вас со многими программами и инструментальными средствами системы UNIX, которые вы будете использовать достаточно часто. Если вам будет необходима более полная информация по каким-либо стандартным программам, обратитесь к "Руководству программиста". 1.4.1. Что делают команды Внешний круг системы UNIX образуют программы и инструментальные средства системы, разделенные на категории функционально. Эти функции включают: программное окружение - несколько программ системы UNIX, устанавливающих дружественное программное окружение, 12 обеспечивающее интерфейсы между системой и языками программирования и использование обслуживающих программ; обработка текстов - система обеспечивает программы, такие как строковый и экранный редакторы, для создания и изменения текстов, орфографическую программу проверки для обнаружения ошибок орфографии, и необязательный форматер текста для создания высококачественных копий, которые подходят для публикаций; организация информации - система предоставляет много программ, которые позволяют вам создавать, организовывать и удалять файлы и каталоги; обслуживающие программы - инструментальные средства, создающие графику и выполняющие вычисления; электронная связь - несколько программ (например, mail) предоставляют вам возможность передавать информацию другим пользователям и в другие системы UNIX. 1.4.2. Как выполнять команды Чтобы ваш запрос был понятен системе UNIX вы должны ввести каждую команду в корректном формате или синтаксисе командной строки. Этот синтаксис определяет порядок, в котором вы вводите компоненты командной строки. И вы должны расположить все составные части командной строки в требуемом синтаксисом порядке, иначе shell не сможет интерпретировать ваш запрос. Пример синтаксиса командной строки: command option(s) argument(s)Для каждой командной строки системы UNIX вы должны ввести как минимум два компонента: имя команды и клавишу . (Обозначение используется в документации как инструкция для нажатия клавиши RETURN). Командная строка может также содержать ключи и аргументы. В указанном примере синтаксиса командной строки: command - это имя программы, которую вы хотите выполнить; option - ключи, которые указывают как запустить команду; argument - указывает на данные, которые эта команда обрабатывает, обычно это имя каталога или файла. В командной строке, которая включает ключи и/или аргументы, каждый компонент отделяется друг от друга по крайней мере одним пробелом. Если аргумент содержит пробел, его надо заключить в двойные кавычки. Например, если аргумент sample 1, то вы должны указать его в командной строке как "sample 1". Если вы позабудете поставить двойные кавычки, то shell будет интерпретировать sample и 1 как два отдельных аргумента. Некоторые команды позволяют вам указывать несколько и/или аргументов в одной командной строке. Например: Пример. ls -l -i file1 file2 file3 команда ключи аргументы В этом примере команда ls использует два ключа -l и -i и три аргумента file1, file2 и file3. Ключ -l обеспечивает информацию в длинном формате, включая режим, владельца и размер, а ключ -i печатает номер inode. Система UNIX обычно позволяет вам группировать ключи, например -li, и выводить их в любом порядке. Этого нельзя делать с аргументами. 13 Невзирая на разное количество компонентов, не забудьте в конце командной строки нажать клавишу . Чтобы выполнить команду, введите командную строку, когда на экране появится подсказка (например, символ #). Shell рассмотрит вашу команду как ввод, найдет один или более каталогов, чтобы вызвать программу, которую вы указали, и перенаправит ваш запрос вместе с затребованными программами ядру. Ядро последует инструкциям в программе и выполнит команду, которую вы запрашивали. После завершения выполнения программы, shell сигнализирует, что готов выполнить следующую команду, напечатав подсказку. 1.5. Файловая система Файловая система является краеугольным камнем операционной системы UNIX. Она обеспечивает логический метод организации, восстановления и управления информацией. Файловая система имеет иерархическую структуру. Файл, который является основной единицей системы UNIX, может быть: обыкновенным файлом, справочником, специальным файлом или символическим каналом связи. 1.5.1. Обыкновенные файлы Обыкновенные файлы являются набором символов. Обыкновенные файлы используются для хранения любой информации. Они могут содержать тексты для писем или отчетов, коды программ, которые вы написали, либо команды для запуска ваших программ. Однажды создав обыкновенный файл вы можете добавить нужный материал в него, удалить материал из него, либо удалить файл целиком. 1.5.2. Справочники Справочники являются супер-файлами, которые могут содержать файлы или другие справочники. Обычно файлы, содержащиеся в них, устанавливают отношения каким-либо способом. Например, справочник, названный sales может хранить файлы, содержащие цифры ежемесячных продаж, названные jan, feb, mar, и т.д. Вы можете создать каталоги, добавить или удалить файлы из них или удалить каталоги. Все справочники, которые вы создаете, будут размещены в вашем собственном справочнике. Этот справочник назначается вам системой во время входа в систему. Никто кроме привилегированных пользователей не может читать или записывать файлы в этот справочник без вашего разрешения и вы определяете структуру этого справочника. Система UNIX также содержит несколько справочников для собственного использования. Структура этих справочников аналогична во всех системах UNIX. Этот справочник, включающий в себя несколько системных справочников, размещается непосредственно под справочником root. Справочник root (обозначенный /) является исходным в файловой структуре UNIX. Все справочники и файлы иерархически располагаются ниже. 14 1.5.3. Специальные файлы Специальные файлы соответствуют физическим устройствам, таким как терминал, дисковое устройство, магнитная лента или канал связи. Ситема читает и записывает из/в специальные файлы также как и в обыкновенные файлы. Однако запросы системы на чтение и запись не приводят в действие нормальный механизм доступа к файлу. Вместо этого они активизируют драйвер устройства, связанный с файлом, приводя, возможно, в действие головки диска или магнитной ленты. 1.5.4. Символические каналы связи Символические каналы связи - это файлы, которые указывают на другие файлы. 1.6. Расположение системы Некоторые операционные системы требуют от вас определить тип файла и использовать его определенным способом. От этого будет зависеть то, как будут файлы сохраняться, т.к. файлы могут быть последовательными, двоичными или произвольной выборки Для системы UNIX все файлы одинаковы. Это делает файловую структуру UNIX легкой в использовании. Например, вам нет необходимости указывать требования к памяти для ваших файлов, т.к. система автоматически это сделает для вас. Или если вам или написанной вами программе необходим доступ к определенному устройству (например, принтеру) вы указываете устройство также как любой из ваших файлов. В системе UNIX существует только один интерейс для всего вашего ввода и вывода для вас; это упрощает ваше взаимодействие с системой. Справочник root содержит несколько важных системных справочников: /stand - содержит загрузочные программы и файлы данных, используемые в процессе загрузки; /sbin - содержит основные исполняемые программы, используемые в процессе загрузки и при восстановлении системы; /dev - содержит специальные файлы, которые представляют периферийные устройства (например, консоль, построчно-печатное устройство, терминалы пользователя и диски); /etc - содержит машинно-зависимые файлы конфигурации и базы данных организации системы; /home - корневой справочник поддерева для справочника пользователя; /tmp - содержит временные файлы; /var - корневой справочник поддерева для изменяющихся файлов (например, файлы log); /usr - содержит другие справочники, включая lib и bin. Справочники и файлы, созданные вами, охватывают часть файловой системы, которая контролируется вами. Другая часть файловой системы обслуживается операционной системой: /sbin, /dev, /tmp и /usr. В этом разделе вы познакомились с основными принципами операционной системы UNIX. Следующие разделы помогут 15 применить эти принципы. 1.7. Принятые соглашения Следующие соглашения используются в данном руководстве: < > - ввод, который не появляется на экране (например, пароль, табуляция, RETURN) в тексте приводится в угловых скобках; <^char> - управляющие символы приводятся тоже в угловых скобках, т.к. они не появляются на экране во время ввода. Символ ^ означает управляющую клавишу (обычно она называется CTRL). Управляющую клавишу и символ char необходимо нажимать одновременно; [] - ключи и аргументы команды, которые являются необязательными, заключаются в квадратные скобки; | - вертикальная черта разделяет необязательные аргументы, из которых вы должны выбрать один. Например, когда командная строка имеет следующий формат: command [arg1|arg2] вы можете выбрать либо arg1 либо arg2, когда выдаете команду; ... - многоточие после аргумента означает, что более чем один аргумент может быть использован в одной командной строке; - стрелка на экране представляет курсор. В примерах команд знак $ используется как подсказка интерпретатора команд shell. Какой бы символ не использовался в качестве подсказки, имейте в виду, что этот символ выдается на экран системой и его выводить не надо. В документации этот символ иногда будет присутствовать в начале командной строки. Во всех разделах приведены примеры, в которых показано, как выглядят экраны терминалов, когда вы взаимодействуете с системой UNIX. Эти примеры показывают как пользоваться редакторами системы UNIX, писать короткие программы и выполнять команды. Ввод (символы, вводимые вами) и вывод (символы печатаемые системой UNIX) приведены на этих экранах в соответствии с соглашениями, приведенными выше.