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



Введение

 

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

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

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

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

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

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

 


1 Краткий обзор операционных систем

 

1.1 История операционной системы UNIX

 

UNIX имеет долгую и интересную историю. Начавшись как проект молодых исследователей, UNIX стал многомиллионной индустрией, включив в свою орбиту университеты, многонациональные корпорации, правительства и международные организации стандартизации. UNIX зародился в лаборатории Bell Labs фирмы AT&T более 20 лет назад. В то время Bell Labs занималась разработкой многопользовательской системы[1] разделения времени MULTICS (Multiplexed Information and Computing Service) совместно с MIT и General Electric, но эта система потерпела неудачу, отчасти из-за слишком амбициозных целей, не соответствовавших уровню компьютеров того времени, а отчасти и из-за того, что она разрабатывалась на языке PL/1, а компилятор PL/1 задерживался и вообще плохо работал после своего запоздалого появления. Поэтому Bell Labs вообще отказалась от участия в проекте MULTICS, что дало возможность одному из ее исследователей, Кену Томпсону[2], заняться поисковой работой в направлении улучшения операционной среды Bell Labs. Томпсон, а также сотрудник Bell Labs Денис Ритчи и некоторые другие разрабатывали новую файловую систему, многие черты которой вели свое происхождение от MULTICS. Для проверки новой файловой системы Томпсон написал ядро ОС и некоторые программы для компьютера GE-645, который работал под управлением мультипрограммной системы разделения времени GECOS. Кроме этого, машинное время GE-645 стоило слишком дорого. В результате Томпсон и Ритчи решили перенести игру на стоящую в углу без дела машину PDP-7 фирмы DEC, имеющую 4096 18-битных слов, телетайп и хороший графический дисплей. Но у PDP-7 было неважное программное обеспечение, и, закончив перенос игры, Томпсон решил реализовать на PDP-7 ту файловую систему, над которой он работал на GE-645. Из этой работы и возникла первая версия UNIX, хотя она и не имела в то время никакого названия. Но она уже включала характерную для UNIX файловую систему, основанную на индексных дескрипторах inode, имела подсистему управления процессами и памятью, а также позволяла двум пользователям работать в режиме разделения времени. Система была написана на ассемблере. Имя UNIX (Uniplex Information and Computing Services) было дано ей еще одним сотрудником Bell Labs, Брайаном Керниганом, который первоначально назвал ее UNICS, подчеркивая ее отличие от многопользовательской MULTICS. Вскоре UNICS начали называть UNIX. Первыми пользователями UNIX'а стали сотрудники отдела патентов Bell Labs, которые нашли ее удобной средой для создания текстов.Большое влияние на судьбу UNIX оказала перепись ее на языке высокого уровня С, разработанного Денисом Ритчи специально для этих целей. Это произошло в 1973 году, UNIX насчитывал к этому времени уже 25 инсталляций, и в Bell Labs была создана специальная группа поддержки UNIX.

             

1.2 Операционная система OS/2

 

