WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 |
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им.

И.М.ГУБКИНА Г.А. Карапетов, Ф.М. Барс UNIX. Основы работы в системе.

Москва-2002г.

1 МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им.

И.М.ГУБКИНА Кафедра разведочной геофизики и компьютерных систем Г.А. Карапетов, Ф.М. Барс UNIX. Основы работы в системе.

Учебное пособие для студентов специальности 080400 “Геофизические методы поисков и разведки месторождений полезных ископаемых” специализации “Разведочная геофизика ” и “Компьютерные системы и технологии” (индекс ГФ).

Москва-2002г.

2 УДК 550.83 Г.А. Карапетов, Ф.М. Барс. UNIX. Основы работы в системе. Учебное пособие к практическим занятиям по курсу “Вычислительная математика и программирование”. М., РГУ нефти и газа им. И.М. Губкина, 2002. - с. 29.

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

Пособие предназначено для студентов специальности специализаций “Разведочная геофизика " и “Компьютерные системы и технологии”. Оно также может оказаться полезным для студентов геологогеофизических специальностей и специальностей связанных с разработкой месторождений, предполагающих специализироваться в области создания постоянно действующих моделей месторождений.

Рецензент – кандидат технических наук, Варов Е.Б.

© Российский Государственный Университет нефти и газа им. И.М. Губкина, 2002г.

Введение.

Система UNIX имеет более чем тридцатилетнюю историю. Множество профессионалов вложили в ее разработку свой труд, и сегодня использование этой системы стало практически повсеместно. Уместно отметить, что возникновение фонда бесплатного математического обеспечения (OSF- Open Software Foundation) связано именно с этой системой. Мощным толчком для развития UNIX послужил проект GNU и разработка версий UNIX для персональных ЭВМ: Linux и FreeBSD.

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

В настоящее время существуют несколько десятков различных операционных систем, объединенных под названием UNIX. Имеются два основных направления System V (AT&T) и BSD (Беркли), различающихся с точки зрения организации и администрирования, хотя взаимное влияние этих направлений порой затрудняет однозначную классификацию отдельных версий систем. Несмотря на многообразие версий, основой всего семейства UNIX является принципиально одинаковая архитектура и стандартизованный интерфейс, что позволяет без особого труда переносить программы и работать на других версиях.

Среди коммерческих версий можно выделить AIX (IBM), Digital Unix (DEC), HP-UX (Hewlett Packard), IRIX (SGI), Solaris (SUN Microsystems).

Такие системы функционируют на мощных рабочих станциях, однако, мощность персональных компьютеров позволяет использовать их как в качестве X-терминалов, так и в качестве самостоятельных систем (stand along).

Учитывая конкретную аппаратную конфигурацию вычислительных средств и набор промышленных лицензионных продуктов, которыми располагает кафедра, в качестве базовых операционных системам применяются Linux (для PC) и Solaris (для SUN). В качестве языка программирования изучается C с объектами прикладного программного интерфейса Motif и Open Look. Для работы используются программные продукты проекта GNU (Gnu’s Not Unix), а также специализированные геофизические программные продукты компаний Schlumberger (IESX) и Paradigm Geophysical (Focus и GeoDepth).

Операционная система UNIX.

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

управление процессами, распределение системных ресурсов, операции ввода/вывода и т.д. Такая структура обеспечивает гибкость при инсталляции и конфигурировании системы (рис.1).

С точки зрения пользователя в операционной системе UNIX существует два основных типа объектов: файлы и процессы. Все программы (в том числе ядро, модули) и данные хранятся в файлах, работа с периферийными устройствами осуществляется с помощью операций записи/чтения в специальные файлы, механизм защиты данных реализован через права доступа к файлам, более того, доступ к памяти осуществляется через единый интерфейс файловой системы.



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

Файловая система.

