Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Многоуровневые системы






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

Первой системой, построенной таким образом была простая пакетная система THE, которую построил Дейкстра и его студенты в 1968 году.

Система имела 6 уровней. Уровень 0 занимался распределением времени процессора, переключая процессы по прерыванию или по истечении времени. Уровень 1 управлял памятью - распределял оперативную память и пространство на магнитном барабане для тех частей процессов (страниц), для которых не было места в ОП, то есть слой 1 выполнял функции виртуальной памяти. Слой 2 управлял связью между консолью оператора и процессами. С помощью этого уровня каждый процесс имел свою собственную консоль оператора. Уровень 3 управлял устройствами ввода-вывода и буферизовал потоки информации к ним и от них. С помощью уровня 3 каждый процесс вместо того, чтобы работать с конкретными устройствами, с их разнообразными особенностями, обращался к абстрактным устройствам ввода-вывода, обладающим удобными для пользователя характеристиками. На уровне 4 работали пользовательские программы, которым не надо было заботиться ни о процессах, ни о памяти, ни о консоли, ни об управлении устройствами ввода-вывода. Процесс системного оператора размещался на уровне 5.

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

Дальнейшее обобщение многоуровневой концепции было сделано в ОС MULTICS. В системе MULTICS каждый уровень (называемый кольцом) является более привилегированным, чем вышележащий. Когда процедура верхнего уровня хочет вызвать процедуру нижележащего, она должна выполнить соответствующий системный вызов, то есть команду TRAP (прерывание), параметры которой тщательно проверяются перед тем, как выполняется вызов. Хотя ОС в MULTICS является частью адресного пространства каждого пользовательского процесса, аппаратура обеспечивает защиту данных на уровне сегментов памяти, разрешая, например, доступ к одним сегментам только для записи, а к другим - для чтения или выполнения. Преимущество подхода MULTICS заключается в том, что он может быть расширен и на структуру пользовательских подсистем. Например, профессор может написать программу для тестирования и оценки студенческих программ и запустить эту программу на уровне n, в то время как студенческие программы будут работать на уровне n+1, так что они не смогут изменить свои оценки.

Многоуровневый подход был также использован при реализации различных вариантов ОС UNIX.

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

 

