Операционные системы семейства unix и windows

Время на прочтение
7 мин

Количество просмотров 106K

Введение

В последнее время наблюдается большой приток пользователей Linux. Как правило это люди уже имеющие вполне приличный опыт в общении с компьютером, но этот опыт в большинстве случаев ограничен одной системой. Естественно, что этой системой является самая распространенная на сегодня на дескотопах операционная система компании Microsoft MS Windows. Большое число пользователей Windows также ставят Linux, или запускают его с «Live CD» «на посмотреть».

И тут возникает сразу несколько проблем, связанных с тем, что новые пользователи Linux ожидают увидеть перед собой «еще один Windows». А Linux — это совсем не клон Windows, это совсем другая система, с другой основой, другими традициями, другими возможностями и другими требованиями к пользователю.

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

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

Экскурс в историю (очень краткий)

Для сравнения, думаю невредно освежить в памяти краткую историю сравниваемых операционных систем.

История Unix

Операционная система UNIX была создана еще до эры коммерческого софта. Она писалась инженерами, как система «для себя». Поэтому в нее были заложены передовые на то время концепции. В дальнейшем своем развитии при добавлении новых черт, обычно считалось, что делать нужно «правильно». Т.е. например если нужно было выбирать из двух решений, одно из которых было с инженерной точки зрения «неправильным», например повышало производительность сегодня, но могло принести затруднения в дальнейшем, как правило, такое решение отвергалось и выбиралось «правильное» решение, пусть и с определенной потерей производительности.

Первые версии UNIX были написаны на Ассеблере, затем система была переписана на СИ. Это дало системе уникальную переносимость. На PC UNIX был портирован, а точнее заново написан (Linux) сразу, как только развитие PC, а точнее выпуск PC на процессоре i386, позволило это сделать.

В 1985 году стартовал проект POSIX. Это стандарт на интерфейсы UNIX-подобных ОС. Во многом благодаря наличию такого стандарта, так быстро смог появится на свет и достигнуть зрелости Linux — свободная воплощение UNIX.

Развитие интернета с самого начала и до нашего времени неразрывно связано с серверами под управлением ОС UNIX. Сначала с коммерческими, а теперь все больше и больше со свободными.

С точки зрения коммерциализации развитие UNIX можно разделить на три этапа.

  1. Некоммерческое распространение в университетах.
  2. Распространение коммерческих UNIX систем.
  3. Появление свободных реализаций (Linux, FreeBSD) и вытеснение коммерческих систем (настоящий момент).

До появления системы X Window System UNIX была системой с текстовым интерфейсом, затем добавился графический, но традиционно текстовый интерфейс сохраняет важное значение.

Очень важно то, что UNIX с самого начала был многозадачной и многопользовательской системой. Т.е. на одной машине могут работать сразу несколько пользователей, и выполняться несколько программ одновременно.

Фирменной чертой всех UNIX-подобных ОС была и остается надежность.

Табличка:

Год Событие Комментарий Разр Многопольз. Многозадачн.
1971 Первая версия UNIX На ассемблере 32 Есть Есть
1973 Третья версия UNIX На Си 32 Есть Есть
1983 TCP/IP 32 Есть Есть
1983 Проект GNU стартовал Подготовил свободную обвязку для UNIX- подобных ОС 32 Есть Есть
1984 X Window System Оконная система 32 Есть Есть
1985 Стартовал проект POSIX Стандарты интерфейсов UNIX-подобных систем 32 Есть Есть
1991 Появление Linux Первая свободная реализация ядра UNIX для PC, 32 разрядная, сеть 32 Есть Есть
1993 Появление FreeBSD Еще одна свободная реализация ядра UNIX для PC, 32 разрядная, сеть 32 Есть Есть
История 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 появилась и возможность работать нескольким пользователям, хотя и более ограниченная и гораздо менее удобная, чем у UNIX-подобных ОС.

Табличка:

Год Событие Комментарий Разр Многопольз. Многозадачн.
1981 DOS 16 Нет Нет
1985 Windows 1.0 Надстройка над DOS 16 Нет Нет
1990 Windows 3.0 Надстройка над DOS 16 Нет Есть
1992 Windows For Workgroups 3.1 Надстройка над DOS, сеть 16 Нет Есть
1995 Windows 95 сеть 16/32 Нет Есть
1993 Windows NT сеть 32 с 1998 Есть
2000 Windows 2000 сеть 32 Есть Есть
2005 Windows XP сеть 32 Есть Есть
2007 Windows Vista сеть 32 Есть Есть
Техническое устройство с точки зрения пользователя
UNIX

