Arcitecture_of_Computers_Lecture04.ppt
- Количество слайдов: 27
Архитектура вычислительных систем. Лекция 4. История ОС Unix • Москва, октябрь 2011 Ловецкий К. П. 1
Multics (Multiplexed Information and Computing Service) • В конце 1960 -x годов консорциум в составе концерна General Electrics, Массачусетского Технологического Института (MIT) и исследовательской компании Bell Laboratories (на тот момент − подразделения AT&T) разрабатывали операционную систему MULTICS. • Multics была одной из первых операционных систем с разделением времени исполнения программ (time-sharing operating system). • Список операционных систем 2
Multics (Multiplexed Information and Computing Service) • Система Multics оказала очень большое влияние на компьютерную индустрию благодаря многим новаторским и ценным идеям, заложенным в неё. Хотя система и подвергалась многочисленным насмешкам со стороны критиков, она показала что заложенные в неё концепции имеют право на долгосрочную жизнь в мире операционных систем. • Multics имела множество характерных особенностей, обеспечивших её безотказность и высокую производительность. Дополнительно к поддержке модульности программного обеспечения, система также была ориентирована на модульную поддержку используемых в её работе электронных устройств, что позволило наращивать вычислительные возможности системы простой заменой её модулей: – центрального процессора, – памяти, – дискового пространства, и т. д. 3
Multics (Multiplexed Information and Computing Service) • Отдельные для каждого пользователя списки доступа к файлам обеспечили весьма гибкий механизм коллективного использования информации в системе, гарантирующей обеспечение полной конфиденциальности хранимой и используемой пользователями информации. • Система Multics обладала также стандартными механизмами, позволяющими инженерам анализировать вычислительные мощности системы, и набором механизмов, обеспечивающих оптимизацию работы самой операционной системы. 4
Инновационные идеи в системе Multics • Multics была одной из первых операционных систем, реализовавшей плоскую модель хранения данных, четко разделяющей концепции файлов (называемых в системе Multics сегментами) и памяти вычислительных процессов. Память вычислительных процессов состояла из сегментов, каждый из которых обладал своим адресным пространством. • Для чтения или записи в сегменты вычислительный процесс использовал инструкции центрального процессора системы, а операционная система брала на себя всю заботу по сохранению измененных 5 данных на жестком диске компьютера.
Инновационные идеи в системе Multics • Таким образом в Multics была спроектирована и реализована полностью централизованная файловая система, в которой файлы, физически располагающиеся на разных физических устройствах внешней памяти, логически объединяются в один централизованный архив или древовидную иерархическую структуру, промежуточными узлами которой являются именованные директории (или каталоги), а в листьях содержатся файлы. • В Multics была также спроектирована и реализована большая сегментно-страничная виртуальная память, позволившая использовать отображение файлов в 6 сегменты виртуальной памяти.
Инновационные идеи в системе Multics • В системе Multics была впервые реализована и еще одна инновационная идея, а именно — динамическое связывание (dynamic linking) исполняемой программы с библиотеками кода. Благодаря динамическому связыванию, исполняемый процесс мог запрашивать у системы подключение дополнительных сегментов к собственному адресному пространству, а именно сегментов, содержащих полезный код для исполняемой программы. Таким образом программы смогли автоматически использовать внешние библиотеки кода, хранимые в отдельных сегментах, создавая при этом динамические связи с функциями, хранимыми в этих библиотеках. 7
Инновационные идеи в системе Multics • Multics была одной из первой систем, в которой большое внимание уделялось безопасности взаимодействия между программами и пользователями. Более того, Multics, возможно, была самой первой операционной системой, задуманной изначально и реализованной как безопасная, несмотря на то, что ранние версии системы Multics все-таки неоднократно взламывались хакерами. • Multics также явилась одной из первых операционных систем, написанных на языке высокого уровня PL/I (самой первой такой системой была MCP для компьютеров Burroughs B 5000, которая использовала диалект Алгола). 8
История создания системы Unics (Unix) • Компания Bell Labs вышла из проекта в 1969 -м году. Несколько человек, разрабатывающих систему Multics в этой компании перешли к созданию системы UNIX. Позднее созданная система UNIX показала внешнее сходство с системой Multics, в том числе, и в названиях используемых команд. Философия дизайна UNIX была совершенно другой. Целью являлось создание системы как можно меньших размеров, и настолько простой, насколько это будет возможно. • Название «UNIX» ( «Unics» , автор - Брайан Керниган) было образовано от «Multics» . Буква U в названии UNIX означала «Uniplexed» ( «односложная» ) в противоположность слову «Multiplexed» ( «комплексная» ), лежащему в основе названия системы Multics, подчеркивая попытку создателей UNIX-а отойти от сложностей системы Multics для выработки более простого и работоспособного подхода. 9
История создания системы Unics (Unix) • В число сотрудников Bell Labs, участвовавших в проекте MULTICS, входил Кен Томпсон. По одной из легенд, в те времена его интересовала новая на тот момент область программирования − компьютерные игры. В силу дороговизны вычислительной техники того времени у Кена Томпсона были определенные сложности с получением компьютерного времени для игры в написанную им Star Travel, поэтому он заинтересовался имевшейся в Bell Labs и маловостребованной на тот момент машиной PDP-7. Наличествовавшее для этой машины системное программное обеспечение Томпсона не устроило, и, пользуясь опытом, полученным в проекте MULTICS, он написал для PDP-7 свою операционную систему. Первоначально система Томпсона была двухзадачной, то есть позволяла запуск двух независимых процессов − по числу подключенных терминалов 10
PDP-7 There a few remaining PDP-7 systems still in operable condition, along with one under restoration in Oslo, Norway. 11
PDP-7 • The DEC PDP-7 is a minicomputer produced by Digital Equipment Corporation. Introduced in 1965, it was the first to use their Flip-Chip technology. With a cost of only $72, 000 USD, it was cheap but powerful by the standards of the time. The PDP-7 was the third of Digital's 18 -bit machines, with essentially the same instruction set architecture as the PDP-4 and the PDP-9. • • PDP-7 definition computer A minicomputer sold by DEC in 1964. It had a memory cycle time of 1. 75 microseconds and add time of 4 microseconds. I/O included a keyboard, printer, paper-tape and dual transport DEC tape drives (type 555). DEC provided an "advanced" Fortran II compiler, a Symbolic Assembler, Editor, DDT Debugging System, Maintenance routines and a library of arithmetic, utility and programming aids developed on the program-compatible PDP-4. The PDP-7 was considered reliable enough (when properly programmed) to be used for control of nuclear reactors and such. Around 1970 Ken Thompson built the operating system that became Unix on a scavenged PDP-7 so he could play a descendant of the SPACEWAR game. (1995 -03 -10) 12
Тетрис • Те трис — культовая игра, изобретённая Алексеем Пажитновым в 1985 году. Идею «Тетриса» ему подсказала купленная им игра в пентамино. 7 «кирпичиков-тетрамино» тетриса: I, J, L, O, S, T, Z 13
История создания системы Unics (Unix) • Кену Томпсону в его разработке присоединился Деннис Ритчи. Вдвоем они перенесли систему на более совершенный миникомпьютер PDP-11. Тогда же возникла идея переписать систему на языке высокого уровня. • Томпсон попытался использовать для этого усеченный диалект языка BCPL, который он назвал «B» . Однако язык оказался для этого слишком примитивен, в нем не было даже структурных данных. Ритчи предложил расширить язык. Так появилась первая версия языка «C» . 14
Об авторе Тетриса • Тетрис был впервые написан Алексеем Пажитновым в июне 1985 года на компьютере Электроника-60. Работая в ВЦ Академии наук СССР, Пажитнов занимался проблемами искусственного интеллекта и распознавания речи, а для обкатки идей применял головоломки, в том числе и классическое пентамино. Пажитнов пытался автоматизировать укладку пентамино в заданные фигурки. Однако вычислительных мощностей тогдашнего оборудования для вращения пентамино не хватало, приходилось отлаживать на тетрамино, что и определило название игры — «Тетрис» (от др. -греч. τετράς — четыре). В тех опытах и родилась основная идея «Тетриса» — чтобы фигурки падали, а заполненные ряды исчезали. • Для IBM PC игра была переписана 16 -летним 15 школьником Вадимом Герасимовым.
Алексей Пажитнов • Алексе й Леони дович Па житнов (род. в 1956) — советский и американский программист, изобретатель игры «Тетрис» . • Окончил московскую математическую школу № 91 и МАИ. Барселона, 2008 год http: //en. wikipedia. org/wiki/Alexey_Pajitnov 16
История создания системы Unics (Unix) В 1973 году систему удалось переписать на C. Для того времени это был более чем сомнительный шаг: господствовала точка зрения, что высокоуровневое программирование с уровнем операционных систем принципиально несовместимо. Время показало, однако, что именно этот шаг определил на много лет тенденции развития индустрии. Язык программирования C и операционная система Unix сохраняют популярность спустя более чем 30 лет после описываемых событий в основном благодаря тому, что Unix оказался одной из первых ОС, написанной на языке высокого уровня, а C оказался этим языком. 17
История создания системы Unics (Unix) На этом историческом этапе важную роль сыграло особое положение компании AT&T: антимонопольные ограничения не позволяли ей участвовать в компьютерном бизнесе (как и вообще в любом бизнесе за пределами телефонии). В связи с этим копии Unix с исходными текстами предоставлялись всем желающим на некоммерческой основе. Следующим серьезным шагом стал перенос Unix на новую архитектуру. Идея этого была выдвинута Деннисом Ритчи и Стефаном Джонсоном. В рамках этого проекта Джонсон разработал переносимый компилятор языка C, ставший, кстати, едва ли не первым переносимым компилятором в истории. Перенос был завершен в 1977 году 18
История создания системы Unics (Unix) Важнейший вклад в развитие Unix внесли исследователи из университета Беркли. Одна из наиболее популярных веток Unix, BSD, представленная, например, системами, как Free. BSD, Net. BSD, Open. BSD и BSDi, была создана именно там (собственно, акроним BSD означает Berkley Software Distribution). Исследования, связанные с Unix, начались здесь в 1974 году; определенную роль сыграли лекции Кена Томпсона, прочитанные в Беркли в 1975 -1976 гг. Первая версия BSD была создана в 1977 году Биллом Джоем. В 1984 году с AT&T были сняты антимонопольные ограничения. Менеджмент AT&T начал коммерциализацию Unix. Свободное распространение исходных текстов Unix было прекращено. Последующие годы ознаменовались противостояниями и судебными тяжбами между разработчиками Unix, в частности − между все той же AT&T и компанией BSDi, пытавшейся продолжать разработки на 19 основе BSD.
История создания системы Unics (Unix) • Другая интересная линия событий прослеживается с 1984 года, когда Ричард Столлман основал Фонд свободного программного обеспечения и издал соответствующий идеологический манифест. Нарождающееся общественное движение для начала поставило себе целью создать свободную операционную систему. По некоторым сведениям, именно Столлман в 1987 году убедил исследователей из Беркли в необходимости очистки BSD от кода, находящегося в собственности AT&T. • Сторонники Столлмана успели создать существенное количество свободных программных инструментов, но без полностью свободного ядра ОС цель оставалась все же далека. Положение изменилось лишь в начале 1990 -х. В 1991 году финский студент Линус Торвальдс начал работу над ядром Unix-подобной операционной системы для платформы i 386, причем в этой работе код из других 20 операционных систем не использовался вообще
Фотография Ричарда Столлмана, взятая с обложки книги Сэма Вильямса «Free as in Freedom» , опубликованной в марте 2002 • Ричард Мэттью Столлман (англ. Richard Matthew Stallman, очень часто rms, по инициалам; родился 16 марта 1953, Манхэттен, Нью. Йорк) — основатель движения свободного ПО, проекта GNU, Фонда свободных программ и Лиги за свободу программирования. Автор концепции «копилефта» , призванной защищать идеалы движения; эту концепцию он с помощью юристов позже воплотил в лицензии GNU General Public License (GNU GPL) для ПО. 21
История создания системы Unics (Unix) • Новая операционная система получила название Linux по имени своего создателя. Примечательно, что такое название дал системе один из сторонних участников проекта. Сам Торвальдс планировал назвать систему «Freax» . • Самый первый публично доступный код (версия 0. 01) появился в 1991 году, первая официальная версия (1. 0) − в 1994, вторая − в 1996. • Следует отметить (и это также отмечает сам Линус Торвальдс), что немаловажную роль в стремительном взлете Linux сыграла судебная война между AT&T и университетом Беркли, мешавшая распространению BSD на i 386. Linux получил изрядную фору на старте, в итоге оставив BSD на вторых ролях. 22
Линус Торвальдс — создатель ядра «Linux» . 23 GNU/Linux (иногда Linux)
«Linux» . • Linux или GNU/Linux (произносится «гну слэш ли нукс» ) — общее название UNIX-подобных операционных систем на основе свободного ядра Linux и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU. Зачастую такие операционные системы называют просто «Linux» , так как первой, наиболее популярной и единственной тогда системной библиотекой, использовавшейся в системах на базе Linux, была GNU C Library (glibc). • GNU/Linux работает на PC-совместимых системах семейства Intel x 86, а также на A-64, AMD 64, Power. PC, ARM и многих других. • К операционной системе GNU/Linux также часто относят программы, дополняющие эту операционную систему, и прикладные программы, делающие её полноценной многофункциональной операционной средой. • В отличие от большинства других операционных систем, GNU/Linux не имеет единой «официальной» комплектации. Вместо этого GNU/Linux поставляется в большом количестве так называемых дистрибутивов, в которых программы GNU соединяются с ядром Linux и другими программами. Наиболее известными дистрибутивами GNU/Linux являются Slackware, Debian GNU/Linux, Red Hat, Fedora, Mandriva, Su. SE, Gentoo, Ubuntu. Из дистрибутивов российских разработчиков 24 наиболее известны ALT Linux и ASPLinux.
История развития UNIX-систем. GNU/Linux является UNIX-совместимой, однако основывается на собственном исходном коде 25
«Linux» . Home screen displayed on Android 2. 3 "Gingerbread" 26
The END Список операционных систем 27