Информатика: История операционных систем Windows и Linux
Исторически первые вычислительные комплексы не имели операционных систем. Каждая программа писалась индивидуально под каждую модель вычислительной машины и не могла переноситься. При создании новой ЭВМ приходилось переписывать под нее ранее созданные программы. Естественно что в связи с ростом числа программ это не вызывало приступов оптимизма, что в свою очередь породило работы по созданию программного обеспечения в форме прослойки между аппаратным обеспечением и программами.
В конце 1960-х годов Bell Labs начал обобщать все наработки по существующим операционным системам и до 1975 года (окончательная редакция) родил одновременно два эпохальных продукта: язык программирования Си и операционную систему UNIX, созданную на базе ОС MULTICS (разработчик — потомок русских эмигрантов Виктор Александрович Высоцкий). Почему эпохальные? Си — первый платформонезависимый язык (исходный код не требуется подгонять под каждую аппаратную архитектуру), а UNIX — первая ОС, способная за счет механизма названного «ядро», обеспечить работу программ на разных аппаратных платформах без изменения.
Ремарка: В СССР номенклатура вычислительной техники не была столь распространенной, поэтому ввиду практической необходимости работы над операционной системой не производились, однако по политическому решению решено было делать «как у них» (т.е. как в США), что нанесло непоправимый вред ИТ области СССР и привело к закрытию многих очень перспективных проектов.
Из-за политики Bell Labs не смогла продолжить работу над системой и в передала исходные коды во все крупные учебные заведения США. Пальму первенства в продолжении работ подхватил университет Беркли который создал BSD UNIX.
В 1970-м году происходит одно из эпохальных событий, которое будет признано только через 14 лет — в компании Xerox изобретен графический интерфейс пользователя. Компания использовала его только для внутренней работы.
В 1977 году на рынок выходит компания Apple со своим компьютером «Apple II». В качестве операционных систем использовались CP/M и его фирменные модификации.
В 1980-м году компания Seattle Computer Products на базе CP/M создала операционную систему 86-DOS. Операционная система строилась не методом системных вызовов, а путем построения интерфейсов прикладного программирования (API). Наиболее важным здесь является то, что системные вызовы для использования требуют знаний операционной системы, в то время как интерфейсы прикладного программирования таких знаний не требуют. Наиболее близкая аллегория — автоматическая и механическая коробка передач. Системные вызовы — механика, которая позволяет контролировать все и вся, а API — автомат, который создан для того чтобы любая ТП могла сесть за руль. Все это приводит к тому, что софт под DOS могут писать намного менее квалифицированные специалисты, причем делать это намного быстрее.
В 1981 году Билл Гейтс (благодаря родственным связям) получает контракт от IBM на разработку операционной системы для компьютеров IBM PC для чего он нанимает Тима Патерсона который адаптирует 86-DOS под требования IBM. Проблему совместимости с различным аппаратным обеспечением. Решать не стали в принципе, а сделали систему драйверов — программ отвечающих за совместимость программного и аппаратного обеспечения. В результате DOS и его производные нельзя назвать полноценными операционными системами. Из-за жесткой привязки к архитектуре IBM PC стали всплывать один за другим конструктивные недостатки ОС (например проблема 640кб оперативной памяти) которые решались костылями в программном обеспечении (например EMS).
1983 год стал дважды эпохальным:
Во-первых Ричард Столлман объявил о создании проекта GNU — попытки создания свободной UNIX-подобной операционной системы с нуля, без использования оригинального исходного кода. Однако работы по созданию замены для ядра UNIX, необходимые для полного выполнения задач GNU, продвигались крайне медленно.
Во-вторых компания Apple создала графический пользовательский интерфейс, который массово внедрялся в компьютеры компании с 1984 года.
Помимо этого Б. Гейтс схватился за голову и стал разрабатывать собственную операционную систему с графическим интерфейсом.
В 1985-м году Microsoft собрало из костылей перую версию Windows. Почему из костылей? Потому что Apple писал графическую ОС, а Гейтс пытался сделать надстройку над DOS. В результате первый блин вышел комом — Windows 1.0 не позволяла запускать ряд DOS программ из-за изменения кода DOS, но так же не была способна запускать собственные программы. Общее мнение было однозначным — может быть когда нибудь из этого что-то толковое получиться.
Ситуация с ядром для свободного программного обеспечения неожиданно разрешилась в 1991 году, когда финский студент Линус Торвальдс опубликовал ядро Linux, в связи с чем начальные работы по ядру проекта GNU остановились.
В 1992 году Microsoft удалось создать операционную систему с нормальным графическим интерфейсом, которая не задевала код DOS. Эта система стала эпохальной для MS и по другой причине. В MS перестали вести полную документацию для программного обеспечения. То есть получилась система которая работает, но никто не знает как. С этого же момента MS провозгласил идеологию инкапсуляции т.е. рукожопство и инди-код.
В 1993 году вышла первая публичная демонстрация Windows NT которая так же стала своего рода эпохальной. Эпохальность заключалась в том, что API операционной системы был двухслойным, причем «нижний» слой не был документирован от слова совсем. Помимо этого Windows NT включал в себя подсистемы совместимости с 3 различными версиями программного обеспечения (старые версии Windows, OS/2, POSIX).
В этом же году появился и первый дистрибутив Linux — Slackware.
А UNIX из-за внутренней конкуренции и авторских прав «корежило», в итоге в 1994 году UNIX под названием *BSD так же стал открытым программным обеспечением.
В 1995 году MS на базе Windows NT выпускает Windows 95. Эта система стала первой где графический интерфейс не мешал DOS, а наоборот расширял его. Более того графические приложения получили собственный API. В 1998 году была проведена актуализация ОС с собственным именем Windows 98.
В этом же году появляется первый коммерческий дистрибутив OS Linux — Red Hat и наиболее мощный свободный дистрибутив — Debian. С этого момента начался бурный рост Linux. Следует отметить, что Linux по своей структуре (написание кода независимыми разработчиками) не имеет глобальных вех — это стабильное динамичное развитие, постоянное появление новых подходов, технологий, решений.
В 1998-м году в качестве задела на будущее компания Microsoft начинает проект Windows NT, которая копирует идеологически чуждую архитектуру UNIX. В этом же году создается стандарт POSIX — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API), библиотеку языка C и набор приложений и их интерфейсов. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем. То есть полная единая документация «что и как» для всех UNIX-подобных ОС.
В честь нового тысячелетия в 2000 году произошли следующие события:
После затянувшегося кризиса Apple кардинально меняет политику и уходит с оригинальных разработок операционной системы на общей с Microsoft базе CP/M и переходит к стандартам POSIX объединив сразу 2 ветки пост-UNIX ОС — NeXTSTEP и FreeBSD. Таким образом с 2000 года существуют 2 основные ветки программного обеспечения: близкие к POSIX (Apple, UNIX, Linux, BSD и др.) и Windows.
Microsoft после 6 лет напряженной работы выпускает Windows 2000 которая по своим характеристикам уже стала напоминать что-то пригодное для работы. Была создана вменяемая серверная часть ОС, приличная файловая система.
В 2001-м году выходит переработанный под пользователя Windows XP, а в 2003-м Windows Server 2003. Обое ОС (в плане реализации функций ОС, а не сервисов) кроме названия ничем не отличаются.
В 2006-м году вышла Windows Vista. К сожалению пользователей ОС хоть и содержала много нововведений, но вышла слишком сырой. В этом же году вышел наиболее популярный на сегодняшний день дистрибутив Linux — Linux Mint (на базе Ubuntu).
В 2009-м году выходит Windows 7, по сути работа над ошибками Windows Vista. Главными особенностями стали — поддержка стандарта кодировок, ориентированность на сенсорные экраны, улучшены графические приложения, в частности панель задач переделана по образу дока MacOS X.
В 2012 году обобщив понравившиеся пользователям нововведения на рынке ОС (в том числе мобильных) Microsoft выпускает Windows 8. Кроме идиотского интерфейса и традиционного внедрения спи. ных идей у других ОС ничем не примечательна.
В 2015 году вышла очередная сборка Windows. Опять внедрили популярные функции других ОС и добавили зашифрованный шпионаж. Собираются такие данные как: имя, адрес электронной почты, предпочтения и интересы, журнал браузера, журнал поиска и история файлов, данные телефонных звонков и SMS-сообщений, конфигурация устройств и данные с датчиков, ключи шифрования жесткого диска, пароли к сетям WiFi, а также данные об использовании приложений. Также могут собираться все данные, вводимые с клавиатуры, рукописно или через системы распознавания речи. Сбор данных может происходить при установке программ, использовании голосового поиска, открытии файлов, вводе текстов. Собранные данные могут передаваться третьей стороне с согласия пользователя для предоставления запрошенных услуг, а также предоставляться изготовителям оборудования.
В настоящее время за Windows 90% настольных ПК, однако доля серверов под управлением этой ОС менее 4%. Безусловный проигрыш в серверном сегменте подтвержден началом разработки Azure Cloud Switch (собственного дистрибутива Linux).
В следующей статье я расскажу об архитектуре ядер ОС Windows и Linux.
4. Операционные системы Windows и Linux
Среди графических операционных систем самыми распространенными для офисных и домашних компьютеров являются операционные системы Windows фирмы Microsoft. К достоинствам ОС Windows относится, в частности:
- распространенность и доступность;
- широкие функциональные возможности;
- наличие большого количества приложений и дополнений.
- высокая коммерческая цена;
- закрытый исходный код программы;
- низкий уровень защиты от вирусов;
- возможность зависания программ и замедления в работе компьютера;
- высокие требования к аппаратной части компьютера.
- обладает всеми возможностями, которые присущи современным полнофункциональным операционным системам;
- предоставляет пользователю исходные тексты программ;
- имеет высокое быстродействие и надежность;
- практически не подвержена вирусному заражению;
- имеет хорошую учебную документацию;
- дает возможность совершенствования существующей системы при решении конкретных задач.
Лекция 6. Технологии моделирования и построения алгоритмов
1. Моделирование как процесс упрощения задачи
- вербальные (текстовые) – построены с помощью текстового описания;
- материальные (предметные) – воспроизводятся в форме реального объекта;
- информационные (теоретические) – отражают данные об объекте в форме чертежей, рисунков, компьютерных программ и т.п.
- Предметное моделирование заключается в создании материальной модели, имеющей некоторые свойства оригинала (модели самолетов, кораблей, автомобилей)
- Физическое моделирование выражается в экспериментальном исследовании модели, имеющей общие свойства с оригиналом (изучение молнии как электрического разряда между проводниками)
- Аналоговое моделирование основано на аналогии (изоморфизме) различных явлений, для которых можно использовать одинаковое описание (форма самолета и летящей птицы)
- Знаковое моделирование использует для построения модели в форме схемы, графика, чертежа или других знаковых систем (периодическая таблица Д.И. Менделеева).
- Мысленное моделирование – это разновидность знакового моделирования, при котором реальное построение заменяется мысленным представлением знаков или операций над ними (игра в шахматы вслепую).