С точки зрения пользователя UNIX устроен примерно так:

  1. Ядро. Работает с устройствами, управляет памятью и процессами.
  2. Текстовая подсистема, работа с системой через терминал. Причем для управления всеми возможностями ОС достаточно только текстовой подсистемы. Возможно вход через эту подсистему многих пользователей. Богатый набор как встроенных утилит, так и приложений, работающих в текстовом режиме.
  3. Графическая подсистема Xwindow. Запускается как процесс в системе.
  4. Система удаленного доступа в текстовом режиме. Позволяет полноценную работу с ОС в текстовом режиме. Потребляет мало ресурсов. Позволяет работать на сравнительно слабых компьютерах одновременно десяткам и сотням пользователей. Количество сессий ограничено ресурсами компьютеров.
  5. Система удаленного доступа в графическом режиме. Позволяет одновременно работать нескольким пользователям в графическом режиме. Количество сессий ограничено ресурсами компьютеров.
  6. Система передачи графического окна приложения на другой компьютер. Позволяет запустив приложение на одном компьютере, управлять им с другого компьютера, через окно приложения, передаваемое на этот другой компьютер. Количество сессий ограничено ресурсами компьютеров.
Windows
  1. Ядро. Работает с устройствами, управляет памятью и процессами, управляет графической подсистемой.
  2. Графическая подсистема. Обеспечивает интерфейс с пользователем. Приоритетная система для пользовательского интерфейса.
  3. Текстовая подсистема. Обеспечивает текстовый интерфейс с пользователем. Текстовый интерфейс весьма урезанный. Набор утилит текстового режима как встроенных, так и других производителей весьма куцый. Синтаксис и состав команд текстового режима меняется от версии к версии. Запускается только поверх графического режима.
  4. Система удаленного доступа. Появилась впервые, как встроенная в систему, в Windows NT Server 4.0. До этого были только продукты других фирм. В связи с тем, что запускается полноценная графическая сессия, кушает очень много ресурсов. Наличие системы удаленного доступа и количество одновременных сессий может вообще отсутствовать или быть ограничено в разных версиях из коммерческих соображений.
Сравнение концепций

Давайте теперь рассмотрим, чем отличается подход к работе в этих двух системах.

UNIX: Концепция «Toolbox»

Поскольку UNIX разрабатывалась инженерами и для инженеров, в ее основу была положена концепция toolbox (ящик с инструментами). Что это значит? Это значит, что при создании софта и встроенных утилит для UNIX не делали универсальные программы, каждая из которых выполняла бы внутри себя все, необходимые пользователю действия, а для каждой небольшой задачи создавалась своя утилита, которая выполняла свою задачу, только одну, но делала это хорошо. Дело пользователя было при помощи набора этих утилит выполнить операции, которые ему нужно сделать.

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

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

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

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

Windows: Концепция «Тостер»

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

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

Плюс такого подхода — легкость вхождения неподготовленного пользователя. Минус — то, что обманутый кажущейся легкостью пользователь вообще не хочет ничему учиться и не выполнять необходимых действий. На поводу идут и производители софта. Это одна из причин такого обилия документов отформатированных пробелами, пренебрежения безопасностью и как следствие вирусных эпидемий.

Заключение

Конечно, в обоих системах не доминирует свой подход на 100 процентов. Как в Windows есть возможность пользоваться текстовой консолью и создавать .bat файлы, так и в UNIX есть большой набор программ, со свойствами присущими скорее «тостерному» подходу. И все таки описанная разница в подходах есть и она достаточно ярко выражена.

Литература

1. http://ru.wikipedia.org/wiki/UNIX
2. http://ru.wikipedia.org/wiki/Windows
3. http://ru.wikipedia.org/wiki/ДОС
4. http://posix.ru/
5. http://ru.wikipedia.org/wiki/POSIX

In this article, we will be looking into the major difference between UNIX and Windows Operating System.

 UNIX : 

UNIX is a powerful, multi-user, and multitasking operating system originally developed at AT & T Bell Laboratories. This operating system is very popular among the scientific, engineering, and academic due to its most appreciated features like flexibility, portability, network capabilities, etc. 

 Windows :

Microsoft window is a Graphical User Interface (GUI) based operating system that provides graphical user-friendly alternatives for most of the command-line based functions. Microsoft introduced a series of versions with the latest functions. 

Difference between UNIX and Windows Operating System : 

Here we will discuss the various differences between UNIX and Windows operating systems, based on various parameters.

1. Licensing:

UNIX was developed as an open-source OS using C and Assembly languages. Since being open source UNIX, and its various Linux distributions account for the most used OS in the world.  Unix and all its Linux distributions are available under the General Public License.

Windows Operating System is proprietary software owned by Microsoft, meaning its source code is not available to the public.

2. User Interface:

Unix operating systems are relatively harder to grasp and produce significant barriers for newcomers. However, some Linux distributions like Ubuntu are changing such perceptions by bringing in more GUI-based applications.

Windows Operating System on the other hand is designed with the outset of keeping the UI as simple and user-friendly as possible, so that non-IT people can easily use computers for their work.

3. Processing:

UNIX operating system supports Multiprocessing, meaning many processes are executed simultaneously. In Multiprocessing, every process has a separate address space and CPUs can be added for increasing computing power.

Windows Support Multithreading, meaning many threads are created from a single process for increasing computing power. In multithreading, many threads of a process are executed simultaneously where common address space is shared by all the threads.

4. File System:

UNIX operating system uses STD.ERR and STD.IO file systems or the UFS (Unix File System) and treats all physical drives as one logical drive. It has a robust and efficient file system. File system is represented as a hierarchical tree under the same root.

Windows on the other hand, uses File Allocation Table (FAT32) and New Technology File System(NTFS) systems for managing files and requires the owner of the executables before executing, files store in folders on different data drive like, C,D,E.

5. Users Accounts:

In the Linux system, there are three types of user accounts:

  • Regular: These accounts have the moderate privilege to intended for routine works, it can perform only the task for access only those files and services for which it is authorized.
  • Root: This account is the main user account of a Linux system, it has the highest privilege to work administrative level work to manage all the services. This is also known as superusers.
  • Service: This account is generally used by services to run the process.

In Windows, there are three types of user accounts:

  • Administrator: This account controls all the services and allows user to make changes and check the activities of other users
  • Child: This account comes with Family Safety settings which is assigned by the admin.
  • Guest: This account has no standard accounts with no privacy, it allows to other people use your computer without being able to change PC settings and install applications.

6. File Name Convention:

In Linux, we can save two files with the same name.

But in windows, we can not save with the same name. It generates errors:

7. Security:

UNIX is more secure by design. The primary protection on a Unix system is that executing a “.exe” file is much more difficult. Here executables cannot be processed without explicit permission as all processes in Unix are treated equally. But these are slowly changing as Unix distributions are moving more towards GUI and now relying on the application security itself. 

Another advantage of Unix systems is that getting rid of viruses is easier, as viruses can only infect user accounts and the root remains intact and pure.

Windows is less secure in the sense that it is simple to execute files with minimal permission. These can further lead to the installation of Malwares unknowingly on the system.

8. Data Backup & Recovery:

In the earlier version of UNIX, salvaging data from a system when the device housing the said data is inaccessible, was not possible. But in some distributions of Linux like Ubuntu, a new feature is introduced called Live distribution can be used to recover data from an inaccessible device.

Recovery and Backup of data in the Windows system are much simpler and can be done using its inbuilt GUI for the same. It has an integration with OneDrive for data backup and recovery too.

9. Case Sensitivity:

Unix is completely case-sensitive, meaning the files with names “GFG.txt” and “gfg.txt” can be considered two different files. Windows, on the other hand, have optional case sensitivity.

10. Hardware:

Hardware support is limited in UNIX systems. Some hardware might not have drivers built for them. Windows has almost all the drivers for all the available hardware.

11. Reliability:

Unix is known for being very stable to run. Although the stability of Windows has significantly improved in recent years, most Unix systems are still far superior in this respect.

S. No. Parameters UNIX Windows
1. Basic It is a command-based operating system. It is a menu based operating system.
2. Licensing It is an open-source system which can be used to under General Public License. It is a proprietary software owned by Microsoft.
3. User Interface It has a text base interface, making it harder to grasp for newcomers. It has a Graphical User Interface, making it simpler to use.
4. Processing It supports Multiprocessing. It supports Multithreading.
5. File System It uses Unix File System(UFS) that comprises STD.ERR and STD.IO file systems. It uses File Allocation System (FAT32) and New technology file system(NTFS).
6. Security It is more secure as all changes to the system require explicit user permission.  It is less secure compared to UNIX.
7. Data Backup & Recovery It is tedious to create a backup and recovery system in UNIX, but it is improving with the introduction of new distributions of Unix. It has an integrated backup and recovery system that make it simpler to use.
8.  Hardware Hardware support is limited in UNIX system. Some hardware might not have drivers built for them. Drivers are available for almost all the hardware.
9. Reliability Unix and its distributions are well known for being very stable to run.  Although Windows has been stable in recent years,  it is still to match the stability provided by Unix systems.
10. Case Sensitive It is fully case-sensitive, and files can be considered separate files.  It has case sensitivity as an option.

Last Updated :
31 May, 2022

Like Article

Save Article

Основная
особенность Windows 8 — ее массовое
распространение. Связано это с тем, что
это операционная система, созданная
для пользователей, она не заставляет
пользователя подстраиваться под систему,
она подстраивается под его потребности.
Это самая распространенная в мире
операционная система, несмотря на то,
что по общественному мнению она самая
«глючная», «нестабильная», ненадежная»
и к тому же платная.

С
точки зрения пользователя Windows устроен
примерно так:

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

2.     Графическая
подсистема. Обеспечивает интерфейс с
пользователем.

3.     Текстовая
подсистема. Обеспечивает текстовый
интерфейс с пользователем.

4.     Система
удаленного доступа.

Преимущества
ОС Windows 8: Гарантированная
100 процентная поддержка любого оборудования,
для этого ОС найдется драйвер любого
устройства, да и сама она содержит много
предустановленных драйверов для быстрого
распознавания оборудования. Существует
масса профессиональных прикладных
программ, полнофункциональные аналоги
которых отсутствуют в других ОС, например,
Promt и Photoshop. Простота и понятность
интерфейса, что делает ее доступной для
использования любому человеку, даже не
имеющему первичных навыков работы с
компьютером. Пользователь может получить
любую поддержку или консультацию по
его лицензионной ОС Windows 8.

