В чем разница между Unix, Linux и Ubuntu?
Что такое Unix, Linux, Ubuntu?
Это одно и то же, разные версии или совершенно разные вещи?
Это всегда меня смущало, любое объяснение было бы здорово.
4 ответа
Unix был и остается (в основном) проприетарным. Поэтому некоторые люди собрали свои коллективные идеи в 1980-х и собрали что-то, что воспроизводило функциональность Unix без копирования его исходного кода, что было бы незаконно [вставьте более длинную версию о Ричарде Столлмане и Линусе Торвальдсе здесь].
Одним из первых дистрибутивов GNU/Linux был Debian. Ubuntu была создана людьми, которые были связаны с Debian, и Ubuntu официально гордится своими корнями в Debian. В конечном счете, все это GNU/Linux, но Ubuntu — это вкус. Таким же образом, что вы можете иметь разные диалекты английского языка. Источник открыт, поэтому любой может создать свою собственную версию.
Тем не менее, Debian не очень подходит для простых смертных, таких как я, и именно здесь появляется что-то вроде Ubuntu. Действительно, я понимаю, что именно стратегия Canonical, компании, стоящей за Ubuntu, направлена на пользователей, не являющихся гиками. Вот почему большинство новых пользователей GNU/Linux приходят в Ubuntu или Mint (который основан на Ubuntu) в первую очередь.
Операционная система Unix была задумана и внедрена в 1969 году в Bell & Laboratories в США AT&T Кеном Томпсоном, Деннисом Ричи, Дугласом Макилрой и Джо Оссанна. Впервые он был выпущен в 1971 году и изначально был полностью написан на ассемблере, что в то время было обычной практикой. Позже, в ключевом новаторском подходе в 1973 году, Денис Ричи переписал Unix на языке программирования C (за исключением ядра и ввода-вывода). Доступность операционной системы, написанной на языке высокого уровня, позволила упростить переносимость на разные компьютерные платформы. С юридическим затруднением, заставляющим AT&T лицензировать исходный код операционной системы для всех, кто спрашивал,[22] Unix быстро рос и стал широко использоваться академическими учреждениями и предприятиями. В 1984 году AT&T отказалась от Bell Labs. Компания Bell Labs, свободная от юридических затруднений, требующих бесплатного лицензирования, начала продавать Unix как проприетарный продукт.
Linux- это Unix-подобная компьютерная операционная система, собранная по модели разработки и распространения свободного и открытого программного обеспечения. Определяющим компонентом Linux является ядро Linux, ядро операционной системы, впервые выпущенное Линусом Торвальдсом 5 октября 1991 года. Linux изначально разрабатывался как бесплатная операционная система для персональных компьютеров на базе Intel x86. С тех пор он был перенесен на большее количество компьютерных аппаратных платформ, чем любая другая операционная система. Это ведущая операционная система на серверах и других крупных железных системах, таких как мэйнфреймы и суперкомпьютеры: более 90% из 500 самых быстрых суперкомпьютеров на сегодняшний день работают под управлением некоторых вариантов Linux, включая 10 самых быстрых. Linux также работает на встроенных системах (устройствах, в которых операционная система обычно встроена во встроенное ПО и специально адаптировано к системе), таких как мобильные телефоны, планшетные компьютеры, сетевые маршрутизаторы, телевизоры и игровые приставки; широко используемая на мобильных устройствах система Android построена на ядре Linux.
Ubuntu — это компьютерная операционная система, основанная на дистрибутиве Debian Linux и распространяемая как бесплатное программное обеспечение с открытым исходным кодом, с использованием собственной среды рабочего стола. Он назван в честь южноафриканской философии убунту («человечество по отношению к другим»). По данным онлайн-опросов, по состоянию на 2012 год Ubuntu является наиболее популярным дистрибутивом Linux для настольных компьютеров и ноутбуков, и большая часть охвата Ubuntu сосредоточена на его использовании на этом рынке.
Спонсором Ubuntu является британская компания Canonical Ltd., которой владеет южноафриканский предприниматель Марк Шаттлворт. Canonical генерирует доход, продавая техническую поддержку и услуги, связанные с Ubuntu, а сама операционная система полностью бесплатна.
(Я добавил обзорный постер к смежному вопросу полушутя; но здесь это действительно полезно по отношению к другим ответам:)
Я также помню немного более подробный плакат, но для краткого изложения этого должно быть достаточно:
Изображение из Викисклада: Unix-история-просто
(Подробности (все) см. В GNU / Linux Distribution Timeline 12.10 — но этот «несколько более подробный плакат», который я смутно помню, находился где-то посередине. )
Много раз мы путаемся с Unix и Linux, также угрожая им как синонимами, но это не так. UNIX — это защищенное авторским правом имя, разрешено только нескольким компаниям, т.е. IBM AIX, Sun Solaris и HP-UX. Эта цитата из официального файла README ядра Linux сбивает с толку больше всего.
Linux — это клон Unix, написанный с нуля Линусом Торвальдсом при поддержке свободно сплоченной команды хакеров по всей сети. Он направлен на соответствие POSIX.
В этой статье я пытаюсь описать различные различия между Unix и Linux под следующими заголовками.
- история
- использование
- Стоимость
- графический интерфейс пользователя
- Безопасность
- ОС будущего
история
UNIX был создан в 1960-х годах AT&T Bell Labs (Кен Томпсон и Деннис Ритчи), а первая коммерческая ОС UNIX стала доступной в 1970 году. Первый выпуск Unix имел интерпретатор командной строки и несколько небольших служебных программ с будущим расширением для многозадачности и многозадачности. UNIX развивался оттуда.
В 1991 году Линус Торвальдс начал работать над UNIX-подобной ОС, известной как Minix. Исходный код Minix был свободно доступен под GNU GPL, и он успешно изменил этот код для использования в системах x86. К сентябрю 1991 года Торвальдс успешно завершил разработку первого ядра Linux, предназначенного для ПК. Это ядро включало в себя различные системные утилиты и библиотеки из проекта GNU для создания работающей операционной системы, полностью основанной на открытом исходном коде.
Использование Операционная система UNIX используется на интернет-серверах, рабочих станциях и ПК. Основа большинства финансовых инфраструктур и многие решения 24×365 высокой доступности.
Linux может быть установлен на самых разных компьютерных аппаратных средствах — от мобильных телефонов, планшетных компьютеров и игровых консолей до мэйнфреймов и суперкомпьютеров.
Стоимость Linux является бесплатной (так как это с открытым исходным кодом, за исключением случая, когда вам нужна поддерживаемая версия, например, RHEL). Вы можете скачать его из Интернета или распространить по лицензии GNU. Вы увидите лучшую поддержку сообщества для Linux. Большинство UNIX-подобных операционных систем не являются бесплатными (но это быстро меняется, например, OpenSolaris UNIX). Однако некоторые дистрибутивы Linux, такие как Redhat / Novell, предоставляют дополнительную поддержку Linux, консультации, исправление ошибок и обучение за дополнительную плату.
Графический интерфейс Любое современное обсуждение системы не может быть завершено до тех пор, пока мы не обсудим графический интерфейс. Linux обычно предоставляет KDE и Gnome, но есть много альтернатив, таких как LXDE, Xfce, Unity, Mate, twm, ect. где, как и в Unix, большинство дистрибутивов теперь поставляются с Gnome (первоначальный графический интерфейс раньше назывался CDE, т.е. Common Desktop Environment)
Источник
Разница между Ubuntu и Linux.
в Linux 17.07.2019 0 104 Просмотров
Linux – это семейство Unix-подобных операционных систем. Все ОС этого семейства включают ядро Linux. Ubuntu – это вариант одного из дистрибутивов Linux под названием Debian. Ubuntu предназначена для персональных компьютеров, а не для больших серверов. Ubuntu – это самый популярный дистрибутив Linux, который используют 12 миллионов пользователей на своих компьютерах. Это примерно половина доли рынка Linux для настольных ПК.
Что такое Linux?
Linux относится к Unix-подобным операционным системам. Операционные системы Linux используют ядро Linux. Linux может использоваться с различными типами систем, такими как персональные компьютеры, мобильные телефоны, ноутбуки, нетбуки, сетевые устройства, консольные игры, мейнфреймы и суперкомпьютеры. Фактически, Linux является самой популярной операционной системой, используемой на серверах, и говорят, что Linux используется в качестве операционной системы в топ-10 самых быстрых суперкомпьютеров в мире. Linux – это бесплатный продукт с открытым исходным кодом, разработанный сообществом разработчиков открытого кода.
Linux лицензируется на условиях GNU General Public License. Поэтому любой может изменять и распространять исходный код под той же лицензией. Debian, Fedora и openSUSE являются одними из популярных дистрибутивов Linux, которые включают ядро Linux. Дистрибутивы Linux, предназначенные для настольных компьютеров, обычно поставляются с графическими пользовательскими интерфейсами, такими как система X Widows, среда GNOME или KDE. Серверные версии дистрибутива Linux обычно поставляются с HTTP-сервером Apache и OpenSSH. Свободные приложения, такие как браузер Mozilla Firefox, OpenOffice и GIMP, являются одними из наиболее часто используемых приложений в Linux.
Что такое Ubuntu?
Ubuntu – это операционная система на основе Debain GNU/Linux. Ubuntu предназначена для персональных компьютеров, но также предоставляет версию для сервера. Используя год выпуска и месяц в качестве номера версии, Ubuntu выпускает каждый год две версии. Обычно выпуски Ubuntu рассчитаны таким образом, что они выпускаются через месяц после последнего выпуска GNOME и через два месяца после последнего выпуска X.Org, что означает, что все выпуски Ubuntu будут включать в себя более новые версии GNOME и X. Long Term Support (LTS) – это выпуск, который выходит четвертым выпуском во 2-м квартале чётного года. Релизы LTS включают обновления для настольной версии на 3 года и для серверной версии на 5 лет. Компания Canonical также предоставляет платную техническую поддержку для Ubuntu. Ubuntu 18.04 LTS, является самой последней версией. Релизы LTS поддерживаются в течение года и обычно поддерживаются, по крайней мере, до следующего выпуска LTS.
В чем разница между Ubuntu и Linux?
Основное различие между Ubuntu и Linux заключается в том, что Linux – это семейство бесплатных и открытых Unix-подобных операционных систем, а Ubuntu – это единственный дистрибутив Linux. Linux представляет собой ряд операционных систем, подходящих для многих типов компьютеров, от персональных компьютеров до суперкомпьютеров, тогда как Ubuntu предназначена только для персональных компьютеров. Хотя Ubuntu предлагается совершенно бесплатно, Canonical получает прибыль за счет технической поддержки.
Источник
GNU или Linux?
Просматривая статьи для перевода на translated.by я наткнулся на предложение перевести статью GNU or Linux? за авторством David Chisnall. Автор предлагает разобраться чего же больше в ОС — GNU или же Linux? Собственно перевод этой статьи и предлагается Вашему вниманию.
GNU или Linux?
Ни одна другая система не испытывала таких споров вокруг своего имени. Огромное количество флейм войн началось после заявления FSF о том, что такие дистрибутивы как Ubuntu и Fedora должны называться GNU/Linux, вместо Linux. Пытались ли они просто заработать на чужом труде, или их аргументы небезосновательны?
Чтобы разобраться в этом вопросе давайте взглянем на то, что происходит, когда вы запускаете GNU/Linux систему — сколько используется GNU кода, а сколько Linux кода. Разработчик использует огромное количество GNU кода, к примеру GCC и GNU Make, но насколько это справедливо и для конечного пользователя?
Что делает Ядро?
Перед тем как начать разбираться где же GNU биты, а где Linux, важно понять, что именно делает ядро. Ядро выполняет две главные задачи:
* Освобождает разработчиков от необходимости изучать низкоуровневую архитектуру. Для этого необходимо наличие большого количества драйверов к устройствам и единых интерфейсов к этим драйверам. Хорошим примером служит Сокет-интерфейс. Когда вы пишете сетевой код, вы просто открываете сокет и пишите в него данные. Вам не надо заботится о типе сетевого оборудования пользователя и низлежащих протоколах.
* Изолирует запущенные программы друг от друга. Изолировать процессы платформо-независимым методом просто: Позволить процессам использовать только непривилегированные инструкции процессора. К сожалению, такой подход сделает невозможным любые операции ввода/вывода для программ, что делает все программы бессмысленными. Для снятия этого ограничения существует системный вызов — механизм, который позволяет запущенному процессу запрашивать ядро для совершения привилегированной операции от имени запрашивающего процесса. Обычные примеры — запись в файл (виртуальный диск), выделение памяти, или доступ к экрану или клавиатуре.
Механизм, который используется системным вызовом, платформо-зависим. На x86 платформе распространенным методом был вызов исключения, хотя новые процессоры от AMD и Intel предоставляют инструкции, позволяющие выполнить это еще быстрее. При этом управление переходит к ядру, которое решает, как интерпретировать значения в регистрах и на стеке, а также, какие действия предпринять.
Взгляд со стороны разработчика.
Важным стандартом при программировании для *NIX или в *NIX является единая спецификация UNIX — супермножество POSIX, которое включает всё, что должно быть в UNIX системе. Код, написанный согласно этому стандарту, переносим среди ряда UNIX-подобных систем.
Стандарт не описывает системные вызовы. Наоборот, он описывает Cи-функции, которые служат оберткой для системных вызовов. Когда программист хочет вызвать функцию open (), ему не надо знать, что он поместит указатель в EBX и значение 2 в EAX, а затем вызовет прерывание 80h; стандартная библиотека Cи реализует все эти функции. Любая нетривиальная программа на Linux будет обращаться к библиотеке Си (libc, для краткости). Существует несколько вариантов реализации стандартной библиотеки Си. У каждого члена семейства BSD есть своя реализация, впрочем как и у любой коммерческой UNIX системы. Какой вариант стандартной библиотеки С используется в Linux зависит от использования; существует несколько версий для встроенных систем, но большинство декстоп дистрибутивов Linux используют GNU libc.
По количеству кода ядро и libc практически равны. На двоих они предоставляют интерфейс разработчика к системе. Поскольку стандарт определяет только Cи-интерфейсы, а не системные вызовы, то и большинство кода написано с использованием стандартной библиотеки Cи. Это правило справедливо и для других языков; если вы, к примеру, запускаете некий java или python код, то он будет получать доступ к ядру через библиотеку Cи. Для некоторых языков существует своя стандартная библиотека от GNU Project. Например, любой С++ код будет использовать GNU libstc++ на GNU/Linux платформах. Некоторые дистрибутивы также включают GNU-реализации для Java библиотек, хотя такая практика уже не так популярна, учитывая, что Sun-версии стали open source. Даже если вы используете Sun Java библиотеки, вы по-прежнему используете GNU libc на этих платформах для любого Java приложения.
C C++ нюансов еще больше, чем с другими языками. Когда вы линкуете два модуля (к примеру, исполняемый файл и библиотеку), то сразу несколько стандартов описывают модель взаимодействия этих двух модулей. При вызове функции из другого модуля необходимо явно определить порядок аргументов на стеке и в регистрах, кто очистит память впоследствии и так далее. В С++ много чего должно быть явно определено для использования классов в различных модулях. Этот набор стандартов называется Бинарный Интерфейс Приложений (Application Binary Interface, ABI). В Linux, С++ ABI определен в GCC, который является пакетом GNU, как упоминалось ранее. Скомпилированный С++ код, независимо от того, какой компилятор использовался, должен подчиняться стандартам GNU, в противном случае такой код не сможет быть повторно использован другим С++ кодом.
Загрузка системы.
Современные GNU/Linux дистрибутивы начинают процесс загрузки с GRUB (GRand Unified Bootloader), который также является частью проекта GNU. (Хотя, технически, загрузка начинается в BIOS или другой прошивке, и это применимо для всех систем, которые запускаются на аппаратной платформе.) GRUB не создавался специально для Linux. Он может запускать и другие ОС и является стандартом для запуска некоторых систем на архитектуре x86, включая OpenSolaris и гипервизор Xen.
Затем GRUB передает управление ядру, которое продолжает инициализировать систему и конфигурирование драйверов. Ядро в свою очередь передает управление процессу init. Этот процесс отвечает за создание других процессов.
На Linux системах, init это очень маленькая программа, которая делает нечто большее, чем просто запуск скрипта. В некоторых дистрибутивах init заменен на Upstart, программу, которая не является ни частью Linux, ни частью GNU, и имеющая более сложную управляемую событиями модель. Скрипты, запущенный init’ом или Upstart’ом — это просто набор команд, интерпретируемых командной оболочкой (shell).
Спецификация POSIX содержит описание минимальной функциональности оболочки. Если вы хотите писать портативные shell-скрипты, то можете оставаться в рамках данной ограниченной функциональности, и, в итоге, получите скрипты, которые будут идти на всех UNIX-подобных системах.
Однако, большинство init скриптов не портируемы. Они используют расширенную функциональность командной оболочки, присутствующей в большинстве Linux дистрибутивов — Bash, командная оболочка от GNU.
Что в стандарте?
Единая Спецификация UNIX содержит намного больше, чем просто набор Cи-функций. В частности, стандарт определяет набор пользовательских утилит, которые обязаны присутствовать в UNIX-подобных системах. Многие программы используют эти утилиты через shell-скрипты или другие вызовы. Большинство из них содержатся в пакете корневых утилит GNU. Опять-таки, сравнивая количество строк кода, размер корневых утилит сравним с размером ядра.
Можно предположить, что эти утилиты не столь важная часть системы, однако это не так. Без утилит большинство init скриптов просто не запустятся (даже при наличии Bash), а система будет непригодна к использованию. Большинство инсталляторов также не запустятся, а это значит, что вы не сможете установить ни одной программы. Даже базовая функциональность, такая как копирование файлов использует корневые утилиты.
Единая UNIX Спецификация предоставляет список из 175 программ, которые должны присутствовать в каждой UNIX системе. Большинство из которых (с некоторыми исключениями, типа vi) созданы GNU и присутствуют в большинстве Linux дистрибутивов. Часть из них никогда не используются обычными пользователями; к примеру, стандарт предписывает наличие c99 и fort77 утилит для компилирования программ написанных на C и Fortran (обе утилиты предоставляются GNU).
На что еще следует обратить внимание?
Ранее я говорил, что у ядра две роли. Главная роль в предоставлении программам пользователя доступ к аппаратной части. Поэтому большинство Linux кода (и кода большинства других ядер) состоит из драйверов устройств. Но, отдельно стоит упомянуть о графике.
Старая модель драйвера XFree86 слабо зависела от ядра. Х-сервер запускался как привилегированный процесс и получал прямой доступ к аппаратной части. Я сам видел живой пример этого при попытке использования бинарного Linux драйвера Matrox под FreeBSD. Хоть драйвер и был написан для Linux, он прекрасно встал на FreeBSD, т.к. он напрямую взаимодействовал с Х-сервером и железом, а вовсе не с ядром FreeBSD.
Новые драйвера используют Инфраструктуру прямого рендеринга (Direct Rendering Infrastructure (DRI)). Эта система состоит из двух компонентов, называемых DRI и DRM. DRI — это драйвер пользовательского окружения, который снабжает командами аппаратную часть и предоставляет API другим пользовательским программам. DRM, в свою очередь, является маленьким модулем ядра, который проверяет команды и передает их аппаратной части.
Часто при холиварах на тему «готов ли Linux для десктопа» люди спрашивают, а как хорошо работает 3D в Linux? Вообще-то, обработка 3D это не задача Linux на большинстве системах. Linux всего-лишь предоставляет прямой интерфейс к аппаратной части, а уже X.Org пишет драйвера. Эти же драйвера могут быть запущены на FreeBSD, OpenBSD и еще ряде систем. В мире GNU/Linux систем Linux не занимается разработкой драйверов для одной из сложнейших частей аппаратной составляющей современного дектопа/лэптопа.
С изобретением FUSE, которая также работает на FreeBSD, NetBSD, and Mac OS X, ядро часто перестает предоставлять все драйвера для файловых систем, что еще больше умаляет роль «Linux» в системе.
Удаление GNU или Linux.
Возможно самый правдивый тест на важность того или иного компонента системы состоит в том, насколько просто обойтись без данного компонента в системе. Некоторые Linux платформы используют не так много GNU программ; например использование busybox для утилит командной строки и uclibc для стандартной библиотеки. Часть GNU платформ, такие как Nexenta или Debian GNU/kFreeBSD не используют ядро Linux.
Чтобы оценить важность Linux, давайте взглянем на Linux совместимое окружение в FreeBSD. При запуске Linux программ на FreeBSD, происходит установка модифицированного обработчика системного вызова, который вызывает функции ядра FreeBSD, в ответ на системные вызовы Linux. Этот поход позволяет запускать программы, написанные под Linux, без их изменения.
Для того чтобы данный метод работал, часто устанавливают урезанную версию Linux в отдельном окружении. Программы написанные под Linux в итоге смогут найти все необходимые библиотеки и утилиты, включая GNU утилиты, GNU grep, Bash и другие пакеты.
О чем это говорит? Это говорит о том, что если вы хотите запустить GNU/Linux программу на другой системе, то это легко выполнимо без Linux, а вот без GNU обойтись не так-то просто.
Безусловно, большинство программ успешно запустятся без всяких режимом совместимости, если вы их перекомпилируете. В этом случае они не будут использовать GNU libc, GNU утилиты или bash. Некоторые программы для успешной компиляции требуют GNU компилятор или GNU Make, однако, после компиляции эти программы больше не потребуют никаких GNU утилит, кроме:
- программ, использующих С++, которые скорее всего будут использовать GNU libstdc++.
- программ, явно использующих одну из многих GNU библиотек.
Так что удаление GNU из GNU/Linux видится намного более сложным, нежели удаление Linux. PC-BSD или Nexenta — это хорошие десктопные ОС без капли Linux кода внутри, но с большим количеством GNU кода. Те Linux системы, которые не так сильно зависят от GNU кода — это сплошь интегрированные системы, названия которых не знакомы пользователям десктопных и серверных вариантов Linux.
Так как же стоит говорить, Linux, GNU или GNU/Linux? Я называю GNU, потому что, как программист и пользователь, я пользуюсь, в большинстве своем, теми инструментами, которые разработаны GNU. Когда я портирую код из FreeBSD, проблемы возникают только в корневых утилитах или в стандартной библиотеке Си. Если бы я хотел запустить этот же код на HURD или любой другой GNU системе, то я бы использовал те же самые интерфейсы.
Источник