Операционная система OS/2 начиналась как совместная разработка IBM[3] и Microsoft[4] (хотя большую часть работы должна была выполнить Microsoft). Изначально она была задумана как замена DOS. Уже тогда было ясно, что DOS с ее ограничениями по памяти и по возможностям файловой системы не может воспользоваться вычислительной мощностью появляющихся компьютеров. OS/2 была хорошо продуманной системой. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Фактически она выходила за пределы простой многозадачности с ее концепцией, названной многонитевостью. Первые версии OS/2 не оказали значительного влияния на рынок. Версия OS/2 1.0, выпущенная в 1987 году, содержала большинство технических свойств, необходимых для многозадачной ОС. Однако у нее не было менеджера графического представления (presentation manager, PM), а также отсутствовали драйверы для многих популярных принтеров и других устройств. Версия OS/2 1.1, появившаяся в 1989 году, включала рудиментарную версию PM, которая, наконец, делала возможным использование графических приложений в нескольких окнах. Однако, в этой версии PM не хватало многих свойств, которые присущи развитому графическому интерфейсу, кроме того, по прежнему отсутствовали многие драйверы принтеров. Выпущенная в 1990 году версия 1.2 имела улучшенный PM, хотя он и не следовал общепринятым концепциям графического интерфейса. Появились драйверы для большинства принтеров и других периферийных устройств.Однако дискредитация OS/2 уже произошла. Версия 1.2 не была существенно лучше предыдущих версий и все еще предъявляла значительные требования к аппаратуре. К этому времени многие пользователи решили перейти на новую платформу Windows 3.0 или подождать, пока не появится что-нибудь принципиально лучшее. Продажи OS/2 по-прежнему были вялыми, и рынок не интересовался ею. Это объяснялось наличием у OS/2 ряда существенных недостатков: виртуальная машина DOS, которая должна была бы обладать способностью выполнять немодифицированные приложения DOS, с самого начала имела технические изъяны. Эта виртуальная машина была разработана на базе виртуальных возможностей процессора i286, который позволял выделять сегмент памяти в 640 Кб для отдельного DOS-приложения. Однако процессор i286 в этом виртуальном режиме работал слишком медленно, поэтому виртуальная DOS-машина была реализована на основе реального режима процессора. При этом требовался перезапуск процессора для переключения между реальным и защищенным режимами. Хотя эта операция и выполнялась очень быстро и незаметно для пользователя, она была сложной и вносила путаницу. Microsoft и IBM не смогли в полной мере реализовать концепцию виртуальной обработки в режиме I8086: в этом режиме DOS-приложения, которые непосредственно читали или писали в аппаратные порты, переставали работать. В связи с этим не могли использоваться и популярные сетевые операционные системы на базе DOS. Память в этом режиме использовалась нерационально - если пользователь конфигурировал OS/2 с возможностью DOS-совместимости, то 640 КБ памяти всегда выделялись для этих целей и не могли использоваться для задач OS/2. Еще одним недостатком было отсутствие возможности обмена данными между DOS- и OS/2-приложениями. В каждый момент времени могло выполняться только одно DOS-приложение, и это приложение не могло использовать расширенную память.

 

1.3 Краткий обзор операционной системы NetWare

 

NetWare — сетевая операционная система и набор сетевых протоколов, которые используются в этой системе для взаимодействия с компьютерами-клиентами, подключёнными к сети. Система NetWare была создана в результате работы SuperSet Software — консалтинговой группы, основанной друзьями Дрю Мэйджером, Дэйлом Найбауэром, Кайлом Пауэллом и позднее вошедшим в эту группу Марком Хёрстом. В основу этой работы были положены результаты их занятий в университете Бригама Янга в городе Прово, штат Юта в октябре 1981 года. В 1983 году Рэймонд Ноорда присоединился к работе группы SuperSet. Первоначально перед группой стояла задача создания системы CP/M совместного использования дисков для сетей на основе оборудования CP/M, которое в то время продавала компания Novell. Внутри группы сложилось убеждение, что CP/M является обречённой на неуспех платформой, и в результате было предложено альтернативное решение для только что выпущенных IBM-совместимых ПК. Группой также было написано приложение Snipes — работающая в текстовом режиме игра, которую они использовали для тестирования новой сети и демонстрации её возможностей. Snipes был первым сетевым приложением в мире и фактически является предшественником многих популярных многопользовательских игр, таких как Doom и Quake. Эта сетевая операционная система позже была названа Novell NetWare. В NetWare используется протокол NCP (от англ. NetWare Core Protocol — «протокол ядра NetWare»), который является протоколом передачи пакетов, позволяющим клиентам передавать запросы на серверы NetWare и получать от них ответы. Первоначально NCP был привязан к протоколам IPX/SPX, то есть система NetWare сама по себе могла использовать для взаимодействия в сети только IPX/SPX. Для хранения информации аутентификации использовалась встроенная система на основе СУБД Btrieve. Первый программный продукт с именем NetWare был выпущен в 1983 году. Он назывался NetWare 68 (или Novell S-Net), работал на процессоре Motorola 68000 и использовал топологию «звезда». Этот продукт был заменён в 1985 году на NetWare 86, который был написан для работы на процессорах Intel 8086. После выпуска процессора Intel 80286 компания Novell выпустила NetWare 286 (в 1986 году). В 1989 году, после выпуска процессора Intel 80386, последовала NetWare 386. Позже Novell пересмотрела нумерацию версий NetWare: NetWare 286 стала NetWare 2.x, а NetWare стала NetWare 3.x.

 

