Меню Рубрики

Linux unix в чем разница

Чем отличается Unix от Linux

Если вы недавно начали изучать Linux и осваиваться в этой огромной вселенной, то наверное, часто встречали термин Unix. Звучит очень похоже на Linux, но что же оно значит? Наверное, вам интересно чем отличается unix от linux. Ответ на этот вопрос зависит от того что вы понимаете под этими словами. Ведь каждое из них может интерпретироваться по-разному. В этой статье мы рассмотрим упрощенную историю Linux и Unix чтобы помочь вам понять что это и как они между собой связаны. Как всегда вы можете задавать вопросы или добавить дополнительную информацию в комментариях.

Краткая история Unix и Linux

Свою историю Unix начал в конце 1960-х и в начале 1970-х в научно-исследовательских вычислительных лабораториях AT&T Bell Labs в Соединенных штатах. Вместе с MIT и General Electric исследовательская лаборатория Bell Labs начала разработку новой операционной системы. Некоторые исследователи были недовольны ходом разработки этой операционной системы. Они отошли от работы над основным проектом и начали разрабатывать собственную ОС. В 1970 году эта система получила название Unix, а два года спустя она была полностью переписана на языке программирования Си.

Это позволило распространять и портировать Unix на различные устройства и вычислительные платформы.

Так как Unix продолжал развиваться, AT&T начал продавать лицензии на использование ее в университетах, а также в коммерческих целях. Это означало что не все могли, как сейчас, свободно изменять и распространять код операционной системы Unix. Вскоре начало появляться много редакций и вариантов операционной системы Unix, предназначенной для решения различных задач. Самой известной из них была BSD.

Linux похож на Unix по функциональности и возможностям, но не кодовой базой. Эта операционная система была собрана из двух проектов. Первый — проект GNU, разработанный Ричардом Столлманом в 1983, второй — ядро Linux, написанное Линусом Торвальдсом в 1991.

Целью проекта GNU было создать систему похожую на Unix, но не зависящую от него. Иными словами, операционную систему, не содержащую код Unix, которая могла бы свободно распространяться и модифицироваться без ограничений, как свободное программное обеспечение. Так как свободное ядро Linux не могло работать само по себе, проект GNU объединился с ядром Linux, и так родилась операционная система Linux.

Конструировался Linux под влиянием системы Minix, потомка Unix, но весь код был написан с нуля. В отличие от Unix, который использовался на серверах и больших мэйнфреймах различных предприятий, Linux был рассчитан для использования на домашнем компьютере с более простым аппаратным обеспечением.

На сегодняшний день Linux работает на огромном количестве платформ, большем чем любая другая ОС, это сервера, встраиваемые системы, микрокомпьютеры, модемы и даже мобильные телефоны. Теперь будет более подробно рассмотрена разница linux и unix.

Что такое Unix

Термин Unix может относиться к таким понятиям:

  • Оригинальная операционная система, разработанная в AT&T Bell Labs, на основе которой развиваются другие ОС.
  • Товарный знак, написано заглавными буквами. UNIX принадлежит The Open Group, которая разработала набор стандартов для операционных систем — Single UNIX Specification. Только те системы, которые соответствуют стандартам могут законно называться UNIX. Сертификация не бесплатная и требует от разработчиков платить за использование этого товарного знака.
  • Все операционные системы зарегистрированы с именем Unix. Потому что они соответствуют вышеупомянутым стандартам. Это AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X — да, даже те что работают на компьютерах Apple.

Что такое Linux

Термин Linux относится только к ядру. Операционная система не будет полной без настольной среды и приложений. Поскольку большинство приложений были разработаны и сейчас разрабатываются в рамках проекта GNU, полное название операционной системы — GNU / Linux.

Сейчас множество людей используют термин Linux для обозначения всех, основанных на ядре Linux, дистрибутивов. На данный момент самая новая версия ядра Linux — 4.4, версия 4.5 находится на стадии разработки. Смена нумерации релизов ядра с 3.х на 4.х состоялась не так уж давно.

Linux — это Unix подобная операционная система, которая ведет себя как Unix, но не содержит его код. Unix подобные ОС часто называют Un*x, *NIX и *N?X, или даже Юниксоидами. У Linux нет сертификации Unix, а GNU расшифровывается как GNU not Unix, так что в этом отношении Mac OS X больше Unix чем Linux. Но тем не менее ядро Linux и ОС GNU Linux очень похожи на Unix по функциональности, реализуют большинство принципов философии Unix. Это удобочитаемый код, хранение конфигурации системы в отдельных текстовых файлах, а также использование небольших инструментов командной строки, графическая оболочка и менеджер сеансов.