В UNIX, как и во многих современных операционных системах, файлы организованы в виде древовидной иерархической структуры, называемой файловой системой (рис. 2). Корневой каталог (root), обозначаемый /,является отправной точкой файловой системы. Каждый промежуточный узел файловой системы является каталогом. Конечные вершины ветвей дерева являются либо пустыми каталогами, либо файлами. Каталог считается пустым, если он не содержит никаких других файлов, кроме ссылок на текущий и родительский каталоги. Любой файл имеет имя, определяющее его положение в древовидной структуре. Полное (абсолютное) имя файла состоит из собственно имени файла и пути (path), представляющего собой последовательность ветвей (каталогов), определяющих его положение на дереве, начиная с корневого каталога, например:

/usr/openwin/bin/textedit Относительное путевое имя задается относительно текущего каталога, полное путевое имя который можно определить, используя команду $pwd /usr/openwin при этом относительное имя того же файла будет выглядеть bin/textedit.

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

обычный файл (regular), представляющий текстовую или двоичную информацию, каталог (directory), файл, содержащий имена находящихся в нем файлов и указатели на соответствующие индексные дескрипторы, специальный файл (device), обеспечивающий доступ к внешнему устройству, связь (link), специальный тип элемента каталога, позволяющий одному физическому файлу иметь несколько имен, именованный канал (FIFO), файл, предназначенный для связи между различными процессами, сокет (socket), коммуникационный порт, предназначенный для связи между различными процессами.

Поскольку UNIX является многопользовательской системой, в нем предусмотрен мощный механизм защиты данных от несанкционированного доступа, который определяется правами доступа (permissions). Имеется пользователь, обладающий неограниченными полномочиями – администратор системы. Для остальных пользователей существуют три основных класса доступа: для владельца файла (user), членов группы (group) и прочих (other) пользователей. Под группой понимаются пользователи, совместно работающие над какой-либо задачей или проектом.

Для каждого из них предусмотрены три типа прав: на чтение (read), на запись (write) и на выполнение (execute).

Список прав доступа можно получить с помощью команды $ls –l drwx------ 34 user1 staff 4096 feb 21 18:23.

drwxr-xr-x 8 nobody staff 4096 feb 6 2001..

drwxr-xr-x 2 user1 staff 4096 jan 26 2000 include drwxr-xr-x 2 user1 staff 4096 mar 23 2000 lib -rw-r--r-- 1 user1 staff 2016 mar 23 18:23 lsal.txt lrwxrwxrwx 1 user1 staff 4096 feb 25 2000 libfa -rwxr-xr-x 1 user1 staff 6345 feb 21 18:23 furie.c Права доступа могут быть изменены либо его владельцем, либо администратором системы (root). Для изменения прав доступа используется команда chmod, имеющая следующий формат chmod [ugoa][+-=][rwx] file где u владелец-пользователь, g пользователи группы, o прочие пользователи, а все пользователи, + добавить, - удалить, = присвоить, rwx соответственно право на чтение, запись и выполнение.

Например, $chmod a+w furie.c позволяет разрешить запись в файл furie.c всем пользователям.

$chmod o-w+r,ug=w furie.c позволяет удалить разрешение на запись и добавить разрешение на чтение для прочих пользователей и установить разрешение на запись для собственника и группы.

Возможен вариант установки прав доступа непосредственно в виде восьмеричного кода, например $chmod 754 furie.c означающий предоставление всех прав собственнику, на чтение и исполнение для группы и на чтение для всех прочих.

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

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





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

Команды работы с файлами и каталогами Для создания файла с заданным именем может быть использована любая программа создающая какие-либо выходные данные. В частности, для копирования файла предназначена команда cp (copy) $cp исходный файл целевой файл В качестве целевого файла может быть и каталог. В этом случае файл с тем же именем копируется в целевой каталог.

Для переименования файла используется команда mv (move)., имеющая вид $mv исходный файл целевой файл, которая работает быстрее операции копирования, поскольку лишь меняет элемент каталога.