1.4 История операционной системы Mac OS

 

Среди общего числа современных ПК особо можно выделить компьютеры линейки Macintosh[5]. Особенными эти ПК делает не только удобный корпус, мощный процессор, быстрые диски, высокая производительность, но в первую очередь операционная система Mac OS. Сейчас трудно поверить, что ОС, приведшая к «компьютерной революции» занимала всего 216 килобайт на флоппи-диске (жесткий диск в те времена был непозволительной роскошью) и отлично работала на компьютере со 128 килобайт ОЗУ. Уже тогда, будучи почти ровесником DOS, Mac OS мало чем отличалась от современных графических ОС и оболочек, – заложенные в ней решения на десятилетие вперед определили ход мыслей создателей пользовательских интерфейсов. Mac OS – одна из немногих истинно графических операционных систем. В ней нет даже намека на текстовый режим, что обеспечило ей компактность и высокую эффективность. Но самое главное, что отличает Mac OS по сегодняшний день – дружественность и удобство пользования. Система удивительно эргономична, для выполнения той или иной работы требуется минимум действий, причем все они логичны и понятны. Системная информация отображается точно и четко, шрифты легко читаются, «рычаги» контроля над ОС наглядны, доступны, работают надежно и предсказуемо. Главное впечатление от общения с Mac OS – в любой момент знаешь, что происходит с компьютером, операционная система «прозрачна» и не мешает работать. Наверное, именно в этом заключается главный «секрет» притягательности Macintosh, а также их рекордной эффективности и производительности при решении прикладных задач. Шестнадцать лет – даже не эпоха, а несколько эпох в компьютерном мире. Все это время Mac OS непрерывно развивалась, становилась мощнее, обрастала, приобретала новые возможности и функции.

 

1.5 Общий обзор операционных систем Linux

 

Linux[6]  — общее название Unix-подобных операционных систем на основе одноимённого ядра и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU. Linux работает на множестве архитектур процессора таких как Intel x86, x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других. В отличие от большинства других операционных систем, Linux не имеет единой «официальной» комплектации. Вместо этого Linux поставляется в большом количестве так называемых дистрибутивов, в которых ядро Linux соединяется с утилитами GNU и другими прикладными программами (например, X.org), делающими её полноценной многофункциональной операционной средой. Наиболее известными дистрибутивами Linux являются Arch Linux, CentOS, Debian, Fedora, Gentoo, Mandriva, Mint, openSUSE, Red Hat, Slackware, Ubuntu. Российские дистрибутивы — ALT Linux, ASPLinux, Calculate Linux, НауЛинукс, AgiliaLinux (ранее MOPSLinux), Runtu и Linux XP.

Дистрибутив — это не просто набор программ, а ряд решений для разных задач пользователей, объединённых едиными системами установки, управления и обновления пакетов, настройки и поддержки. Самые распространённые в мире дистрибутивы: Ubuntu — дистрибутив, основанный на Debian и быстро завоевавший популярность. Поддерживается сообществом, разрабатывается Canonical Ltd. Основная сборка ориентирована на лёгкость в освоении и использовании, при этом существуют серверная и минимальная сборки. Linux Mint — дистрибутив, основанный на Ubuntu и полностью с ним совместимый, включающий в себя по умолчанию Java, Adobe Flash и многое другое. ОpenSUSE — дистрибутив, разрабатываемый сообществом при поддержке компании Novell. Отличается удобством в настройке и обслуживании благодаря использованию утилиты YaST. Fedora — поддерживается сообществом и корпорацией RedHat, предшествует выпускам коммерческой версии RHEL. Debian — дистрибутив, разрабатываемый обширным сообществом разработчиков. Служит основой для создания множества других дистрибутивов. Отличается строгим подходом к включению несвободного ПО. Mandriva Linux — французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva (англ.). Slackware — один из старейших дистрибутивов, отличается консервативным подходом в разработке и использовании. Gentoo — дистрибутив, полностью собираемый из исходных кодов. Позволяет очень гибко настраивать конечную систему и оптимизировать производительность, поэтому часто называет себя мета-дистрибутивом. Ориентирован на экспертов и опытных пользователей. Arch Linux — ориентированный на применение самых последних версий программ и постоянно обновляемый, поддерживающий одинаково как бинарную, так и установку из исходных кодов и построенный на философии простоты KISS, этот дистрибутив ориентирован на компетентных пользователей, которые хотят иметь всю силу и модифицируемость Linux, но не в ущерб времени обслуживания.