Важно заметить что далеко не все Unix подобные системы получили сертификацию UNIX. В определенном контексте все операционные системы, основанные на UNIX или на его идеях, называются UNIX подобными, независимо от того есть ли у них сертификат UNIX или нет. Кроме того, они могут быть коммерческими и бесплатными.

Надеюсь, теперь стало более понятно, чем отличается unix от linux. Но пойдем еще дальше и подведем итоги.

Основные отличия

  • Linux — свободная операционная система с открытым исходным кодом, а оригинальная Unix — нет, кроме некоторых ее производных.
  • Linux — это клон оригинального Unix, но он не содержит его код.
  • Главное отличие unix от linux, в том что Linux — это только ядро, в то время как Unix была и есть полноценной операционной системой.
  • Linux был разработан для персональных компьютеров. А Unix ориентирован в первую очередь на крупные рабочие станции и сервера.
  • Сегодня Linux поддерживает больше платформ чем Unix.
  • Linux поддерживает больше типов файловых систем чем Unix.

Как видите, путаница обычно возникает из-за того, что linux vs unix могут означать совершенно разные вещи. Какое бы значение ни имелось в виду, факт остается фактом — Unix был первым, а Linux появился позже. Linux родился из стремления к свободе программного обеспечения и мобильности, вдохновленный подходом Unix. Можно смело сказать что мы все в долгу перед движением свободного программного обеспечения, потому что мир был бы намного хуже без него.

Источник

Различия между UNIX и Linux

История UNIX® начинается в 1969 г. Большинство современных UNIX-систем являются коммерческими версиями исходных дистрибутивов UNIX. Solaris от Sun, HP-UX Hewlett-Packard, AIX® от IBM являются лучшими представителями UNIX, которые, кроме того, имеют свои собственные уникальные элементы и свои собственные фундаментальные решения. Например, Sun Solaris – это UNIX, но, кроме того, она содержит много инструментов и расширений, разработанных специально в расчете на рабочие станции и серверы производства Sun.

Linux® был разработан в попытке создать бесплатную альтернативу коммерческим UNIX-средам. Его история начинается в 1991 или даже в 1983 гг., когда был создан проект GNU, чьей исходной целью было предоставить бесплатную альтернативу UNIX. Linux работает на гораздо большем количестве платформ, например на Intel®/AMD x86. Большинство ОС UNIX способны работать только на одной платформе.

У Linux и UNIX общие исторические корни, но есть и серьезные отличия. Много инструментов, утилит, и бесплатных приложений, являющихся стандартными для Linux, первоначально задумывались как бесплатная альтернатива программам для UNIX. Linux часто предоставляет поддержку множества опций и приложений, заимствуя лучшую или наиболее популярную функциональность из UNIX.

Администратор или разработчик, который привык работать с Linux, система UNIX может показаться не очень удобной для использования. С другой стороны, фундамент UNIX-подобной операционной системы (инструменты, файловая система, интерфейсы API) достаточно стандартизирован. Однако некоторые детали систем могут иметь существенные различия. Далее в статье будут рассмотрены эти различия.

Технические различия

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

Разработка GNU/Linux, с другой стороны, не ориентирована на конкретные платформы и круг клиентов и разработчики GNU/Linux имеют различные опыт и взгляды. В Linux-сообществе не существует строгого стандартного набора инструментов или сред. Для решения этой проблемы был запущен проект Linux Standards Base (LSB), но он оказался не столь результативным, как хотелось бы.

Эта недостаточная стандартизованность приводит к значительным несогласованностям внутри Linux. Для некоторых разработчиков возможность использовать лучшие достижения других операционных систем является плюсом, однако не всегда удобно копирование в Linux элементов UNIX, например, когда имена устройств внутри Linux могут быть взяты из AIX, тогда как инструменты для работы с файловой системой ориентированы на HP-UX. Несовместимости такого рода встречаются также между различными дистрибутивами Linux. Например, Gentoo и RedHat реализуют различные методы обновлений.

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

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

Архитектура аппаратного обеспечения

Большинство коммерческих версий UNIX созданы для одного или небольшого количества архитектур аппаратного обеспечения. HP-UX работает только на платформах PA-RISC и Itanium, Solaris – на SPARC и x86, а AIX предназначен только для процессоров POWER.

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