Для удаления файла используется команда rm (remove) $rm целевой файл при этом следует отметить, что обратное восстановление файла невозможно никакими средствами.

Для создания каталога предназначена команда mkdir (make directory) $mkdir имя каталога При этом, каталог может быть создан лишь внутри другого, если в него разрешена запись данному пользователю. Для удаления пустого каталога используется команда rmdir (remove directory) $rmdir имя каталога Если каталог не пуст, то выдается сообщение об ошибке.

Такую операцию для непустого каталога можно выполнить с помощью команды rm с флагом рекурсии $rm –r целевой каталог следует отметить, что в данном случае удаляется вся часть дерева файловой системы, содержащаяся в данном каталоге. При использовании данной команды следует проявлять большую осторожность и осмотрительность, чтобы не потерять навсегда результаты многодневной работы, поскольку в UNIX восстановление данных является принципиально невозможным, даже для администратора системы (здесь не имеется в виду резервное копирование – backup).

Аналогично, операцию копирования содержимого каталога вместе с вложенными подкаталогами можно провести, используя команду cp с флагом –r $cp исходный каталог целевой каталог, при этом исходный каталог должен быть открыт для чтения и просмотра, а целевой каталог для записи.

Процессы.

Понятие процесса в операционной системе UNIX играет ключевую роль.

Любая программа, запущенная в операционной системе, имеет свою среду выполнения, т.е. различные системные ресурсы: услуги ядра операционной системы, ресурсы памяти, возможность доступа к внешним устройствам, стек и т.д. Таким образом, сама исполняемая программа в среде выполнения называется процессом. Однако не следует отождествлять программу и процесс, поскольку одна программа во время исполнения может порождать несколько процессов. В системе одновременно функционируют несколько процессов, которые можно просмотреть с помощью команды $ps –e PID TTY TIME CMD 0 - 8:30 swapper 1 - 8:30 init....................

372 pts/1 8:32 xterm 375 pts/1 8:32 mwm 378 pts/1 8:32 furie 402 pts/1 8:32 ps Каждый процесс при запуске получает свой порядковый номер, который может быть использован для управления его состоянием. Операционная система UNIX обеспечивает иллюзию одновременного выполнения всех активных процессов, эффективно распределяя аппаратные ресурсы в соответствии с приоритетом процессов. Во время существования ( жизненного цикла) процесс может находиться в одном из нескольких состояний, переходя из одного в другое в зависимости от событий, происходящих в системе.

Такими состояниями процесса могут быть:

создан (с помощью fork), но еще не готов к запуску, не выполняется, но готов к запуску (runnable), выполняется в режиме задачи (user), т.е. обычные инструкции программы, выполняется в режиме ядра (kernel), т.е. инструкции операционной системы, находится в состоянии ожидания (sleep) из-за недоступного в данный момент ресурса или из-за переключения контекста на процесс большего приоритета, находится в состоянии зомби (defunct), когда процесс закончил свое существование (exit), но еще имеются следы его существования в системе.

Программа в процессе выполнения может “зависнуть”, т.е. прекратить реагировать на внешние воздействия или войти в бесконечный цикл. Это достаточно типичная ситуация, особенно на этапе разработке программы. В такой ситуации необходимо с помощью команды ps определить номер соответствующего процесса и исполнить команду kill:

$kill –9 378.

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

Пользователи системы Прежде чем начать работу в системе, пользователь должен получить свой бюджет (account) в ней. Иными словами, стать зарегистрированным объектом, обладающим определенными правами и, как правило, имеющим свой (домашний) каталог. Каждый пользователь имеет свое уникальное регистрационное имя (login name) и пароль для входа в систему. Вся информация о пользователях хранится в системных файлах /etc/passwd, /etc/shadow, /etc/group, к которым ограничен доступ. Создание нового пользователя и наделение его полномочиями является прерогативой администратора системы.

Pages:     || 2 | 3 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.