CentOS — дистрибутив Linux, основанный на свободных исходных текстах коммерческого дистрибутива Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (с помощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2 года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержки новых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой, надежной, предсказуемой и масштабируемой Linux среде. PCLinuxOS — LiveCD дистрибутив Linux с возможностью установки операционной системы на жесткий диск. Основанный изначально на Mandrake 9.2, PCLinuxOS придерживается собственного пути развития. Помимо перечисленных, существует множество других дистрибутивов, как базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для выполнения ограниченного количества задач. Каждый из них имеет свою концепцию, свой набор пакетов, свои достоинства и недостатки. Ни один не может удовлетворить всех пользователей, а потому рядом с лидерами благополучно существуют другие фирмы и объединения программистов, предлагающие свои решения, свои дистрибутивы, свои услуги. Существует множество LiveCD, построенных на основе Linux, например, Knoppix. LiveCD позволяет запускать Linux непосредственно с компакт-диска, без установки на жёсткий диск. Для желающих досконально разобраться с Linux подойдёт любой из дистрибутивов, однако довольно часто для этой цели используются так называемые source-based дистрибутивы, то есть предполагающие самостоятельную сборку всех (или части) компонентов из исходных кодов, такие как LFS, Gentoo или CRUX.

К достоинствам данной ОС я бы отнес в первую очередь такое достоинство как независимость от разработчика. Если вам потребовалась какая-то функциональность, отсутствующая в ОС Linux, вы может ее добавить своими собственными усилиями. Такая возможность есть благодаря тому, что ОС Linux распространяется не только в бинарном виде, но и в исходных кодах, причем нет никаких запретов на модификацию этих исходных кодов. К недостаткам можно отнести значительно худшую, чем для платформы Windows, поддержка компьютерного оборудования, в особенности внешнего, такого как, например принтеры или USB устройства. Пожалуй, хуже всего дело обстоит со сканерами и USB, а также внутренними HSF/HCF модемами. Вполне реальна ситуация когда вам не удастся использовать какое-то оборудование под ОС Linux. Но проблема в значительной степени решаема, за счет более тщательного подхода к выбору оборудования. Перед приобретением того или иного вида аппаратного обеспечения можно в Интернете поискать информацию о возможности его работы под ОС Linux. Значительно меньшее, чем для платформы Windows, количество прикладных программ. Более того, если речь идет о некоторых программах - безусловных лидерах в своих прикладных областях, то под ОС Linux нет ни соответствующих версий самих этих программ, ни других, сопоставимых по функциональности программ. К таким прикладным программам относятся продукты компании Adobe, экономические программы 1С, программа инженерного проектирования AutoCAD, программы распознавания текстов (FineReader). Конечно, под ОС Linux есть и графические редакторы и программы моделирования/проектирования, но они сильно уступают лидерам. Однако программы уровня Adobe PhotoShop или AutoCAD необходимы далеко не всем и для распространенных случаев, программ под ОС Linux вполне хватает. Частично этот недостаток можно компенсировать за счет того, что некоторые Windows-программы можно запустить на платформе Linux. Это возможно не для всех Windows-программ, но быть может именно та Windows-программа, которая вам нужна, будет работать под Linux. Меньшее, чем для платформы Windows, количество хороших или приличных специалистов. То есть, если вам потребуется помощь, то найти человека, достаточно хорошо разбирающегося в Linux, будет не так просто. Вполне возможно, что и стоимость услуг такого специалиста будет выше, чем в случае с Windows.

 

                            1.6 Обзор операционных систем семейства Windows

 

Истоки зарождения операционной системы Windows следует искать в предшествующей ей операционной системе той же самой фирмы — DOS. Все операционные системы компании Microsoft, это, прежде всего, коммерческие проекты. Об этом нужно помнить всегда, особенно, когда стараешься понять истоки тех или других решений, как коммерческого плана, так и технического. Первой ОС из этого семейства была DOS. Может показаться, что DOS собственно имеет косвенное отношение к обсуждаемому предмету. Но, многие традиции, база пользователей и разработчиков, их привычки, идут именно оттуда. DOS была однозадачной однопользовательской операционной системой с текстовым интерфейсом. Первая версия Windows представляла собой нечто, негодное для работы и распространения не получила. Работать в Windows стало возможно, начиная с версии 3. В версии Windows For Workgroups 3.1 появилась возможность работы с сетью. Winodws серии 3 представляли собой запускаемую поверх DOS систему. Отличались невысокой надежностью. В 1995 годы вышла новая версия — Windows 95. Код частично был 32 разрядным, частично 16 разрядным, встроенная сеть. По сравнению с Windows серии 3 это был серьезный шаг вперед. Повысилась надежность, но до надежности UNIX-подобных ОС было еще далеко. В качестве рабочей станции с натяжкой конечно, надежности хватало, в качестве сервера, нет. Позже были выпущены еще две ОС этой линии, Windows 98 и Windows Me. После этого линия была закрыта. В 1993 году вышла новая версия — Windows NT 3.1. Это уже была полностью 32 разрядная система. Разработана она была с нуля, для ее разработки были наняты известные специалисты. Были внедрены новые концепции. Это подняло надежность почти до уровня надежности UNIX-подобных систем. Эта ОС уже могла работать в качестве сервера. Продолжение этой линии, операционные системы Windows 2000, Windows XP и Windows Vista. ОС линии NT были многозадачными, начиная с Windows XP[7], появилась и возможность работать нескольким пользователям, хотя и более ограниченная и гораздо менее удобная, чем у UNIX-подобных ОС. С точки зрения пользователя, Windows устроен примерно так:

ядро - работает с устройствами, управляет памятью и процессами, управляет графической подсистемой;

графическая подсистема - обеспечивает интерфейс с пользователем; приоритетная система для пользовательского интерфейса;

текстовая подсистема - обеспечивает текстовый интерфейс с пользователем; текстовый интерфейс весьма урезанный; набор утилит текстового режима как встроенных, так и других производителей, ограниченный; синтаксис и состав команд текстового режима меняется от версии к версии; запускается только поверх графического режима;

система удаленного доступа - появилась впервые, как встроенная в систему, в Windows NT Server 4.0. До этого были только продукты других фирм. В связи с тем, что запускается полноценная графическая сессия, потребляет очень много ресурсов. Наличие системы удаленного доступа и количество одновременных сессий может вообще отсутствовать или быть ограничено в разных версиях из коммерческих соображений.

В Windows доминирует так называемая концепция «тостер». Эта концепция — максимально облегчить вхождение пользователя в задачу. Программы в Windows, как правило, большие, на каждое действие есть пункт в меню или иконка. В системы программы связываются, как правило, с большим трудом.

Ухудшает ситуацию о построении комплексов на базе Windows то, что большинство программ — коммерческие и используют свои, бинарные и как правило, закрытые форматы данных и файлов. Такой подход превращает компьютер в устройство, которое может выполнять ограниченный изготовителем программного обеспечения (ПО) набор функций, в пределе в этакий своеобразный «тостер», который выполняет только то, что задумал его изготовитель. Плюс такого подхода — легкость вхождения неподготовленного пользователя. Минус — то, что обманутый кажущейся легкостью пользователь вообще не хочет ничему учиться и не выполнять необходимых действий. На поводу идут и производители ПО. Это одна из причин такого обилия документов отформатированных пробелами, пренебрежения безопасностью и как следствие вирусных эпидемий.

Рекомендуемые аппаратные требования на примере Windows 7.

32-битная версия Windows 7:

центральный процессор - x86 или x64 с тактовой частотой 1 ГГц;

объем оперативной памяти 1 ГБ;

объём жесткого диска 16 Гб (минимальное пространство для установки - 10.5 Гб);

информационный носитель DVD-ROM привод;

графический процессор-адаптер с поддержкой DirectX 9 и 128 Мб памяти.

Рекомендуются драйверы WDDM версии 1.0 и старше (WDM, вероятнее всего, будет поддерживаться в XP Mode). Известен случай запуска WDM в Windows 7).