Недостатки
ОС Windows
8: Данная
ОС очень требовательна к аппаратным
ресурсам компьютера, особенно к объему
оперативной памяти. Ее графический
интерфейс, хоть и красив, и удобен, но
громоздок и неповоротлив. Данная система
считается более уязвимой в плане
безопасности, чем остальные. Система
является платной, ее цена превышает
затраты на покупку или скачку свободно
распространяемой ОС.

Linux
– многозадачная и многопользовательская
операционная система    для
образования, бизнеса, индивидуального
программирования. Linux    принадлежит
к семейству UNIX-подобных операционных
систем. Фирменной чертой всех UNIX-подобных
ОС была и остается надежность.

С точки зрения
пользователя UNIX устроен примерно так:

1.     Ядро.
Работает с устройствами, управляет
памятью и процессами.

2.     Текстовая
подсистема, работа с системой через
терминал

3.     Система
удаленного доступа в текстовом режиме.

4.     Система
удаленного доступа в графическом режиме.

5.     Система
передачи графического окна приложения
на другой компьютер

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

Недостатки: Несмотря
на очень большой объём ПО, написанного
для Linux, пользователи, столкнутся с тем
что, часть ПО будет для них незнакомым…
Наибольшие проблемы возникают со
специализированным профессиональным
софтом, значительная часть которого
написана только для Windows-систем. 
Unix
состоит из ядра с включенными в него
драйверами и из утилит (внешних по
отношению к ядру программ). Если надо
изменить конфигурацию (добавить
устройство, изменить порт или прерывание),
то ядро пере собирают (перелиновывают)
из объектных модулей или (напр., во
FreeBSD) из исходников. Это не совсем верно.
Некоторые параметры можно поправить
без переборки. Существуют также loadable
kernel modules.

В
противоположность Unix’у Windows (если не
уточняется, какая, то имеются в виду
3.11, 95 и NT) и OS/2 при загрузке фактически
на ходу перелиновывают драйверы. При
этом компактность собранного ядра и
повторное использование общего кода
на порядок ниже, чем у Unix. Кроме того,
при

неизменной
конфигурации системы ядро Unix без
переделки (потребуется изменить только
стартовую часть BIOS) может быть записан
в ПЗУ и выполняться не загружаясь_ в
ОЗУ. Компактность кода особенно важна,
т.к. ядро и драйверы никогда не покидают
физическую оперативную память, не
сводятся на диск.

Unix
— самая много платформенная OS. Windows NT
пытается подражать ему, но пока это
плохо удается — после отказа от MIPS и
POWER-PC, W’NT остались всего на двух платформы
— традиционная i*86 и DEC Alpha.

Переносимость
программ с одной версии Unix на другую
ограничена. Неаккуратно написанная
программа, не учитывающая различий в
реализациях Unix, делающая необоснованные
предположения типа ‘переменная integer
должна занимать четыре байта’ может
потребовать серьезной переделки. Но
все равно это на много порядков легче,
чем, например, перенести с OS/2 на NT

ЗАКЛЮЧЕНИЕ

Итак,
данной работе мы рассмотрели наиболее
важные этапы создания операционных
систем Unix
и отличия от семейства Windows.

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

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

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

Ведутся
работы над более развитыми версиями
BSDNet. Windows
– подойдет людям, которым нужен
мультимедийный центр (музыка, кино,
интернет, игры). И для тех, кому нужен не
дорогой и не слишком сложный в использовании
компьютер для работы. Linux, да и вообще
UNIX-подобные системы — лучший вариант
для серверов. Профи (программисты,
хакеры, системные администраторы) любят
эти системы за высокую гибкость и
надежность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

Причина того, что речь идет о семействе операционных систем
UNIX, а не об одной операционной системе, заключается в том, что
UNIX-семейство развивалось значительное время в различных, за-
частую не связанных друг с другом, коллективах разработчиков.

Первый вариант ОС UNIX был создан в 1969 г. несколькими программистами лаборатории Bell Labs фирмы АТ&Т и работал на компьютере РОР-7. Операционная система использовалась для решения практических задач сотрудников лаборатории, и широкое ее
распространение не планировалось. Через некоторое время большая часть операционной системы была переписана с языка ассемблера на язык С, что дало возможность перенести ее на большое
количество разных платформ. В настоящее время МХ работает
на большинстве существующих архитектур и для многих из них является основной ОС.

Дальнейшее развитие УМГХ-систем, разработанных в АТ&Т,
и их производных называется System V (пятая версия), сокращенно
SysV (иногда используется название АТ&Т-версия UNIX).

В середине 1970-х гг. исходный код УМХ попал в университет
Беркли, где была создана своя версия ОМПХ, получившая название
BSD UNIX (Berkeley Software Distribution).

В настоящее время большинство вариантов МХ основаны или
на System V, или на BSD (рис. 1.3}.

