Московский физико-технический институт
Опубликован: 16.09.2004 | Доступ: свободный | Студентов: 7857 / 1654 | Оценка: 4.44 / 4.28 | Длительность: 15:33:00
Лекция 1:

Введение в курс практических занятий. Знакомство с операционной системой UNIX

Лекция 1: 1234567 || Лекция 2 >
Аннотация: Введение в курс практических занятий. Краткая история операционной системы UNIX, ее структура. Системные вызовы и библиотека libc. Понятия login и password. Упрощенное понятие об устройстве файловой системы в UNIX. Полные имена файлов. Понятие о текущей директории. Команда pwd. Относительные имена файлов. Домашняя директория пользователя и ее определение. Команда man – универсальный справочник. Команды cd – смены текущей директории и ls – просмотра состава директории. Команда cat и создание файла. Перенаправление ввода и вывода. Простейшие команды для работы с файлами – cp, rm, mkdir, mv. История редактирования файлов – ed, vi. Система Midnight Commander – mc. Встроенный mc редактор и редактор joe. Пользователь и группа. Команды chown и chgrp. Права доступа к файлу. Команда ls с опциями -al. Использование команд chmod и umask. Системные вызовы getuid и getgid. Компиляция программ на языке C в UNIX и запуск их на счет.
Ключевые слова: Unix, ПО, опыт, цикла, информатика, архитектура, представление, работ, операционная система, Windows, разбиение, системный вызов, параметр, ядро, system, BSD, программа, доступ, ANSI, стандартная библиотека, интерфейс, функция, fread, значение, переменная errno, функция perror, многопользовательская операционная система, login, password, системный администратор, пользователь, пароль, оболочка, enter, команда, файл, очередь, Директория, исполняемый код, POSIX, апостроф, пробел, обратный, полное имя файла, путь, запись, текущая директория, относительное имя файла, текущий каталог, домашняя директория, информация, manual, команда man, деление, разделы, команда cd, команда ls, список, команда cat, вывод, concatenate, входные данные, время выполнения, стандартный ввод, перенаправление потока, команда mkdir, команда cp, копирование, шаблон, команда rm, регулярный файл, опция, операции, команда mv, сочетания, DOS, FAR, идентификатор пользователя, UID, GID, команда chown, группа, хозяин файла, команда chgrp, права доступа, чтение файла, read, Write, исполнение, execute, право доступа, права, тип файла, команда chmod, маска создания файлов текущего процесса, команда umask, системный контекст, идентификатор группы пользователей, системный вызов getuid, системный вызов getgid, компилятор, исполняемый файл

Введение в курс практических занятий

Настоящий курс практических занятий является одной из первых известных авторам попыток систематически проиллюстрировать лекционный курс "Основы операционных систем" на примере конкретной операционной системы, а именно – операционной системы UNIX.

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

Семестровый курс "Основы операционных систем" является третьим по счету курсом цикла "Информатика", которому предшествуют курсы "Алгоритмы и алгоритмические языки" и "Архитектура ЭВМ и язык ассемблера". Предполагается, что к началу практических занятий студенты умеют программировать на языке С (с использованием функций стандартной библиотеки для работы с файлами и строками) и имеют представление о внутреннем устройстве ЭВМ.

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

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

В целом практический курс включает в себя 16 занятий, одно из которых в середине семестра – между семинарами 9 и 10-11 – посвящено проведению контрольной работы по материалам лекций. Некоторым темам выделено по два занятия, и соответствующие семинары имеют сдвоенные номера. Естественно, разбиение тем на занятия является достаточно условным, желательно лишь, чтобы они непосредственно следовали за лекциями, на которых основываются.

Далее мы переходим к изложению материала семинарско-практического курса.

По своему содержанию материал текущих семинаров 1–2 является наиболее критичным по отношению к используемому виду операционной системы и политике администрирования. Поэтому многие вопросы будут содержать ссылку "узнайте у своего системного администратора". Прежде чем приступать к занятиям, необходимо обеспечить наличие пользовательских account'ов для обучающихся. "Узнайте у своего системного администратора", как это сделать.

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

Если какой-либо параметр у команды оболочки является необязательным, он будет указываться в квадратных скобках, например, [who]. В случае, когда возможен выбор только одного из нескольких возможных вариантов параметров, варианты будут перечисляться в фигурных скобках и разделяться вертикальной чертой, например, {+ | - | =}.

Краткая история операционной системы UNIX, ее структура

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

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

Свой нынешний вид эта операционная система обрела в результате длительной эволюции UNIX-образных операционных систем. История развития UNIX подробно освещена практически во всей литературе, посвященной вычислительной технике. Как правило, это во многом один и тот же текст, с небольшими изменениями кочующий из одного издания в другое, и нам не хотелось бы повторяться. Мы просто сошлемся на достаточно подробное изложение в книге [ 23 ] или на оригинальную работу одного из родоначальников UNIX [ 7 ] . Для нас наиболее важным во всей этой истории является существование двух стержневых линий эволюции – линии System V и линии BSD, поскольку в процессе обучения мы будем сталкиваться с различиями в их реализации.

Лекция 1: 1234567 || Лекция 2 >
лия логовина
лия логовина

организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2.

Макар Оганесов
Макар Оганесов