- •Введение
- •1. История создания
- •2. Архитектура unix систем
- •2.1 Ядро системы
- •1. Файловая подсистема
- •3. Подсистема ввода/вывода
- •2.2 Файловая подсистема
- •2.3 Подсистема управления процессами
- •2.4 Подсистема ввода/вывода
- •3. Работа с операционной системой unix
- •3.1 Файлы и файловая система
- •3.2 Структура файловой системы unix
- •3.3 Процессы
- •3.4 Программы и процессы
- •3.5 Типы процессов
- •3.6 Пользователи системы
- •4. Пользовательская среда unix
- •4.1 Командный интерпретатор shell
- •5 Основные стандарты
- •6.1 Поддерживаемые языки программирования
- •6.1.1 Язык c
- •6.1.2 Фортран
- •6.1.3 Паскаль
- •6.1.4 Ассемблер
- •6.2 Специализированные языки программирования
- •6.3.1 Отличия от языка с
- •6.3.2 Достоинства
- •Заключение
- •Список использованных источников
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Российский государственный профессионально-педагогический университет
Институт электроэнергетики и информатики
Кафедра микропроцессорной техники
Контрольная работа
по дисциплине «Производственное обучение»
на тему: «Программирование на языке С++ для UNIX-подобных систем»
Работу выполнил: Савостина П.М.
студент группы: ЗКТэ-112С
Работу проверил:
_________/____________
(подпись) (расшифровка)
Екатеринбург
2013
Оглавление
Введение 4
1. История создания 6
2. Архитектура UNIX систем 8
2.1 Ядро системы 8
2.2 Файловая подсистема 10
2.3 Подсистема управления процессами 11
2.4 Подсистема ввода/вывода 11
3. Работа с операционной системой UNIX 12
3.1 Файлы и файловая система 12
3.2 Структура файловой системы UNIX 13
3.3 Процессы 15
3.4 Программы и процессы 15
3.5 Типы процессов 16
3.6 Пользователи системы 17
4. Пользовательская среда UNIX 18
4.1 Командный интерпретатор shell 18
5 Основные стандарты 20
5.1 IEEE и POSIX 20
5.2 X/Open 20
5.3 SVID 21
5.4 ANSI 21
6 Преимущества использования языка С++ для UNIX систем 22
6.1 Поддерживаемые языки программирования 22
6.1.1 Язык C 22
6.1.2 Фортран 23
6.1.3 Паскаль 23
6.1.4 Ассемблер 23
6.2 Специализированные языки программирования 23
6.2.1 awk(1) 23
6.2.2 lex(1) 24
6.2.3 yacc(1) 24
6.2.4 m4(1) 25
6.2.5 bc(1) и dc(1) 25
6.2.6. curses(3X) 25
6.3 Особенности языка С++ 25
6.3.1 Отличия от языка С 26
6.3.2 Достоинства 27
Заключение 30
Список использованных источников 31
Введение
Операционная система UNIX была создана в конце 60-х годов, и с тех пор появилось множество различных ее версий для разных компьютерных систем. Последние версии системы UNIX развились из AT&T System V и BSD 4.x UNIX. Многие производители компьютеров добавляли к этим разновидностям UNIX собственные расширения, создавая, таким образом, новые версии UNIX.
Почему UNIX? Надежность, простота и практически неограниченные возможности этих систем всегда привлекали компетентных специалистов, а разработка средств графического интерфейса и программных приложений для обработки текста и графики, совместимых с приложениями офисного пакета Microsoft, постепенно стирают пока еще имеющиеся различия в функциональных возможностях операционных систем UNIX и Windows. С точки зрения использования систем UNIX можно выделить следующие преимущества:
Использование на устаревших компьютерах без потери функциональности и надежности. Если имеются устаревшие компьютеры, которые уже не продать, а выбросить жалко – их можно использовать и получить дополнительную функциональность для компьютерной системы.
Открытость. Пользователю предоставляются исходные тексты, это дает возможность пользователю персонифицировать систему под свои потребности. Так же UNIX системы позволяют выбрать и установить только те компоненты, которые необходимы.
Высокая надежность. Open Source системы отличаются стабильностью, так как внести корректировки могут неограниченное число людей. Тем самым, чем дольше модерируется ось, тем меньше в ней, так называемых «багов».
Безопасность. Нет необходимости приобретать антивирусные программы - на ОС семейства UNIX вирусы не "живут". И не потому что их нет, они есть. Просто для их запуска нужны особые условия, и, даже если вирусу удастся проникнуть систему и запуститься - ничего деструктивного он сделать не сможет, при грамотной настройке, разумеется.
Высокая степень интеграции. Все компоненты Unix-систем построены с использованием открытых стандартов, многие из которых являются стандартами и для коммерческих систем, что позволяет интегрировать разнообразные службы между собой, как на уровне протоколов, так и на уровне данных.
Перед рассмотрением данной темы я ставлю следующие задачи:
- изучить принципы работы и архитектуру UNIX-подобных ОС;
- определить основные стандарты UNIX систем;
- ознакомится с функциями, определенными в различных стандартах, и с функциями, имеющимися в ОС UNIX;
- рассмотреть все возможные языки программирования для UNIX, и определить степень превосходства над ними языка С++;
Следовательно, цель изучения: определение преимущественных характеристик UNIX-подобных систем и программирования на С++ для таких систем.
1. История создания
В 1965 году Bell Telephone Laboratories (подразделение AT&T) совместно с General Electric Company и институтом технологии (MIT) начали разрабатывать новую операционную систему, названную MULTICS (MULTiplexed Information and Computing Service). Перед участниками проекта стояла цель создания многозадачной операционной системы разделения времени, способной обеспечить одновременную работу нескольких сотен пользователей. От Bell Labs в проекте приняли участие два сотрудника — Кен Томпсон (Ken Tompson) и Дэннис Ритчи (Dennis Ritchie). Хотя система MULTICS так и не была завершена (в 1969 году Bell Labs вышла из проекта), она стала предтечей операционной системы, впоследствии получившей название UNIX.
Однако Томпсон, Ритчи и ряд других сотрудников продолжили работу над созданием удобной среды программирования. Используя идеи и разработки, появившиеся в результате работы над MULTICS, они создали в 1969 небольшую операционную систему, включавшую файловую систему, подсистему управления процессами и небольшой набор утилит. Система была написана на ассемблере и применялась на компьютере PDP-7. Эта операционная система получила название UNIX, созвучное MULTICS и придуманное другим членом группы разработчиков, Брайаном Керниганом (Brian Kernighan). В дальнейшем система дорабатывалась, таким образом получались различные версии. Наиболее продуктивные вариации представлены в таблице 1.
Хотя ранняя версия UNIX много обещала, она не смогла бы реализовать весь свой потенциал без применения в каком-либо реальном проекте. И такой проект нашелся. Когда в 1971 году патентному отделу Bell Labs понадобилась система обработки текста, в качестве операционной системы была выбрана UNIX. К тому времени система UNIX была перенесена на более мощный PDP-11, да и сама немного подросла: 16К занимала собственно система, 8К отводились прикладным программам, максимальный размер файла был установлен равным 64К дискового пространства.
Вскоре после создания первых ассемблерных версий Томпсон начал работать над компилятором для языка FORTRAN, а в результате разработал язык В. Это был интерпретатор со всеми свойственными интерпретатору ограничениями, и Ритчи переработал его в другой язык, названный С, позволявший генерировать машинный код. В 1973 году ядро операционной системы было переписано на языке высокого уровня С, — неслыханный до этого шаг, оказавший громадное влияние на популярность UNIX. Это означало, что теперь система UNIX может быть перенесена на другие аппаратные.
Таблица 1 - Наиболее важные версии UNIX
Номер |
Год |
Особенности |
Первая редакция |
1971 |
Первая версия UNIX, написанная на ассемблере для PDP%11. Включала компилятор В и много известных команд и утилит, в том числе cat(1), mail(1), mount(1M), rmdir(1), wc(1), В основном использовалась как инструментальное средство обработки текстов для патентного отдела. |
Третья редакция |
1973 |
В системе появилась команда сс(1), запускавшая компилятор С. Число установленных систем достигло 16 |
Четвертая редакция |
1973 |
Первая система, в которой ядро написано на языке высокого уровня С. |
Шестая редакция |
1975 |
Первая версия системы, доступная за пределами Bell Labs. Система полностью переписана на языке С. С этого времени начинается появление новых версий, разработанных за пределами Bell Labs, и рост популярности UNIX. В частности, эта версия системы была установлена Томпсоном в Калифорнийском университете в Беркли, и на ее основе вскоре была выпущена первая версия BSD (Berkeley Software Distribution) UNIX. |
Седьмая редакция |
1979 |
Эта версия включала командный интерпретатор Bourne Shell и компилятор С от Кернигана и Ритчи. Ядро было переписано для упрощения переносимости системы на другие платформы. Лицензия на эту версию была куплена фирмой Microsoft, которая разработала на ее базе операционную систему XENIX. |