4) GNU General Public License (переводят как Универсальная общественная лицензия GNU, Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г., по которой автор передаёт программное обеспечение в общественную собсHYPERLINK " https://ru.wikipedia.org/wiki/Ð ž Ð ±Ñ ‰ Ð µÑ  Ñ ‚ Ð ² Ð µÐ ½ Ð ½ Ð °Ñ  _Ñ  Ð ¾ Ð ±Ñ  " тHYPERLINK " https://ru.wikipedia.org/wiki/Ð ž Ð ±Ñ ‰ Ð µÑ  Ñ ‚ Ð ² Ð µÐ ½ Ð ½ Ð °Ñ  _Ñ  Ð ¾ Ð ±Ñ  " венностьHYPERLINK " https: //ru.wikipedia.org/wiki/GNU_General_Public_License#cite_note-1" [1]. Её также сокращённо называют GNU GPL или даже просто GPL, если из контекста понятно, что речь идёт именно о данной лицензии (существует довольно много других лицензий, содержащих слова «general public license» в названии). Вторая версия этой лицензии была выпущена в 1991 году, третья версия, после многолетней работы и длительной дискуссии — в 2007 году. GNU Lesser General Public License (LGPL) — это ослабленная версия GPL, предназначенная для некоторых библиотек ПО.GNU Affero General Public License — это усиленная версия GPL для программ, предназначенных для доступа к ним через сеть[2].

Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права[Прим. 1]. Принцип «наследования» прав называется «копилефт» (транслитерация c англ. copyleft) и был придуман Ричардом Столлманом. По контрасту с GPL, лицензии проприетарного ПО «очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода»[3].

Согласно подготовленным Фондом разъяснениям по применению лицензии GNU GPL к конкретным лицензируемым программам (эти разъяснения приложены к размещенному на сайте Фонда тексту лицензии), лицензия должна в электронной форме присоединяться к компьютерной программе[4].

Лицензируя работу на условиях GNU GPL, автор сохраняет за собой авторство[Прим. 2].

GNU GPL не позволяет включать программу в проприетарное ПО. Если данная программа является библиотекой, вероятно, лучшим будет разрешить проприетарному ПО линковаться с ней. Для данной цели необходимо использовать GNU Lesser General Public License вместо GPL[5].

 

 

GPL предоставляет получателям компьютерных программ следующие права, или «свободы»[6]:

· свободу запуска программы с любой целью;

· свободу изучения того, как программа работает, и её модификации (предварительным условием для этого является доступ к исходному коду);

· свободу распространения копий как исходного, так и исполняемого кода;

· свободу улучшения программы, и выпуска улучшений в публичный доступ (предварительным условием для этого является доступ к исходному коду).

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

 

GPL была написана Ричардом Столлманом для использования с программами как часть проекта GNU. Она базируется на сходных лицензиях, использовавшихся для ранних версий GNU Emacs, GDB (отладчика GNU) и Коллекции компиляторов GNU (GCC), унифицирует и обобщает их.

 

 

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

 

В чем заключается причина популярности Unix? Многие хакеры чувствуют, что Unix — это «правильная штука», Единственная Настоящая Операционная Система. Отсюда следует и разработка Linux все более расширяющейся группой энтузиастов Unix, которые хотят поко-выряться с собственной системой.

 

Существуют версии Unix для многих систем от персонального компьютера до суперкомпьютеров, таких как Cray Y-MP. Большинство версий Unix для персональных компьютеров достаточно дороги и сложны.

 

Linux - свободно распространяемая версия Unix, первоначально разработанная Линусом Торвальдсом (Linus Torvalds), начавшим работу над ней, будучи студентом Хельсинкского университета в Финляндии. Сейчас Линус работает в Transmeta Corporation, молодой фирме в го­роде Санта-Клара в Калифорнии, и продолжает поддерживать ядро Linux, т. е. основной низкоуровневый компонент операционной системы.

 

Линус поместил первоначальную версию Linux в Интернете для бесплатного использования, непреднамеренно породив при этом один из крупнейших феноменов всех времен в разработке программного обеспечения. Сегодня Linux создается и поддерживается группой, состоящей из нескольких тысяч, если не больше, разработчиков, свободно сотрудничающих между собой при помощи Интернета. Некоторые компании стали обеспечивать поддержку Linux, создавать легкие для установки дистрибутивы этой системы и продавать рабочие станции с предустановленной на них Linux. В марте 1999 года в Сан-Хосе в Калифорнии состоялась первая всемирная выставка Linux World Expo, которую, как сообщалось, посетило 12000 человек. По многочислен­ным оценкам число пользователей Linux в мире находится около 10-миллионной отметки (сейчас, когда вы это читаете, оно, вероятно, еще больше).

 

Первоначально Linux создавался Линусом Торвальдсом как курсовая работа, вдохновением для которой послужила созданная Эндрю Та-ненбаумом (Andrew Tanenbaum) операционная система Minix (еще одна бесплатная реализация Unix для PC, хотя и совсем простенькая). Линус хотел создать простую Unix-систему, которая могла бы работать на 386-м PC. Первое обсуждение Linux состоялось в рамках телеконференции Usenet comp.os.minix. Это обсуждение касалось, в основном, создания маленькой Unix-системы для учебных и научных заведений и тех пользователей, которым хотелось чего-то большего, чем Minix.

 

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

 

5 октября 1991 года Линус объявил о первой «официальной» версии Linux, версии 0.02. К этому моменту в Linux уже работали bash (GNU Bourne Again Shell) и gcc (GNU С compiler), но больше почти ничего. По-прежнему эта система предназначалась для хакеров. Внимание было сосредоточено на создании ядра. Никакие вопросы поддержки пользователей, документации, распространения и т. п. даже не обсуждались. Сегодня ситуация в корне изменилась: мир Linux в основном озабочен графическими средами пользователей, созданием простых в установке дистрибутивов и приложениями высокого уровня, такими как графические утилиты и офисные пакеты.

 

После версии 0.03 Линус сразу перескочил в нумерации к версии 0.10. В это время над проектом стало работать много людей. После нескольких последующих исправлений Линус присвоил очередной версии номер 0.95, чтобы тем самым показать, что до «официальной» вер­сии уже совсем недалеко. (Обычно программа получает номер версии 1.0, когда теоретически она завершена и отлажена.) Это произошло в марте 1992 года. Прошло почти полтора года, и в конце декабря 1993 года версия ядра все еще имела название Linux 0.99.pll4, асимптотически приближаясь к 1.0. Версия 1.0 появилась в марте 1994 года. Во время написания книги (март 1999 года) текущая версия стабильного ядра имеет номер 2.2.6, и одновременно разрабатываются

 

версии 2.3 (ниже мы подробнее обсудим принципы нумерации версий Linux).1

 

Linux не смогла бы появиться без инструментария GNU, созданного Free Software Foundation. Компилятор gcc, о котором мы расскажем в главе 13 «Языки программирования», дал жизнь коду Линуса Тор-вальдса. С самого начала инструментарий GNU тесно взаимодействует с разработкой Linux. Поскольку инструментарий GNU внес значительный вклад в Linux, Free Software Foundation даже требует, чтобы дистрибутивы Linux с сопровождающими утилитами назывались GNU/Linux.

 

Разработанная в Университете Беркли операционная система Berkeley Unix (BSD) также сыграла важную роль в отношении Linux - не столько в ее создании, сколько в предоставлении инструментов, которые делают ее популярной. Большая часть утилит, входящих в дистрибутивы Linux, перенесена из BSD. Особую важность представляют демоны и сетевые утилиты. Поддержка сети в ядре Linux была разработана с нуля (фактически, дважды или трижды), но демоны и утилиты - это классика BSD.

 

Сегодня Linux является полноценным клоном Unix. Под ним работают X Window, TCP/IP, Emacs, Web, программы для работы с электронной почтой и телеконференциями - трудно все перечислить. Почти все основные свободно распространяемые программные пакеты перенесены на Linux. На практике многие разработчики сначала пишут свои приложения для Linux, а затем переносят их на другие Unix-системы. Поддерживается большее разнообразие аппаратных средств, чем в первоначальных версиях ядра. Было выполнено много тестов производительности Linux-систем, которые показали, что они работают быстрее рабочих станций Sun и Compaq. В большом числе тестов Li-nux-системы работают лучше или, по крайней мере, не хуже, чем Windows 98 или Windows NT. Кто мог предположить, что этот «ма­ленький» Unix вырастет настолько, что бросит вызов целому миру персональных компьютеров и серверов?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.