64-битная версия Windows 7:

центральный процессор - x64 с тактовой частотой 1 ГГц;

объем оперативной памяти 2 ГБ;

объём жесткого диска              20 Гб (минимальное пространство для установки - 10.5 Гб);

информационный носитель              DVD-ROM привод;

графический процессор-адаптер с поддержкой DirectX 9 и 128 Мб памяти.

Рекомендуются драйверы WDDM версии 1.0 и старше (WDM, вероятнее всего, будет поддерживаться в XP Mode. Известен случай запуска WDM в Windows 7).

К плюсам я мог бы отнести такие как: поддержка очень большого ассортимента компьютерного оборудования. Практически любое аппаратное обеспечение имеет возможность использования под платформу Windows. Хотя быть может вам и потребуется время на поиски нужной программы-драйвера.

Огромное количество прикладных программ[8], на сегодняшний день это уже, наверное, более ста тысяч наименований. Для любой прикладной задачи на платформе Windows есть как минимум несколько десятков, для популярных задач существуют сотни программ. Выбрать есть из чего. На любой вкус.

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

Минусы семейства ОС Windows:

очень большое количество вредоносных программ (так называемые компьютерные вирусы) - эту проблему можно уменьшить за счет квалифицированной настройки ОС Windows и аккуратного ее использования в ситуациях риска, главная из которых Интернет;

