Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по лекциям.doc
Скачиваний:
29
Добавлен:
20.09.2019
Размер:
1.52 Mб
Скачать

1.2. Системные соглашения для доступа к функциям ос

К настоящему времени в России относительно широко используются следующие типы операционных систем: Windows 9x, Windows NT, различные клоны семейства Unix. К первому типу относятся ОС Windows 95, Windows 98 и Windows Millenium. Последние модификации типа Windows NT называются Windows 2000, Windows XP и Windows Server 2003. Операционная система Unix в основном представлена в России клоном BSD (Berkley Software Distribution) и различными модификациями ОС Linux (Red Hat, Debian, Slackware, Mandrake и т.д.). Привлекательным достоинством ОС Linux является ее бесплатность для пользователей. (Строго говоря, с точки зрения профессионалов, Linux не является разновидностью Unix, но их различия касаются только внутреннего построения этих ОС, с точки же внешнего взаимодействия с программами в текущем курсе изучения их можно считать одинаковыми.)

Особое место до недавнего времени занимала OS/2. С одной стороны, она оказалась жертвой конкурентной борьбы с фирмой Microsoft, с другой – это единственная ОС, являющаяся одновременно и современной, и простой для профессионального изучения. Практическое неудобство OS/2, проявившееся в последние годы, заключается в прекращении поддержки ее производителями видеокарт, в результате чего оказывается невозможным использование режимов высокого разрешения и частоты на современных видеосистемах с этой ОС. Операционная система OS/2 по своей функциональной структуре занимала место между простой MS DOS и современными Windows, причем по простоте ближе к первой, а по возможностям – ко вторым. Поэтому изучение OS/2 есть простейший и кратчайший путь, чтобы разобраться в функционировании операционных систем. Многие технические решения, использованные в OS/2, многократно проще, чем примененные в Windows, причем при тех же функциональных возможностях.

Изучение лишь одного из известных технических решений приводит к малограмотности инженера. Поэтому изучение операционных систем в данном пособии будет базироваться на рассмотрении основных решений для двух операционных систем: Unix и Windows. В отдельных случаях будут упоминаться соответствующие средства для OS/2. Заметим, что в OS/2, как правило, имеют место простые и прозрачные для начального знакомства решения, но практическое значение этой системы приближается к нулю. В Windows мы сталкиваемся с самыми громоздкими и часто очень не безопасными в использовании средствами, но практическое использование ее чрезвычайно широко среди неквалифицированных масс. В Unix знакомимся с классическими решениями, относительным недостатком которых является только некоторый архаизм, неизбежно заложенный в начале 70-х годов. (Unix – самая древняя из современных ОС, но не теряющая свое совершенство для профессионалов.)

Программный интерфейс пользователя для современных ОС описывается исключительно на языке С. Причинами этого являются как заложенные в основных ОС мобильность (Unix, Windows), так и удобство С в качестве языка системного программирования. Заметим, что более ранние ОС имели API, описываемый исключительно на ассемблере, что крайне мешало переносу таких ОС на иные типы процессоров и повышало трудоемкость разработки самих ОС. Тем не менее, критические части современных ОС целесообразно записывать на ассемблере. (Заметим, что даже в громоздкой системе программирования MS Visual C++ содержится более двух сотен килобайтов ассемблерных текстов для подпрограмм, критически влияющих на производительность приложений.) Поэтому в данном пособии все изложение будет основываться на языке С. (Заметим, что описываемое на языке С всегда может быть описано и использовано с помощью языка ассемблера. Такой вариант применяться не будет, так как не предполагается знакомство читателей с программированием на ассемблере.)

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