Обе ветви в той или иной степени удовлетворяют различным
стандартам, в частности стандарту POSIX, и в последнее время вырабатываются единые стандарты. Наиболее современные варианты
UNIX, удовлетворяющие требованиям этих стандартов, нельзя чет-
ко отнести ни к той ни к другой ветви. В их число входят IRIX (разработка Silicon Graphics), Digital OSF (разработка DEC) и Linux,
ранние версии которой были основаны на MINIX, разработанной
Энди Таненбаумом.

Рис 1.3. Генеалогическое древо различных вариантов UNIX

Рис 1.3. Генеалогическое древо различных вариантов UNIX

Кроме того, к общему генеалогическому древу ОС семейства
ОМХ следует отнести отечественные разработки: операционные
системы МОС ЕС для ЕС ЭВМ. АЕМОС для ВС ЭВМ и СМ ЭВМ,
ИНМОС для СМ ЭВМ.

Совершенно другая ситуация наблюдается, когда речь заходит
об операционных системах семейства Windows. Данные операционные системы разрабатывались и разрабатываются однойединственной компанией — Microsoft— на протяжении вот уже
более 20 лет.

История операционных систем Windows начинает свой отсчет
с 1985 г., когда была разработана ОС Windows 1.0. Эта система
не являлась полноценной ОС, а была по большей части лишь графической оболочкой для операционной системы МS DOS. Она реализовывала ограниченную поддержку многозадачного режима для программ под ОС MS DOS. В это же самое время Microsoft совместно с фирмой IВМ разрабатывала полноценную многозадачную
операционную систему с графическим интерфейсом — ОS/2. Из-
начально именно операционная система ОS/2 была призвана заме-
нить устаревающую МS DOS, но в начале 1990-х гг. пути Microsoft
и IВМ разошлись и Microsoft сконцентрировалась исключительно
на развитии своей собственной операционной системы на основе
Windows.

В 1990 г. на свет появилась ОС Widows 3.0, которая стала существенным шагом в развитии операционных систем семейства
Windows. В 1992 г. вышла значительно переработанная версия ветки Windows 3.х — Windows 3.1, в которой появились поддержка
шрифтов TrueType, печать в режиме WYSVIG, была повышена
стабильность работы, добавлены мультимедийные свойства и т.д.

Следующим этапом в развитии ветви операционных систем
Windows является семейство Windows 9х. В это семейство входят три версии операционной системы: Windows 95, Windows 98
и Windows МЕ. Эти операционные системы привнесли обновленный пользовательский интерфейс, поддержку длинных имен файлов, поддержку 32-битных приложений, поддержку стека ТСР/IР.
Данные операционные системы вызывали достаточно большие нарекания в плане стабильности работы. Фактически ядро этих операционных систем поддерживало так называемую вытесняющую
многозадачность (свопинг), позволяющую изолировать процессы
друг от друга и в идеале исключить зависания системы из-за зависания одного-единственного процесса. Но из-за того, что реализация части ядра мало отличалась от ядра ОС Windows 3.х, зависание,
например, единственного 16-битного приложения в системе приводило к зависанию всей операционной системы.

Совершенно на других принципах создавались системы на основе ветви Windows NT (Net Technology). Разработка этой ветви операционных систем семейства Windows началась в 1988 г. Это семейство оказалось наиболее удачной ветвью в развитии операционных систем Windows.

Первая версия, Windows NT 3.1, появилась в 1993 г. Затем с разницей в год последовательно выходили версии Windows NT 3.5,
3.51, 4.0. Версия Windows NT 4.0 имела интерфейс в стиле Windows
935, но страдала отсутствием поддержки DirectX — библиотеки для
программирования игровых приложений.

В 2000 г. вышла новая версия операционной системы на основе
ядра Windows NT — Windows 2000. Эта система включала новый
пользовательский интерфейс, поддерживала файловую систему
NTFS 3.0, а также содержала другие существенные изменения.

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

В 2006 г. была выпущена в свет операционная система Windows Vista. Эта система поддерживала новый пользовательский интерфейс Windows Aero на основе DirectX, появилась система User
Account Control (UAC} для контроля за действиями, выполняемыми пользователями, применялись технологии предотвращения использования эксплойтов Data Execution Prevention и Address Space Layout Randomization (ASLR) и т.д.

Несмотря на все нововведения данная версия подвергалась широкой критике и не получила достаточно широкого распространения в мире. В качестве замены этой версии в 2009 г. была выпущена операционная система УЛп4 ом 7. Эта система получила новую,
11-ю, версию Windows, улучшилась совместимость со старыми приложениями (по сравнению с Windows Vista}, был снова изменен пользовательский интерфейс системы ит. д.

В 2012 г. фирма Microsoft подготовила к выпуску операционную
систему Windows 8. Эта система содержит дополнительные улучшения в механизмах распознавания голоса, улучшенную систему
защиты от внедрения вредоносных программ, измененный интерфейс, напоминающий интерфейс мобильной версии Windows Phone 7, и т.д.

Помимо пользовательских версий операционных систем семейство Windows содержит и специальные версии для серверов, больших центров обработки данных и т.п. Фактически выход каждой
новой версии пользовательской операционной системы Windows,
особенно на основе ядра Windows NT, сопровождается выходом
{практически на том же ядре} серверной версии операционной
системы. Так, были выпущены серверные версии Windows Server
2003, Windows