Linux, с другой стороны, исторически разрабатывался для обеспечения максимальной совместимости. Linux доступен на различных архитектурах, а число устройств ввода/вывода и прочей периферии, которая может использоваться с этой ОС, почти безгранично. Разработчики не могут заранее знать, какое конкретное оборудование будет установлено в компьютере, и часто не могут обеспечить его эффективное использование. Одним из примеров является управление памятью на Linux. Ранее Linux использовал сегментную модель памяти, первоначально разработанную для x86. Сейчас он адаптирован для использования страничной памяти, но все еще сохраняет некоторые требования к сегментной памяти, что вызывает проблемы, если архитектура не поддерживает сегментированную память. Это не является проблемой для UNIX-производителей. Они точно знают, на каком оборудовании будет работать их UNIX.

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

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

Все коммерческие версии UNIX в некоторой степени эволюционировали до модульного ядра. Драйверы и отдельные особенности ОС доступны как отдельные компоненты и могут быть по необходимости загружены или выгружены из ядра. Но открытая модульная архитектура Linux гораздо гибче. Однако гибкость и адаптируемость Linux означают и постоянное изменение. Исходный код Linux постоянно меняется, и, по прихоти разработчика, может поменяться API. Когда модуль или драйвер написан для коммерческой версии UNIX, он проработает гораздо дольше, чем тот же драйвер для Linux.

Поддержка файловой системы

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

Таблица 1. Файловые системы, которые являются стандартными для UNIX

Большинство коммерческих версий UNIX поддерживают журналируемые файловые системы. Например, HP-UX в качестве стандартной файловой системы использует hfs, но он также поддерживает журналируемую файловую систему vxfs. Solaris поддерживает ufs и zfs. Журналируемая файловая система является важным компонентом любой серверной среды для предприятия. В Linux поддержка журналируемых файловых систем была реализована поздно, но теперь есть несколько вариантов – от клонов коммерческих файловых систем (xfs, jfs) до специфических для Linux файловых систем (ext3, reiserfs).

Другие особенности файловых систем включают в себя поддержку квот, список контроля доступа к файлам, зеркальное копирование, снимки системы и изменение размеров. В той или иной форме они поддерживаются файловыми системами Linux. Большинство из этих особенностей не являются стандартными для Linux. Одни особенности могут работать на одной файловой системе, тогда как другие потребуют другой файловой системы. Некоторые из этих особенностей просто недоступны на определенных файловых системах Linux, а другие требуют дополнительной установки инструментов, например, определенной версии LVM или поддержку дисковых массивов ( software raid package). Исторически так сложилось, что в Linux совместимость программных интерфейсов и стандартных инструментов достигается с трудом, поэтому множество файловых систем реализуют эти особенности поразному.

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

Доступность приложений

Большинство базовых приложений одинаковы как на UNIX, так и на Linux. Например, команды cp , ls , vi и cc доступны на UNIX и Linux, и очень похожи, если не полностью идентичны. Linux-версии этих инструментов основаны на GNU-версиях этих инструментов, тогда как версии этих инструментов для UNIX основаны на традиционных UNIX-инструментах. Эти инструменты для UNIX имеют длительную историю и редко менялись.

Но это вовсе не означает, что коммерческие версии UNIX не могут использоваться с GNU-инструментами. Фактически много производителей коммерческих UNIX ОС включают в свои дистрибутивы много GNU-инструментов или предлагают их как бесплатное дополнение. GNU-инструменты не просто стандартные инструментальные средства. Некоторые из таких бесплатных утилит не имеют коммерческих аналогов (emacs или Perl). Большинство производителей предустанавливают эти программы, и они либо автоматически устанавливаются вместе с системой, или доступны в качестве дополнительного компонента.

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

Коммерческие и/или с закрытым исходным кодом приложения (CAD, финансовые программы, графические редакторы) могут не иметь аналогов для Linux. Хотя некоторые производители выпускают версии своих приложений для Linux, большинство производителей не торопится делать этого, пока популярность Linux у пользователей не возрастет.

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

Системное администрирование

Хотя некоторые дистрибутивы Linux поставляются со стандартным набором инструментов для управления системой, например, SUSE’s YaST, не существует общего для Linux стандарта инструментальных средств системного администрирования. Доступны текстовые файлы и инструменты командной строки, но иногда их применение может быть неудобным. Каждая коммерческая версия UNIX имеет свой собственный интерфейс управления системой. С помощью этого интерфейса можно управлять элементами системы и изменять их. Ниже приведен пример Менеджера системного администрирования [System Administration Manager (SAM)] для HP-UX.

Данный SAM содержит следующие модули:

  • Пользователи или группы, которыми надо управлять.
  • Параметры ядра, которые можно изменить.
  • Настройка сети.
  • Настройка и инициализация дисков.
  • Конфигурирование X server.

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

