Одной из альтернатив семейству операционных систем Windows является семейство
операционных систем UNIX. Основное отличие и преимущество этой системы заключается
в том, что она реализована для очень широкого круга аппаратных платформ. Так,
например, серверная операционная система Windows NT существует только для аппаратных
платформ Intel и Alpha. В то же время, различные версии UNIX созданы для практически
любых компьютеров самых разных производителей, начиная с персональных и заканчивая
самыми мощными суперкомпьютерами. Благодаря своей необычайной гибкости за время,
прошедшее с момента своего появления в 1969 году, операционные системы семейства
UNIX получили широкое распространение на машинах различной мощности и архитектуры,
обеспечивая на них общие условия выполнения программ.UNIX является не только
многозадачной операционной системой, но и многопользовательской системой, которая
позволяет нескольким пользователям разделять вычислительные ресурсы одного компьютера.
Это свойство позволяет использовать UNIX в качестве операционной системы для
мини-компьютеров и суперкомпьютеров (мэйнфреймов), к которым пользователи подключаются
через терминалы.
В первых версиях UNIX взаимодействие с пользователем осуществлялось с помощью
командной строки. Затем появились различные варианты графического интерфейса
для UNIX. Графический интерфейс позволил существенно облегчить работу пользователей
и сделать систему легко доступной для тех, кто начинал работу в среде Windows.
Среди программного обеспечения, кроме мощных систем управления базами данных,
систем управления предприятием, банковских систем, систем автоматизированного
проектирования, для UNIX написано огромное количество прикладных программ, в
том числе текстовые процессоры, процессоры электронных таблиц, графические редакторы,
что делает UNIX еще более универсальной системой.
Средства сетевого взаимодействия являются неотъемлемой частью UNIX, что делает
эту систему удобной для создания различных гетерогенных систем, создания сетевых
приложений, а также для использования в качестве основной серверной платформы
в Интернете.
История семейства операционных систем UNIX началась в 1965 г., когда фирма Bell
Telephone Laboratories, объединив свои усилия с компанией General Electric и
проектом MAC Массачусетского технологического института, приступили к разработке
новой операционной системы, получившей название Multics. Перед системой Multics
были поставлены следующие задачи: обеспечить одновременный доступ к ресурсам
ЭВМ большого количества пользователей, обеспечить достаточную скорость вычислений
и хранение данных и дать возможность пользователям в случае необходимости совместно
использовать данные. Хотя первая версия системы Multics и была запущена в 1969
г. на ЭВМ GE 645, она не обеспечивала выполнение главных вычислительных задач,
для решения которых предназначалась, и не было ясно, когда цели разработки будут
достигнуты. Поэтому фирма Bell Laboratories прекратила свое участие в проекте.
Сотрудники Bell Laboratories, работавшие над проектом Multics, вынуждены были
перенести систему на другую аппаратную платформу. Пытаясь усовершенствовать
среду программирования, Кен Томпсон, Дэннис Ричи и другие набросали на бумаге
проект файловой системы, получивший позднее дальнейшее развитие в ранней версии
файловой системы UNIX. Томпсоном были написаны программы, имитирующие поведение
предложенной файловой системы в режиме подкачки данных по запросу, им было даже
создано простейшее ядро операционной системы. Томпсон воспользовался компьютером
PDP-7. Для того чтобы улучшить условия разработки, Томпсон и Ричи выполнили
на PDP-7 свой проект системы, включивший первую версию файловой системы UNIX,
подсистему управления процессами и небольшой набор утилит. Новая система получила
название UNIX, его придумал еще один из сотрудников Исследовательского центра
по информатике Bell Laboratories Брайан Керниган.
В 1971 г. система UNIX была перенесена на ЭВМ PDP-11. В тоже время Томпсон и
Ричи создали язык программирования С и написали для новой системы транслятор
с С. В 1973 г. система была заново написана на С, что позволило переносить систему
с одной аппаратной платформы на другую. Количество машин фирмы Bell Laboratories,
на которых была инсталлирована система, возросло до 25, в результате чего внутри
фирмы была создана группа по системному сопровождению UNIX. В то время корпорация
AT&T не могла заниматься продажей компьютерных продуктов, в соответствии
с соглашением, подписанным ею с федеральным правительством в 1956 году, и распространяла
систему UNIX среди университетов, которым она была нужна в учебных целях. Следуя
букве соглашения, корпорация AT&T не рекламировала, не продавала и не сопровождала
систему. Несмотря на это популярность системы устойчиво росла. К 1977 году количество
компьютеров, на которых функционировала система UNIX, увеличилось до 500, причем
125 из них работали в университетах. Система UNIX завоевала популярность среди
телефонных компаний, поскольку обеспечивала хорошие условия для разработки программ,
обслуживала работу в сети в режиме диалога и работу в реальном масштабе времени.
Помимо университетов, лицензии на систему UNIX были переданы коммерческим организациям.
С ростом популярности мини- и микрокомпьютеров другие компании стали переносить
систему UNIX на новые аппаратные платформы, однако ее простота и ясность побудили
многих разработчиков к самостоятельному развитию системы, в результате чего
было создано несколько вариантов базисной системы. За период между 1977 и 1982
годами фирма Bell Laboratories объединила несколько вариантов, разработанных
в корпорации AT&T, в один, получивший коммерческое название UNIX версия
III. В дальнейшем фирма Bell Laboratories добавила в версию III несколько новых
особенностей, назвав новый продукт UNIX версия V, и эта версия стала официально
распространяться корпорацией AT&T с января 1983 года. В то же время сотрудники
Калифорнийского университета в Беркли разработали вариант системы UNIX, получивший
название BSD 4.3 для машин серии VAX и отличающийся некоторыми новыми интересными
особенностями. К началу 1984 года система UNIX уже была инсталлирована приблизительно
на 100 000 компьютеров во всем мире.
В настоящее время существует множество версий операционной системы UNIX от различных
производителей. Среди них можно выделить несколько наиболее известных коммерческих
версий: SunOS и Solaris для компьютеров компании Sun, AIX для мини-компьютеров
компании IBM, IRIX для компьютеров компании Silicon Graphics, SCO UNIX компании
Santa Cruz Operation (SCO) для компьютеров на платформе Intel, - а также свободно
распространяемых: FreeBSD и Linux для компьютеров на платформе Intel.
Таким образом, можно суммировать основные причины популярности системы UNIX:
- система написана на языке высокого уровня, благодаря чему ее легко понимать,
изменять и переносить на другие аппаратные платформы;
- наличие простого пользовательского интерфейса, в котором имеется возможность
предоставлять все необходимые пользователю услуги;
- наличие иерархической файловой системы, легкой в сопровождении и эффективной
в работе;
- обеспечение согласования форматов в файлах, работа с последовательным потоком
байтов. Наличие простого последовательного интерфейса с периферийными устройствами;
- наличие встроенных средств поддержки компьютерных сетей, что делает систему
UNIX одной из самых популярных серверных платформ в Интернете;
- система является многопользовательской, многозадачной; каждый пользователь
может выполнять одновременно несколько процессов;
- архитектура машины скрыта от пользователя, благодаря этому облегчен процесс
написания программ, работающих на различных конфигурациях аппаратных средств.
Отличительными особенностями операционной системы UNIX являются наличие ядра
и организация файловой системы. Ядро непосредственно взаимодействует с аппаратной
частью компьютера, изолируя прикладные программы от особенностей архитектуры
компьютера. Кроме того, ядро предоставляет прикладным программам определенный
набор услуг: операции ввода/вывода, создания и управления процессами, синхронизации
и межпроцессорного взаимодействия.
В основе взаимодействия ядра и прикладных программ лежит концепция процесса
- единицы управления и единицы потребления ресурсов. Процесс представляет собой
программу в состоянии выполнения, причем в UNIX в рамках кого процесса не могут
выполняться никакие параллельные действия.
Каждый процесс работает в своем виртуальном адресном пространстве. Совокупность
участков физической памяти, отображаемых на виртуальные адреса процесса, называется
образом процесса.
При управлении процессами операционная система использует два основных типа
информационных структур: дескриптор процесса и контекст процесса.
Дескриптор процесса содержит такую информацию о процессе, которая необходима
ядру в течение всего жизненного цикла процесса, независимо оттого, находится
ли он в активном или пассивном состоянии, находится ли образ процесса в оперативной
памяти или выгружен на диск. Дескрипторы отдельных процессов объединены в список,
образующий таблицу процессов. Память для таблицы процессов отводится динамически
в области ядра. На основании информации, содержащейся в таблице процессов, операционная
система осуществляет планирование и синхронизацию процессов. В дескрипторе прямо
или косвенно (через указатели на связанные с ним структуры) содержится информация
о состоянии процесса, расположении образа процесса в оперативной памяти и на
жестком диске, о значении отдельных составляющих приоритета и его итоговом значении
- глобальном приоритете. Кроме того, дескриптор содержит идентификатор пользователя,
создавшего процесс, информацию о родственных процессах, о событиях, осуществления
которых ожидает данный процесс, и другую информацию.
Контекст процесса содержит менее оперативную, но более объемную часть информации
о процессе, необходимую для возобновления выполнения процесса с прерванного
места: содержимое регистров процессора, коды ошибок выполняемых процессором
системных вызовов, информацию о всех открытых данным процессом файлов, о незавершенных
операциях ввода/вывода и другие данные, характеризующие состояние вычислительной
среды в момент прерывания. Контекст так же, как и дескриптор процесса, доступен
только программам ядра, то есть находится в виртуальном адресном пространстве
операционной системы, однако он хранится не в области ядра, а непосредственно
примыкает к образу процесса и перемещается вместе с ним, если это необходимо,
из оперативной памяти на диск. В UNIX для процессов предусмотрены два режима
выполнения: привилегированный и обычный. В привилегированном режиме выполняются
функции ядра системы, а в обычном режиме - программы пользователя.
Файловая подсистема UNIX обеспечивает единый интерфейс доступа к данным, расположенным
на накопителях, и к периферийным устройствам. Одни и те же функции могут использоваться
при записи данных на жесткий диск и при выводе информации на принтер.
Программы, выполняемые под управлением системы UNIX, не содержат никакой информации
относительно внутреннего формата, в котором ядро хранит файлы данных, данные
в программах представляются как бесформатный поток байтов. Программы могут интерпретировать
поток байтов по своему желанию, при этом любая интерпретация никак не будет
связана с фактическим способом хранения данных в операционной системе.
В последнее время все более популярными становятся реализации операционной системы
UNIX для персональных компьютеров. Одной из таких реализаций является Linux.
Linux - это оригинальная реализация UNIX для платформы Intel, выполненная молодым
сотрудником университета Хельсинки Торвальдом Линусом. Linux распространяется
свободно, является очень экономичной операционной системой.
Linux поддерживает большинство свойств, присущих другим реализациям UNIX, и
является полной многозадачной и многопользовательской операционной системой.
Большинство свободно распространяемых по сети Интернет программ для UNIX можно
откомпилировать для Linux практически без особых изменений. Кроме того, все
исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские
программы и инструментальные средства, распространяются свободно.
Другой специфической внутренней чертой Linux является поддержка национальных
и стандартных клавиатур динамически загружаемыми драйверами, что делает эту
систему более универсальной.
Linux поддерживает различные типы файловых систем для хранения данных. Некоторые
файловые системы были созданы специально для Linux. В Linux реализована также
файловая система MS DOS, позволяющая прямо обращаться к файлам MS DOS на жестком
диске, а также файловая система ISO 9660 CD-ROM для работы с дисками CD-ROM.
Linux обеспечивает полный набор протоколов TCP/IP для работы в сети.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.