«Чтобы найти истину, каждый должен хоть
раз в жизни освободиться от усвоенных
им представлений и заново построить
систему своих взглядов»
— Рене Декарт.

Статья, которая сейчас открыта в вашем браузере, посвящена детальному рассмотрению архитектуры UNIX и Windows. В ней мы постарались заглянуть внутрь этих двух операционных систем, опустившись на уровень ядра. Без внимания не остались и ошибки (исключения), которые могут возникнуть во время работы ОС. В заключение мы попросили сравнить различия между Windows и UNIX экспертов российской компании ASPLinux (www.asplinux.ru), которым каждый день на практике приходится сталкиваться с операционными системами на низком уровне.

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



Структура ОС UNIX

Заглянем глубже в ядро системы. Оно позволяет всем остальным программам общаться с периферийными устройствами, регулирует доступ к файлам, управляет память и процессами. Ядро — это связной, к которому обращаются посредством системных вызовов (запрашивая какую-то услугу). Связь эта — не односторонняя: ядро может и возвращать в случае необходимости какие-то данные. Основным достоинством ядра является строгая стандартизация системных API. За счет этого во многом достигается переносимость кода между разными версиями UNIX и абсолютно различным аппаратным обеспечением.



Структура ядра UNIX

Все обращения к ядру системы можно разделить на две категории: программа вызывает подсистему управления файлами или подсистему управления процессами. Первая отвечает за все, что связано с файлами: управление, размещение, доступ. Процессы же — это, в общем случае, любые запущенные программы. Поэтому подсистема управления процессами служит для их жизнеспособности, синхронизации и управления. Важно так же и то, что файловая подсистема и подсистема управления процессов могут общаться друг с другом: любой процесс может вызывать системные API для работы с файлами. Прелесть UNIX состоит в том, что эти API универсальны (да и в Windows наблюдается та же картина). Вот самые главные из них: open, close, read, write, stat, chown, chmod (суть почти всех вызовов интуитивно понятна из названия, кроме, разве что, последних трех, поэтому поясню — они служат для управления атрибутами файлов, информации о владельце и прав доступа) и др. Каждый из этих системных вызовов в программе на языке С является обычной функцией. Информацию по любому из них можно запросто найти в man.
Подсистема управления файлами — почти единственная из всех работает с драйверами, которые являются модулями ядра. «Почти», потому что есть еще и сетевая подсистема, которая работает, например, с драйвером сетевой карты и с драйверами различных современных сетевых устройств. Ее, однако, мы рассматривать не будем. Обмен данными с драйверами может проходить двумя способами: с помощью буфера или потока. Суть первого метода заключается в том, что для информации выделяется кэш (или сверхоперативная память, как его называли раньше), в который заносится необходимый блок данных. Далее информация из кэша передается к драйверу. Драйвер — единственный элемент ядра, способный управлять периферийными устройствами. Но подсистема управления файлами может взаимодействовать с драйвером и через поток. Поток представляет собой посимвольную передачу данных драйверу. Следует отметить, что способ взаимодействия с драйвером определяется не пользователем и не приложением. Он является характеристикой того устройства, которым управляет драйвер. Очевидно, что потоковое общение позволяет взаимодействовать более оперативно, чем общение через буфер. Ведь на заполнение буфера тратится время и, следовательно, возрастает время отклика.

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

Чуть выше мы перечисляли системные API для управления файлами. Теперь рассмотрим вызовы, служащие для работы с процессами: fork (создает новый процесса), exec (выполняет процесс), exit (завершает исполнение процесса), wait (один из способов синхронизации), brk (управляет памятью, выделенной процессу), signal (обработчики исключений) и др.

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

Виртуальная память была изобретена в 1962 году, в Англии при создании суперкомпьютера Atlas. В большинстве современных компьютеров оперативная память не так велика, как используемое процессором адресное пространство. Размер ОЗУ типичного персонального компьютера варьируется от десятков до сотен мегабайт. При запуске программа загружается с какого-либо накопителя в оперативную память. Если же программа не помещается в ОЗУ, то те её части, которые в данный момент не выполняются, хранятся во вторичном запоминающем устройстве, чаще всего винчестере, и такая память называется виртуальной. Безусловно, перед выполнением необходимая часть программы должна быть перемещена в оперативную память. Данные функции выполняет ядро операционной системы (диспетчер виртуальной памяти, находящийся в микроядре). И для программы и для пользователя эти действия прозрачны. Естественно, на запросы к виртуальной памяти уходит гораздо большее время, нежели к ОЗУ.


