Стандартный командный интерпретатор



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

 

 

Салимоненко Д.А.

 

Методические указания по курсу:

«Операционные системы»

Часть 1

 

Уфа 2014

Салимоненко Д.А. Реализация консольной версии системной оболочки: Методические указания /Изд-во Башкирск. ун-та.-Уфа, 2014.-76с.

 

Методические указания по реализации консольной версии системной оболочки, в первую очередь, предназначены для студентов кафедры «Программирование и Экономическая Информатика» Башкирского Государственного Университета. Излагаются ключевые аспекты создания программы для работы с файлами и каталогами, т.е. системной оболочки. Рассматривается алгоритмизация таких команд, как создание, копирование, переименование, удаление файлов и каталогов, а также проверка их свойств и значений.. Изложение методически продумано и рассчитано на использование при программирование на языке СИ++ под Linux.

Для адекватной работы с Методическими указаниями необходимы, по крайней мере, начальные познания в области программирования на языке СИ++. Но, они будут полезно и для тех, кто начинает работу с Си++ «с нуля». Студенты, уже имеющие достаточный опыт программирования на Си++, могут при изучении настоящих указаний пропустить части 1-3, а перейти сразу к части 4, где показывается, как создать простую консольную версию системной оболочки.

Издание 2-е. Исправлены замеченные опечатки и неточности.

 

Библ. 3 наимен.

 

 

Печатается по решению кафедры программирования и экономической информатики БашГУ.

 

 

Ó Башкирский университет, 2014 г.

ОГЛАВЛЕНИЕ

Введение..................................................................................................4

1. Вводная часть. Мультифайловое программирование, сборка программы                                                                          9

1.1. Как компилировать программу                                     9

1.2. Мультифайловое программирование                         12

1.3. Автоматическая сборка                                               15

1.4. Модель КИС                                                                 19

Библиотеки                                                                      23

2.1. Введение в библиотеки                                                23

2.2. Пример статической библиотеки                                            24

2.3. Пример совместно используемой библиотеки          27

3. Основы низкоуровневого ввода-вывода                        31

3.1. Обзор механизмов ввода-вывода в Linux                               31

3.2. Файловые дескрипторы                                               33

3.3. Открытие, файла: системный вызов ореn()                35

3.4. Закрытие файла: системный вызов close()                              37

3.5. Чтение файла: системный вызов read()                       40

3.6. Запись в файл: системный вызов write()                                 43

3.7. Произвольный доступ: системный вызов lseek()                   45

4. Разработка системной оболочки                                    50

Модуль 1. Основной модуль                                              50

Модуль 2. Вывод описания ошибки                                  55

Модуль 3. Открытие файла                                                56

Модуль 4. Удаление файла                                                57

Модуль 5. Переименование файла                                    58

Модуль 6. Копирование файла                                                      61

Модуль 7. Создание каталога                                                        62

Модуль 8. Удаление каталога                                                        63

Модуль 9. Информация о файле или каталоге                              67

Заключение                                                                         70

Список рекомендуемой литературы                                  70

Приложения                                                                         71

 

ВВЕДЕНИЕ

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

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

Во второй части показано, как создавать свои (авторские) библиотеки и подключать их к своим программам.

В третьей части рассмотрены вопросы реализации низкоуровневого ввода-вывода, на примерах разъяснено использование операторов работы с файлами, таких, как open , read , write , close и др. 

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

 

Оболочка операционной системы (от англ. shell— оболочка) — интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.

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

Командный интерпретатор

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

В операционные системы MS-DOS и Windows 9x включён командный интерпретатор command.com, в Windows NT включён cmd.exe. В большом семействе командных оболочек UNIX популярны bash, csh, ksh, zsh и другие.

Как правило, при низкоуровневой настройке ОС у пользователя есть возможность менять командный интерпретатор, используемый по умолчанию.

Функции

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

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

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

Стандартный командный интерпретатор

Стандартом POSIX (ISO/IEC 9945) (Том 3. Оболочка и утилиты) определен язык оболочки, включающий конструкции последовательного (перевод строки, точка с запятой), условного («if», «case», «||», «&&») и циклического («for», «for in», «while», «until») исполнения команд, а также оператор присваивания.

Стандартом также определен режим редактирования вводимых команд, являющийся подмножеством команд стандартного текстового редактора («vi»).

В современных открытых Unix-подобных ОС наиболее распространены такие языки командных интерпретаторов как bash и zsh, реализующие надмножества языка стандартной оболочки.

Для альтернативных ОС (например, Windows) также доступны реализации этих оболочек.

Альтернативы

Наряду со стандартными, в открытых ОС применяются также альтернативные оболочки csh и tcsh, отличающиеся синтаксисом управляющих конструкций и поведением переменных.

Некоторые альтернативные ОС поставляются с интерпретаторами собственных языков командных файлов (такими, как язык командных файлов ОС MS-DOS и Microsoft Windows 7, язык kazahskii в ОС OS/2 и т. п.)

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

Графическая оболочка

Последние версии ОС Windows используют в качестве своей оболочки интегрированную среду Проводника Windows. Проводник Windows представляет собой визуальную среду управления включающую в себя Рабочий стол, Меню пуск, Панель задач, а также функции управления файлами. Ранние версии ОС Windows 3.хх в качестве графической оболочки включают менеджер программ.

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

Перечень оболочек для Microsoft Windows:

• Aston shell

• BB4Win

• BBIean

• Cairo (Under Development)

• Chroma

• Emerge Desktop

• Geoshell

• KDE

• Litestep

• Packard Bell Navigator

• Program Manager

• Secure Desktop

• SharpE

• Talisman Desktop

• WinStep

• Windows Explorer

• Microsoft Bob

Далее, мы будем рассматривать системную оболочку типа CUI, то есть текстовый пользовательский интерфейс. Рассмотрим цели, которые программа должна будет выполнять:

• Предоставляет возможность создания файла

• Предоставляет возможность удаления файла

• Предоставляет возможность переименование файла

• Предоставляет возможность копировать файл

• Предоставляет возможность получить информацию о файле или каталоге

• Предоставляет возможность создания каталога

• Предоставляет возможность удаления каталога (с вложенными каталогами и файлами)

• Работа в операционной системе Linux

Данная системная оболочка не отличается функциональностью, но мы и не стремимся превзойти готовые продукты. Наша цель- понять устройство системной оболочки на примере её создания.

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

• Создание или открытие файла

• Вывод ошибки

• Удаление файла

• Переименование файла

• Копирование файла

• Вывод информации о файле или каталоге

• Создание каталога

• Удаление каталога

• Основной модуль

При написании системной оболочки можно пользоваться языком программирования C/C++ и, например, средой разработки IDE NetBeans.

 


Дата добавления: 2019-03-09; просмотров: 222; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!