жесткая зависимость от разработчика - ОС Windows распространяется только в бинарном виде, который труднодоступен для изменения, но более того, компания Microsoft вообще запрещает вносить какие-либо изменения в рабочие коды ОС Windows.

В наше время можно выделить как самые популярные и распространенные три ОС: Unix, Linux, Windows. Рассмотрим их более подробно.

 


2 Характеристика и особенности работы операционных систем Unix, Linux, Windows

 

2.1 Особенности операционной системы Unix

 

2.1.1 Основные определения операционной системы Unix

 

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

Пользователь - с самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.

Интерфейс пользователя - традиционный способ взаимодействия пользователя с системой UNIX основывается на использовании командных языков (правда, в настоящее время все большее распространение получают графические интерфейсы). После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd). Обычно в системе поддерживается несколько командных интерпретаторов с похожими, но различающимися своими возможностями командными языками. Общее название для любого командного интерпретатора ОС UNIX - shell (оболочка), поскольку любой интерпретатор представляет внешнее окружение ядра системы. Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы путем ввода команды logout или нажатием комбинации клавиш Ctrl-d. Командные языки, используемые в ОС UNIX, достаточно просты, чтобы новые пользователи могли быстро начать работать, и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Последняя возможность опирается на механизм командных файлов (shell scripts), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды.

Привилегированный пользователь - ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID - User Identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID - Group IDentifier). Значения UID и GID для каждого зарегистрированного пользователя сохраняются в учетных файлах системы и приписываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомочности доступа к файлам, выполнения программ и т.д. Понятно, что администратор системы, который, естественно, тоже является зарегистрированным пользователем, должен обладать большими возможностями, чем обычные пользователи. В ОС UNIX эта задача решается путем выделения одного значения UID (нулевого). Пользователь с таким UID называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, такой пользователь имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить. Суперпользователь должен хорошо знать базовые процедуры администрирования ОС UNIX. Он отвечает за безопасность системы, ее правильное конфигурирование, добавление и исключение пользователей, регулярное копирование файлов и т.д. Еще одним отличием суперпользователя от обычного пользователя ОС UNIX является то, что на суперпользователя не распространяются ограничения на используемые ресурсы. Для обычных пользователей устанавливаются такие ограничения как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на диске и т.д. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют.