Второй модуль — планировщик. Его задача не менее важна. UNIX — мультизадачная ОС, то есть одновременно может выполняться множество процессов. Мы, однако, знаем, что в фиксированный момент времени на одном процессоре может выполняться только одна команда. Именно поэтому нужен виртуальный рефери, который будет определять, какому процессу исполняться сейчас, а какому — через секунду. На практике же планировщик переключает контекст, то есть перед тем, как остановить исполнение какого-то процесса, он запоминает состояние регистров, памяти и т. д., а уже после этого запускает другой процесс в его собственном адресном пространстве. И еще один тонкий момент: каждый запущенный процесс «думает», что он единственный. Дополнительно существует механизм приоритетов. Очевидно, чем выше приоритет, тем быстрее начнет исполняться процесс. Процессы могут также обмениваться между собой информацией. В случае их синхронного взаимодействия синхронизацию осуществляет модуль взаимодействия (например, функция wait).

Вот мы и подошли к последнему уровню — аппаратному контролю. На данном уровне происходит обработка прерываний и связь ядра с железом. Здесь следует отметить лишь пару моментов, во-первых, прерывания могут «прерывать» работу процессора и требовать внимания к себе (после этого процессор без проблем возвращается к выполнению оставленных процессов), а, во-вторых, обработку прерываний осуществляют специальные функции ядра.

Windows 2000/XP построены на архитектуре микроядра (microkernel architecture). ОС Windows 95/98 используют монолитное (monolithic) ядро. Микроядра являются сравнительно небольшими и модульными. Благодаря последнему новые устройства зачастую добавляются как модули, которые можно загружать/выгружать на этапе исполнения без перекомпиляции ядра. На архитектуре микроядра построены также FreeBSD и Mac OS X. Монолитные же ядра используются еще и в Linux. Они оптимизированы для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но требует перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать перекомпиляции.

Архитектура Windows

Структура Windows 2000/XP не отличается оригинальностью: ядро системы (исполняется на максимально приоритетном уровне процессора) и пользовательские подсистемы (исполняются на минимально приоритетном уровне).

Ядро системы является критичной частью кода, любые ошибки, происходящие в ядре, приводят к фатальному краху системы — «синему экрану». Фактически — это ошибки типа «Нарушение общей защиты». Как только код ядра начинает обращаться в запрещенные для него области памяти (попытка прочитать или записать данные, исполнить неверную инструкцию, переход на запрещенную область), срабатывает система защиты памяти процессора, и управление передается системному обработчику исключений. Обработчик исключений не может восстановить корректное поведение кода. Все, что он делает — это вывод дампа на синий экран с указанием типа ошибки и содержимого памяти в области, где сработала защита.
Пользовательские подсистемы не столь критично влияют на работу системы в целом, так как они изолированы друг от друга и от ядра средствами управления памятью и собственно процессором. Ошибки, возникающие в приложениях, исполняются на уровне пользователя, то есть на менее привилегированном уровне, нежели ядро. Поэтому, система в состоянии контролировать процесс. При возникновении же ошибки или сбоя управление передается обработчику ошибок, который называется «Doctor Watson». Он принудительно завершит приложение. Ядро системы и остальные подсистемы остаются в целости и сохранности.

Ядро UNIX/Linux имеет два вида исключений, которые обычно называют «oops» и «panic». Почти в каждой операционной системе паника происходит в тех случаях, когда ядро обнаруживает серьезную неисправность. Если система каким-либо образом повредила сама себя, ей требуется остановиться немедленно, пока она не произведет необратимых критических изменений (типа уничтожения файловой системы). Везде, где только возможно, UNIX/Linux пытается детектировать проблему и справиться с ней без остановки всей системы. Например, многие ситуации типа «oops» приводят к завершению процесса, который нормально запустился, но потом зациклил систему. Бывают, однако, ситуации, когда все настолько плохо, что полная паника является наилучшим выходом. Считается, что пользователи стабильных версий ядра не должны встречать ни «паник», ни «oops». Но в реальном мире они иногда происходят.

Недавно найденный «TF-баг» (смотрите здесь) является хорошим примером паники. Процессор пытается передать управление процессу, которого не существует. Это приводит к краху всей системы. В данном случае, у системы нет другой альтернативы, чем запаниковать.

Ядро, поставляемое с Red Hat Linux 7.3 (и некоторыми другими дистрибутивами), содержит баг в файловой системе ext3. Эта ошибка приводит к «oops», завершая время от времени некоторые процессы (также этот баг приводит к замедлению всей системы). Хотя данная ошибка уже исправлена (патч есть и в обновлении от Red Hat), этот случай познакомил многих пользователей с ошибками типа «oops».


Ядро Windows 2000/XP состоит из нескольких системных компонентов, каждый из которых отвечает за определенный набор задач. Основные компоненты ядра:

Микроядро (Microkernel) — компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и другие.

Слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования. Использование HAL позволяет обеспечить переносимость 99% кода системы между различным оборудованием.

Диспетчер Ввода/Вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Если драйвер написан с ошибками и может привести к сбою — это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев («синий экран») — есть результат некорректного поведения драйверов устройств.

Windows XP содержит встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи.

Модуль управления объектами (Object Manager), управления виртуальной памятью (Virtual Memory Manager), управления процессами (Process Manager), управления безопасностью (Security Reference Monitor), управления локальными вызовами (Local Procedure Calls Facilities) — важные компоненты ядра системы подробно рассматриваться не будут.