Еще один аспект в UNIX и Linux, который, кажется, меняется почти с каждой версией ОС – расположение сценариев инициализации системы. К счастью, /sbin/init и /etc/inittab являются стандартными каталогами. Но сценарии запуска системы находятся в различных каталогах. Таблица 2 показывает места, где хранятся сценарии инициализации системы для различных дистрибутивов UNIX и Linux.

Таблица 2. Расположение сценариев инициализации системы для различных версий UNIX
HP-UX /sbin/init.d
AIX /etc/rc.d/init.d
Irix /etc/init.d
Solaris /etc/init.d
Redhat /etc/rc.d/init.d
SUSE /etc/rc.d/init.d
Debian /etc/init.d
Slackware /etc/rc.d

Из-за большого количества дистрибутивов Linux и почти бесконечного числа доступных приложений (с учетом того, что версий этого приложения тоже много) для этой ОС, управление программами на Linux становится сложной задачей. Выбор правильного инструмента зависит от того, с каким дистрибутивом вы работаете. Далее неудобства проистекают из того, что некоторые дистрибутивы используют формат файлов Redhat Package Manager (RPM), в то время как их программы несовместимы. Такое разделение приводит к появлению огромного количества опций работы с пакетами, и не всегда понятно, какая система используется в конкретной среде.

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

Производители коммерческих дистрибутивов UNIX поставляют также и аппаратное обеспечение, для работы на котором предназначена их ОС, поэтому в своих ОС они могут внедрять какие-либо новые устройства, что гораздо труднее сделать для Linux. Например, в последних версиях Linux были попытки реализовать поддержку компонентов с возможностью их “горячей замены” (с переменным успехом). Коммерческие версии UNIX обладают такой возможностью уже много лет. Также в коммерческих версиях UNIX лучше, чем в Linux, реализован мониторинг за аппаратным обеспечением. Производители могут написать драйверы и внедрить их в свою операционную систему, которая будет вести мониторинг состояния системы, например, число ошибок памяти ECC, параметры энергопотребления или любого другого компонента аппаратного обеспечения. Поддержка такого рода для Linux ожидается только в отдаленном будущем.

Аппаратное обеспечение для коммерческих UNIX-систем также имеет более продвинутые опции загрузки. Прежде чем операционная система загрузится, существует много возможностей настроить ее загрузку, проверить “здоровье” системы или настроить параметры аппаратного обеспечения. BIOS стандартного персонального компьютера PC имеет меньшую часть, если вообще имеет, этих опций.

Поддержка

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

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

Заключение

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

Ресурсы для скачивания

Похожие темы

  • Differentiating UNIX and Linux: оригинал статьи (EN).
  • Домашняя страница Linux. (EN)
  • Список архитектур, поддерживаемых Linux.
  • Linux filesystem HOWTO: дополнительная информация о файловых системах (EN)
  • Переход с Linux на HP-UX. (EN)
  • Электронная книга Solaris to Linux Migration. (EN)
  • Информация о проекте GNU и Фонде свободного программного обеспечения. (EN)
  • The Free Software Definition (EN): cтатья, в которой объясняется, что такое свободное программное обеспечение.
  • Why “Free Software” is better than “Open Source” (EN): cтатья, которая объясняет различие между бесплатным ПО и программным обеспечением с открытым исходным кодом. (EN)
  • Пересечение этики, закона, бизнеса, и компьютерного ПО – Free Software, Free Society: Selected Essays of Richard M. Stallman. (EN)
  • OpenSource.org: Web-сайт проекта по развитию программного обеспечения с открытым исходным кодом. (EN)
  • История развития программного обеспечения с открытым исходным кодом – The hard roots of open source software (developerWorks, февраль 2000). (EN)
  • Бесплатное программное обеспечение для: (EN)
    • Solaris
    • HP-UX
    • AIX
    • IRIX
  • The Cathedral and the Bazaar (EN): статья Эрика Рэймонда (Eric Raymond).
  • AIX и UNIX: в данном разделе сайта developerWorks размещена различная информация по всем аспектам системного администрирования AIX, которая поможет лучше изучить UNIX.
  • Ознакомьтесь с инструментами для разработки ПО и связующим ПО от DB2®, Lotus®, Rational®, Tivoli® и WebSphere®. Можно бесплатно загрузить ознакомительные версии продуктов или Linux или Windows® версию Software Evaluation Kit от developerWorks. (EN)
  • eServer: в данном разделе сайта developerWorks размещена различная информация, которая поможет лучше изучить продукты eServer. (EN)

Комментарии

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

Источник


Adblock
detector