- Что такое Linux (и другие вопросы)
- Что такое Linux
- Что значит ядро Linux?
- Linux — это версия Unix?
- Что такое дистрибутив Linux
- Почему дистрибутивов так много
- Получается, Linux — это бесплатно?
- Как выглядит интерфейс Linux
- Для чего используется Linux
- Можно ли играть в игры на Linux
- А что со специализированным железом и софтом?
- Можно ли запускать на Linux программы от MacOS или Windows?
- Что дальше
- Сравнение Linux и Unix
- Что такое Unix?
- Что такое Linux?
- Различия между Unix и Linux
- Ядро Linux vs. Ядро Unix
Что такое Linux (и другие вопросы)
Быстрое знакомство с самой многогранной операционной системой
Операционная система Linux работает почти на всех серверах в интернете. При этом Linux — это не название какой-то одной операционной системы, а общее название для сотен систем. Давайте разберёмся, как это вообще возможно.
Что такое Linux
Linux — это одновременно две вещи:
- Название ядра операционной системы (то есть центральный модуль, который отвечает за базовые возможности системы).
- Название семейства операционных систем, в которое, по разным подсчётам, входит от 500 до 600 операционок для разных задач.
Отдельной операционки под названием Linux нет, но если вы знаете принципы работы одной системы, вы сможете легко разобраться во всех остальных.
Что значит ядро Linux?
Ядро Linux — это то, что разработал программист Линус Торвальдс, когда хотел получить основные возможности UNIX, но без ограничения на коммерческое использование.
Ядро операционной системы отвечает за её базовые команды и операции, которые она умеет делать:
- управление памятью — выделить место программе, ограничить, очистить;
- управление процессами — запустить, дать ресурсы, убить;
- управление железом — в ядро встроены драйверы для некоторого набора оборудования, чтобы операционка сразу работала на железе;
- обмен информацией между процессами, службами и программами — чтобы программы могли отправлять запросы в интернет, писать данные на диск, читать с диска, запускать друг друга, обращаться к системе и т. д.
Ядро практически не видимо для пользователя, его нельзя «открыть», у него нет видимых для пользователя окон и кнопок. В ядро даже нельзя ввести команду с клавиатуры. Это как рептильный мозг человека: у нас нет к нему осознанного доступа и мы не можем остановить себе сердце силой мысли, но благодаря этому «ядру» у нас бьётся сердце.
Поверх ядра Linux разные программисты сделали свои версии операционных систем: RedHat, Ubuntu, Mint Linux и много-много других. Вот и получается, что ядро в основе — одно, а дистрибутивов Linux — много.
Linux — это версия Unix?
Нет, несмотря на похожие названия, это разные продукты.
Unix был создан в компании AT&T в 1970-х. Это была коммерческая операционка, которую хоть и лицензировали для университетов, но всё равно на ней хотели зарабатывать. UNIX существует как отдельная операционная система до сих пор и используется на сетевом оборудовании.
Linux создана в начале 90-х с нуля как открытая альтернатива Unix. В Linux используются многие принципы и механизмы Unix, но код другой. Более того, код Linux открытый: кто угодно может скачать исходник ядра Linux и посмотреть, как там всё устроено.
Возможно, именно благодаря открытости Linux стал настолько популярной операционной системой с сотнями дистрибутивов.
Что такое дистрибутив Linux
Дистрибутив Linux — это когда разные компании и разработчики берут ядро и добавляют сверху какой-то набор программ: оболочки, компиляторы, драйверы и всё остальное. Это уже становится полноценной операционной системой, и каждая из таких сборок имеет своё название.
Количество дистрибутивов Linux огромно — около 500 более-менее известных и бесчисленное множество разных сборок под разные задачи.
Любой человек, почитав полдня документацию и сформулировав свою задачу, сможет собрать собственный дистрибутив Linux — например под старый компьютер, для обучения, напичканный играми или для веб-разработки.
Почему дистрибутивов так много
Потому что каждая компания считает важным что-то своё:
- одни хотят сделать операционку с красивым интерфейсом;
- другие делают акцент на безопасности и шифровании данных;
- третьи хотят расширенную поддержку сетевых протоколов;
- четвёртым нужна поддержка определённого оборудования;
- пятые хотят стабильности и отказоустойчивости;
- шестым нужно, чтобы система работала в брелке от сигнализации;
- а кому-то ещё — чтобы система работала на маломощном процессоре.
В зависимости от того, что для них важно, компании собирают свои дистрибутивы из разных компонентов.
Получается, Linux — это бесплатно?
В основном да, Linux — это бесплатно. Есть и коммерческие сборки Linux: ты платишь за софт и поддержку пользователей.
В этом и есть первая сила Linux — в бесплатности и доступности. Вторая суперсила — в гибкости и разнообразии настроек и специальных программ.
Как выглядит интерфейс Linux
Linux может выглядеть как угодно — смотря что вам нравится.
Когда вы смотрите на окна операционной системы, на самом деле вы смотрите на специальную программу-менеджер. Это надстройка над ядром, которая рисует красивые окна. В операционных системах Windows и MacOS оконные менеджеры стандартные и не меняются, а в Linux можно выбрать свой.
Дистрибутивы Linux выглядят по-разному в зависимости от того, какой оконный менеджер там стоит. Можно вообще обойтись без него.
Например, можно поставить себе оконный менеджер KDE:
Или можно использовать GNOME:
Или менеджер Xfce, если железо совсем слабое:
Можно вообще не пользоваться оконным менеджером и управлять всем из командной строки, как это делают на серверах:
Для чего используется Linux
Linux используется для чего угодно. Так как любой дистрибутив Linux собирается из разных кирпичиков, можно найти дистрибутивы:
- для домашнего ежедневного использования (например, Ubuntu);
- для реанимации старого железа (например, поставить Calculate для слабых компьютеров в школьных классах);
- для серверов предприятий;
- для суперкомпьютеров;
- для отказоустойчивых станций для работы в бесперебойном режиме;
- для систем безопасности и шифрования;
- для создания сети из компьютеров для параллельных вычислений;
- для обслуживания сигнализаций, умных домов и районов;
- для роутеров и прочего компьютерного железа;
- для роботов и робототехники.
Если того, что вам нужно, нет в списке, то вы можете сами сделать свой дистрибутив или взять что-то за основу и поставить туда нужный софт. Такой подход и делает Linux универсальной операционной системой для всего.
Можно ли играть в игры на Linux
В целом — да, но с ограничениями. Вот варианты:
- Можно играть в ретроигры с помощью любого из десятков эмуляторов консоли.
- Можно играть в некоторые PC-игры через эмулятор Windows (например, Wine). Игра может подтормаживать в зависимости от того, какое у вас железо и на какое железо была рассчитана игра.
- Можно играть в игры, портированные на SteamOS — это собственная среда Steam на базе Linux. Компания Valve очень старается сделать как можно больше игр для этой платформы, потому что от этого зависит работа их будущей консоли SteamDeck, так что в некоторые топовые игры поиграть всё-таки можно.
- Можно играть в игры, разработанные непосредственно для Linux.
На Linux можно поиграть в Doom Eternal. А в Doom 3 можно поиграть даже на Линуксе, который работает на одноплатном компьютере Raspberry Pi 4.
Основная проблема с играми на Linux — это передовые игры, которые используют максимум возможностей видеокарты. Не на все карты и не у всех производителей есть драйверы на Linux. Хотя со временем их становится всё больше, а некоторые ребята даже пишут собственные драйверы.
А что со специализированным железом и софтом?
На Linux есть масса профессионального софта для работы с графикой, видео и звуком. Это не такие комбайны, как у Adobe и Apple, но со своими задачами справляются.
Постепенно производители софта понимают важность Linux и выпускают для него полноценные версии своего софта. Например, Blackmagic сделали для Linux полноценную версию видеомонтажной программы Davinci Resolve.
Совместимость со специализированным железом под вопросом: есть железо, которое работает только на Linux. И есть железо, у которого вообще нет драйверов на Linux. Надо смотреть.
Можно ли запускать на Linux программы от MacOS или Windows?
В целом — да. На Linux можно установить эмуляторы других операционных систем. Например, Wine — это широко распространённый эмулятор Windows. Есть система VMWare Workstation, которая создаёт виртуальную машину внутри вашего Линукса, и там можно запустить что угодно.
Надо понимать, что любая эмуляция «отжирает» часть ресурсов компьютера и могут быть проблемы с совместимостью, поэтому ступайте осторожно.
Что дальше
В одном из следующих выпусков перейдём к практике — установим Linux на домашний компьютер. Лайк, подписка.
Источник
Сравнение Linux и Unix
Обновл. 22 Май 2021 |
Unix — это очень старая система, которая считается «матерью» всех операционных систем. Ядро Linux является производным от Unix продуктом. Основное различие между ними заключается не в том, как они выглядят, а в том, как они работают внутри, т.е. в ядре. Многое также будет зависеть от того, какие именно версии/дистрибутивы Linux и Unix вы сравниваете.
Важно также отметить, что Linux (и многие другие Unix-подобные ОС) свободны в распространении и модификации своих исходных кодов, в то время как операционные системы Unix — нет. Стоимость всегда является главной проблемой при принятии решения о том, какую технологию использовать, и Linux имеет преимущество в этом отношении.
Что такое Unix?
Unix считается «матерью» большинства операционных систем. Об истории Unix мы говорили на соответствующем уроке.
Главной управляющей составляющей Unix является её ядро. Ядро имеет полный контроль над всей системой. Оно имеет подсистемы, которые предлагают свои «услуги» по обработке файловой системы, обработке ресурсов, управлению памятью, запуску и остановке программ и нескольким другим низкоуровневым основным задачам.
Ядро является сердцем операционной системы и выступает в качестве интерфейса между пользователем и аппаратным обеспечением компьютера. Каждая подсистема ядра имеет определенные черты, такие как параллелизм, виртуальная память, подкачка и виртуальная файловая система.
Во внешних слоях архитектуры мы имеем оболочку, команды и прикладные программы. Оболочка — это интерфейс между пользователем и ядром. Оболочка позволяет пользователю вводить команды, интерпретирует эти команды и вызывает соответствующие компьютерные программы.
Примерами операционной системы Unix являются Solaris и HP-UX. Крупнейшими дистрибьюторами UNIX-систем являются IBM, HP и SUN.
Что такое Linux?
Люди часто путают термины Unix и Linux и обычно задают такие вопросы, как «отличается ли Unix от Linux?» / «являются ли Linux и Unix одним и тем же?» / «является ли Linux похожим на Unix?» / «построен ли Linux на Unix?».
Вот ответ на все подобные вопросы. Во-первых, да, Linux и Unix отличаются друг от друга, но при этом у них есть взаимосвязь друг с другом, поскольку Linux происходит от Unix.
Linux — это не Unix, а Unix-подобная операционная система. Система Linux является производной от Unix и является продолжением тех основ, которые были заложены в Unix. Дистрибутивы Linux являются наиболее известными примерами прямых потомков от системы Unix. Система BSD (сокр. от «Berkeley Software Distribution») также является примером производной от системы Unix.
На данном этапе важно, чтобы вы четко понимали для себя, что значит термин «Unix-подобная система».
Unix-подобная ОС (также называемая «UN*X» или «*nix») — это та система, которая работает аналогично системе Unix, однако при этом ей не нужно соответствовать Единой спецификации UNIX (сокр. «SUS» от «Single UNIX Specification») или схожему стандарту POSIX (сокр. от «Portable Operating System Interface»).
SUS — это стандарт, который должен соблюдаться операционной системой, чтобы претендовать на использование торговой марки «UNIX». Данная торговая марка предоставляется компанией «The Open Group». Несколько примеров зарегистрированных в настоящее время UNIX-систем включают macOS, Solaris и AIX.
Если же брать стандарт POSIX, то Linux можно рассматривать как Unix-подобную ОС. Согласно официальному файлу README ядра Linux, Linux — это клон UNIX, разработанный с нуля Линусом Торвальдсом и командой других разработчиков. Linux нацелен на соответствие требованиям стандарта POSIX. Код ядра был написан с нуля. Система разработана таким образом, что действует как Unix, но в нее нет исходного кода Unix.
Важно также отметить, что Linux — это только ядро, а не полноценная ОС. Ядро Linux обычно упаковывается в дистрибутивы Linux, что, таким образом, и делает его полноценной ОС. С другой стороны, UNIX сама по себе является полноценной ОС, поскольку всё (все необходимые приложения, связанные вместе) поставляется от одного вендора (поставщика). Например, система Solaris.
Дистрибутив Linux — это операционная система, созданная из набора программного обеспечения, установленного поверх ядра Linux. Стандартный дистрибутив Linux состоит из ядра Linux, системы GNU, утилит GNU, библиотек, компилятора, дополнительного программного обеспечения, документации, оконной системы, оконного менеджера и окружения рабочего стола.
Большая часть программного обеспечения, включенного в дистрибутив Linux, является бесплатным и открытым. Но при этом дистрибутив может включать в себя проприетарные (платные) программы (например, массивы двоичных данных (BLOB)), которые необходимы для некоторых драйверов устройств.
Различия между Unix и Linux
Давайте теперь рассмотрим некоторые наиболее важные различия между Linux и Unix в следующей таблице:
Сравнение | Linux | Unix |
Разработчик | Вдохновленный системой Minix (Unix-подобной ОС), Linux был первоначально разработан финско-американским инженером-программистом Линусом Торвальдсом. Поскольку исходные коды Linux являются открытыми, то у Linux присутствует огромное сообщество разработчиков. | Была разработана в стенах Bell Labs компании AT&T Кеннетом Лейном Томпсоном, Деннисом Ричи и тремя другими программистами. |
Язык программирования | Написан (преимущественно) на языке Cи и на других языках программирования. | Написана на языке Cи и на Ассемблере. |
Торговая марка | Торговая марка «Linux» принадлежит Линусу Торвальдсу и управляется организацией Linux Mark Institute при Linux Foundation. | Торговая марка «UNIX» сертифицирована компанией Open Group. |
Стандарт | Стандартная база Linux (сокр. «LSB» от «Linux Standard Base»), описанная в стандарте ISO/IEC 23360, представляет собой работу по стандартизации ряда дистрибутивов Linux. LSB в основном является расширением POSIX, но имеет некоторые отличия. Однако нет особой необходимости в сертификации LSB, поскольку различные дистрибутивы в любом случае используют одно и то же ядро. | Сертификация Unix основана на «Единой спецификации Unix», которая является расширением стандарта IEEE 1003 (POSIX), а также стандарта ISO/IEC 9945. POSIX определяет программируемый API, а также интерфейсы оболочки и утилит. Стандарт POSIX был разработан как способ обеспечения совместимости между различными дистрибутивами Unix. |
Лицензия | GNU v2 (GPL General Public License) и другие. | Тип лицензии варьируется. Некоторые версии являются проприетарными, в то время как другие являются бесплатными. |
Семейство ОС | Unix-подобная | Unix |
Языковая поддержка | Мультиязычная | Английский |
Первый релиз | Linux моложе Unix. Он был получен из Unix и выпущен в сентябре 1991 года. | Unix старше Linux. Система была выпущена в октябре 1973 года. До этого, с момента её создания в 1970 году, она использовалась исключительно внутри компании Bell Labs. |
Примеры | Множество различных дистрибутивов: Ubuntu, Debian, CentOS, Fedora, Manjaro, Arch и пр. | IBM AIX, Solaris, HP-UX, Darwin, macOS и пр. |
Тип ядра | Монолитное ядро | Тип ядра варьируется. Оно может быть монолитным, микроядром или гибридным. |
Файловые системы | Поддерживает почти все файловые системы, используемые в разных операционных системах. | Большинство версий поддерживают две или, возможно, три файловые системы. |
GUI | Linux ориентирован на работу с командной строкой, но некоторые дистрибутивы могут предлагать и поддержку GUI-интерфейсов. Самыми популярными GUI-интерфейсами являются Gnome, KDE и Xfce. | Изначально система была заточена на работу с командной строкой, но позже была реализована поддержка окружения рабочего стола. В большинстве Unix-дистрибутивов в качестве такого окружения используется Gnome. |
Масштабируемость | *Масштабируемость достигается с помощью кластеров, сетей или облаков. | *Масштабируемость достигается с помощью кластеров или сетей. |
Интерфейс | Стандартной оболочкой является BASH (сорк. от «Bourne Again SHell»). Но некоторые дистрибутивы разработали свои собственные интерфейсы. | Изначально использовался интерфейс sh (сокр. от «Bourne shell»). Но также система совместима и с другими GUI-интерфейсами. |
Модель исходных кодов | Открытые исходные коды (open-source software). | Смешанная. Обычно исходные коды являются закрытыми, однако некоторые проекты Unix (по типу ОС illumos и ОС BSD) относятся к проектам с открытым исходным кодом. |
Безопасность | Linux-системы обычно считаются очень хорошо защищенными от вредоносных программ. Это связано с тем, что выполнять какие-либо действия по изменению системных файлов может только пользователь с правами superuser (su) или root. Постоянно работать под этими правами продвинутый пользователь в Linux (в отличие от Windows) не будет, а когда будет — то он знает, что он делает и какие файлы запускает. Вирусы под Linux-системы есть, но их сравнительно малое количество, что напрямую связано с маленькой мировой долей рынка. | Unix также считается очень безопасным по тем же причинам, что и Linux. |
Обнаружение ошибок | Поскольку исходные коды Linux являются открытыми, то всякий раз, когда пользователь публикует информацию о какой-либо ошибке/угрозе, разработчики со всего мира очень скоро начинают работать над ней. И, следовательно, обеспечивается более быстрое решение проблемы. | Из-за проприетарной природы Unix-пользователям приходится ждать исправляющие ошибки патчи. |
Поддержка | Бесплатная поддержка сообществом. Платная поддержка доступна от ряда поставщиков услуг. | Платная коммерческая поддержка. Часто это приводит к вендор локу (привязка к поставщику). |
Использование | Преимущественно используется для облачного развертывания и центров обработки данных (в первую очередь по экономическим причинам). | Преимущественно используется для серверов с особыми требованиями к приложениям из-за необходимости в поддержки устаревшего оборудования/ПО. |
Стоимость использования | Может быть получен и использован свободно. Также существуют платные дистрибутивы Linux, которые, как правило, дешевле Windows. | Проприетарные операционные системы имеют различные структуры затрат, установленные соответственно вендорами (поставщиками), продающими их. |
*Примечание: Кластер — это совокупность однородных компьютеров, сетка — совокупность распределенных компьютеров, а облачная служба — совокупность виртуализированных кластеров.
Ядро Linux vs. Ядро Unix
Поскольку Linux сам по себе является просто ядром, то стоит обсудить основные различия между ядром Linux и ядром Unix.
Существует три типа ядра: монолитное, микроядро и гибридное (комбинация монолитного и микроядра).
Хотя ядро Linux и наследует большую часть своих характеристик от Unix/Unix-подобных ядер, тем не менее, между ними есть некоторые существенные различия.
Давайте теперь рассмотрим некоторые наиболее важные различия между ядром Linux и ядром Unix в следующей таблице:
Источник