Наконец, особое по значению и важности место в ядре системы занимает модуль графического интерфейса — Win32k.sys. Фактически — это часть подсистемы Win32, отвечающая за прорисовку и управление графическим интерфейсом. Этот модуль расположен в ядре специально для того, чтобы существенно повысить производительность графических операций ввода/вывода. Однако размещение столь критической части в ядре накладывает чрезвычайно строгие требования к корректности его исполнения. Фактически, ошибка в коде Win32k.sys приведет к краху системы. Разработчики Windows уделяют огромное внимание этому модулю, и именно он наиболее тщательно протестирован. Опыт эксплуатации систем Windows показывает, что код Win32k.sys работает абсолютно корректно и не содержит фатальных ошибок. Однако некорректный драйвер видеосистемы может все испортить.

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

Итог

Различия между Windows и UNIX для нас прокомментировали разработчики из компании ASPLinux.

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

В Unix/Linux графическая система существует отдельно от ядра и функционирует как обычное приложение. В операционных системах Windows графическая система интегрирована в ядро. В случае использования операционной системы на рабочей станции, особенно при запуске графикоемких приложений, возможно, лучше, когда графическая система входит в ядро — в этом случае она может быстрее работать. А при работе на сервере предпочтительней отделение графической системы от ядра ОС, так как она загружает память и процессор. В случае Unix/Linux графическую систему можно просто отключить, к тому же, если системный администратор ее все-таки хочет использовать, в Linux есть несколько графических оболочек на выбор, некоторые из них (например, WindowMaker) достаточно слабо загружают машину. Эта же особенность Unix-образных операционных систем позволяет запускать эти ОС на машинах с весьма скромными объемами ОЗУ и т.п. В случае Windows же графическая система слишком тесно интегрирована в ОС, поэтому она должна запускаться даже на тех серверах, на которых она вовсе не нужна.

Отметим также методику разделения прав доступа в Windows 2000 и Unix/Linux. В первом — разделение прав доступа основано на ACL (access control lists), то есть, к примеру, можно настроить систему таким образом, чтобы администратор не имел возможности управлять файлами пользователей. У Unix/Linux же всегда есть суперпользователь — root, который имеет доступ абсолютно ко всему. То есть теоретически модель безопасности в Windows лучше: чтобы полностью завладеть хорошо настроенной системой Windows, хакеру придется ломать больше, в Unix/Linux же достаточно взломать доступ к root. (В Unix/Linux используются более старые технологии, тем не менее, некоторые дистрибутивы Linux сейчас начинают поддерживать ACL, среди них — ASPLinux 7.3 Server Edition). Но теория несколько смазывается практикой с той стороны, что в Windows не так быстро, как в Linux, заделываются «дыры», что уже относится к плюсам открытой модели разработки. В результате оказывается, что в Windows по статистике больше дыр, через которые злоумышленник может пробраться в систему. Но, опять же, точно о количестве дыр в Linux и Windows можно будет сказать только тогда, когда количество пользователей обоих видов ОС будет примерно одинаковым.

В Linux поддерживаются несколько файловых систем, наиболее продвинутые — это Ext2, Ext3, XFS. ОС Windows завязана по большому счету на одну файловую систему — NTFS или FAT 32. Файловые системы Ext2, Ext3, XFS по оценкам работают быстрее. Принципиальное же отличие в том, что в UNIX/Linux вообще нет понятия диска, физического или логического. Вся работа с устройствами хранения данных организуется через специальные файлы устройств, которые отображают физический носитель (диск, лента и т. п ) или его части (разделы) в файловую систему.

Важное отличие — наличие в Windows технологии ActiveX, нечто подобное в Unix/Linux реализуется с помощью CORBA и Bonobo. Эта технология, с одной стороны, предоставляет пользователю множество удобств, с другой стороны — она же допускала в свое время такие вещи, как автоматический запуск Outlook’ом вируса, пришедшего по почте. Одно из важных отличий этих технологий в том, что элементы ActiveX могут внедряться в текст HTML, что имеет как ряд достоинств, так и недостатков.

Можно перечислить еще ряд отличий Unix-подобных операционных систем от Windows, например, встроенную поддержку удаленного доступа в Unix и отсутствие оной в Windows по умолчанию (она реализуется в серверных версиях Windows, а также с помощью дополнительных средств, например, Citrix). В Unix/Linux и Windows сильно различаются сетевые подсистемы (IP-stack), по ряду оценок сетевая подсистема Unix/Linux эффективнее.

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

Мы искренне надеемся, что нам удалось описать основные различия двух систем. Если вы считаете, что какой-то аспект «анатомии» Windows или UNIX незаслуженно пропущен, милости просим в наш форум. Автор статьи (e-mail в начале) с удовольствием выслушает все ваши мысли.

  • Операционная система для сервера windows
  • Операционные системы поддерживающие программы windows
  • Операционные системы это dos windows unix
  • Операционные системы общего назначения windows
  • Операционная система для пк это bios или ios или ms windows