Программы - ОС UNIX одновременно является операционной средой использования существующих прикладных программ и средой разработки новых приложений. Новые программы могут писаться на разных языках (Фортран, Паскаль, Модула, Ада и др.). Однако стандартным языком программирования в среде ОС UNIX является язык Си (который в последнее время все больше заменяется на C++). Это объясняется тем, что, во-первых, сама система UNIX написана на языке Си, а, во-вторых, язык Си является одним из наиболее качественно стандартизованных языков. Поэтому программы, написанные на языке Си, при использовании правильного стиля программирования обладают весьма высоким уровнем мобильности, т.е. их можно достаточно просто переносить на другие аппаратные платформы, работающие как под управлением ОС UNIX, так и под управлением ряда других операционных систем (например, DEC Open VMS или MS Windows NT). Выполняемая программа может быть запущена в интерактивном режиме как команда shell или выполнена в отдельном процессе, образуемом уже запущенной программой.

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

Процессы - процесс в ОС UNIX - это программа, выполняемая в собственном виртуальном адресном пространстве. Когда пользователь входит в систему, автоматически создается процесс, в котором выполняется программа командного интерпретатора. Если командному интерпретатору встречается команда, соответствующая выполняемому файлу, то он создает новый процесс и запускает в нем соответствующую программу, начиная с функции main. Эта запущенная программа, в свою очередь, может создать процесс и запустить в нем другую программу (она тоже должна содержать функцию main) и т.д.

Перенаправление ввода/вывода - механизм перенаправления ввода/вывода является одним из наиболее элегантных, мощных и одновременно простых механизмов ОС UNIX. Цель, которая ставилась при разработке этого механизма, состоит в следующем. Поскольку UNIX - это интерактивная система, то обычно программы вводят текстовые строки с терминала и выводят результирующие текстовые строки на экран терминала. Для того чтобы обеспечить более гибкое использование таких программ, желательно уметь обеспечить им ввод из файла или из вывода других программ и направить их вывод в файл или на ввод другим программам. Реализация механизма основывается на следующих свойствах ОС UNIX. Во-первых, любой ввод/вывод трактуется как ввод из некоторого файла и вывод в некоторый файл. Клавиатура и экран терминала тоже интерпретируются как файлы (первый можно только читать, а во второй можно только писать). Во-вторых, доступ к любому файлу производится через его дескриптор (положительное целое число). Фиксируются три значения дескрипторов файлов. Файл с дескриптором 1 называется файлом стандартного ввода (stdin), файл с дескриптором 2 - файлом стандартного вывода (stdout), и файл с дескриптором 3 - файлом стандартного вывода диагностических сообщений (stderr). В-третьих, программа, запущенная в некотором процессе, «наследует» от породившего процесса все дескрипторы открытых файлов. В головном процессе интерпретатора командного языка файлом стандартного ввода является клавиатура терминала пользователя, а файлами стандартного вывода и вывода диагностических сообщений - экран терминала. Однако при запуске любой команды можно сообщить интерпретатору (средствами соответствующего командного языка), какой файл или вывод какой программы должен служить файлом стандартного ввода для запускаемой программы и какой файл или ввод какой программы должен служить файлом стандартного вывода или вывода диагностических сообщений для запускаемой программы. Тогда интерпретатор перед выполнением системного вызова exec открывает указанные файлы, подменяя смысл дескрипторов 1, 2 и 3. Конечно, то же самое может проделать и любая другая программа, запускающая третью программу в специально созданном процессе. Следовательно, все, что требуется для нормального функционирования механизма перенаправления ввода/вывода - это придерживаться при программировании соглашения об использовании дескрипторов stdin, stdout и stderr. Это не очень трудно, поскольку в наиболее распространенных функциях библиотеки ввода/вывода printf, scanf и error вообще не требуется указывать дескриптор файла. Функция printf неявно использует stdout, функция scanf - stdin, а функция error - stderr. Операционная система UNIX, являющаяся первой в истории мобильной ОС, обеспечивающей надежную среду разработки и использования мобильных прикладных систем, одновременно представляет собой практическую основу для построения открытых программно-аппаратных систем и комплексов. Именно широкое внедрение в практику ОС UNIX позволило перейти от лозунга Открытых Систем к практической разработке этой концепции. Большой вклад в развитие направления Открытых Систем внесла деятельность по стандартизации интерфейсов ОС UNIX.

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