linux что это за операционная система и зачем она нужна
Это вступительная статья про операционную систему Линукс (Linux). В ней мы пробежимся по основным моментам и особенностям ОС Линукс. Весь материал ориентирован на новичков и написан доступным языком.
1. Что такое Линукс простыми словами
Помимо самой ОС Линукс, все пакеты (программы) бесплатны. Это крайне ценится на западе, поскольку у них слабо развито пиратство. Большинство из них платят за программные продукты, которыми они пользуются. В России ситуация не такая. Практически каждый считает, что софт является бесплатным, хотя практически все популярные программы являются платными.
Существует несколько графических интерфейсов или GUI (мы рассмотрим их далее). В большинстве случаев он очень напоминает X Window System, поэтому, кто умеет пользоваться Windows легко освоит и Linux.
Кто является владельцем
ОС Линукс никому не принадлежит. Точнее можно сказать, что она принадлежит сообществу программистов. На бесплатной основе каждый желающий может вносить свои изменения, которые в дальнейшем принимаются сообществом.
Собственно говоря усилиями десятков тысяч программистов и был создан Линукс. Изначально первыми пользователями были опытные пользователи ПК. Сейчас все больше становится и обычных пользователей Линукса.
Отличительно и то, что Линукс работает на всех архитектурах: DEC Alpha, x86, x86-64, ARM и PowerPC.
Линукс является ядром операционной системой, поэтому на профессиональном уровне можно сказать, что Линукс это не ОС, а лишь ядро, но для обычного обывателя для начала работы это мало имеет значение. Ядро Линукс похоже на движок.
Зачастую в различных источниках можно увидеть название «GNU/Linux» (по сути это то же самое, что и Linux). Однако в среде профессионалов даже разгораются жаркие дискуссии по этому поводу.
Тех, кто пользуюется ОС Линукс зачастую называют «линуксойдам».
Говоря про Linux нельзя не упомянуть про проект GNU — это концепция свободного бесплатного программного обеспечения. Основатель Ричард Столлман.
2. История появления Linux
Первым разработчиком и создателем Linux считается «Линус Торвальдс». Собственно в честь его имени и была названа ОС. Торговая марка «Linux» принадлежит его создателю.
В далеком 1981 году он стал работать над собственной операционной системой семейства Unix. В 1984 году на свет появилась первая ее версия доступная для скачивания. В то время ей пользовались буквально пару человек.
Однако широкое распространение система получила лишь 10 лет спустя. После этого сообщество программистов подхватили основную идею GNU и стали вкладывать свои усилия в развитие проекта.
Логотипом и талисманом Linux является пингвин «Tux». От «обычных» пингвинов отличается жёлтым цветом клюва и лап. Придуман и запатентован в 1996 году Ларри Юингом.
В 20 веке Linux стал еще более популярным. Это уже давно не любительский проект, а полноценная операционная система, которая насчитывает миллионы строк кода.
3. Особенности Linux
Перечислим основные особенности ОС Linux.
1 Большинство пользователей среду Линукса являются программисты и администраторы. Это довольно опытные и «прошаренные» пользователи. Поэтому их не пугает то, что очень много действий приходится делать через терминал (консольная строка). Для любителей Windows это покажется настоящим «маразмом», но со временем к терминалу быстро привыкаешь:
Для более быстрого «общения» с командной строкой можно использовать кнопку «Tab», которая сразу подскажет все команды начинающиеся на введённый набор символ или же сразу применит автозаполнение, если возможен лишь один доступный набор.
2 Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.
3 Linux является многозадачной и многопользовательской операционной системой. Windows в этом плане также сильно преуспел, но все же его возможности не очень удобные для работы нескольких пользователей
4 В Linux нету жестких дисков, как на Windows. Здесь все хранится в едином каталоге, который начинается с «/» (корневой каталог, root directory). Файлы пользователей лежат в каталогах «/home/name_users/».
5 Программные оболочки bash или tcsh. С помощью них Linux выполняет команды пользователей. Отдаваемая команда относится к текущему каталогу (current directory). Домашний каталог можно обозначать символом «
» (тильда). Это аналог «/home/name_users/»
6 Файловые системы в Linux отличны от Windows:
Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.
7 Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)
8 Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.
9 В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.
4. Дистрибутивы Linux — что это и какие они бывают
Говоря простыми словами:
Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:
Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.
Линукс также практикует такой вид дистрибутивов, которые не требуют установки на жесткий диск. Они работают в режиме «LiveCD». Информация загружается в оперативную память и уже работает с нее. Примеры таких систем: Knoppix, Fedora.
Существуют и чисто российские версии:
5. Интерфейсы Linux
Поскольку дистрибутивов много, то и различных версий оформления рабочего стола/панели инструментов также много. Однако в Линуксе придумано несколько стандартов, которые поддерживаются популярными версиями ОС.
6. Репозиторий Linux
В Linux все программы (пакеты) хранятся в репозиториях, который представляет из себя сервер, где программисты выкладывают софт. Здесь можно скачать самые последние и актуальные версии программ.
Для Линукса репозиторий это аналог Play Market для Android.
Чтобы скачать пакет необходимо в терминале написать:
Для чего нужен Linux
В наши дни операционные системы на базе ядра Linux используются повсеместно. В некоторых сферах деятельности они даже намного популярнее, по сравнению с Windows. Если вы ещё задаётесь вопросом нужен ли Linux, то с помощью этой статьи вы сможете ответить на него.
Конечно, всё это никак не влияет использование Linux для домашних компьютеров, поскольку для этого надо чтобы для Linux было программное обеспечение, которое надо домашним пользователям.
Зачем нужен Linux и где он используется?
1. Веб-серверы
Дистрибутивы Linux захватили рынок серверов, а рынок веб-серверов практически полностью. По данным рейтинга W3Techs Unix и Linux подобные операционные системы используются на 71.6% от десяти миллионов первых доменов по рейтингу Alexa. Все остальные серверы используют Windows. Использовать Linux на серверах выгодно, потому что эта операционная система бесплатна, вам не надо платить за лицензию и вы можете сразу же развернуть нужный образ Linux на сервере.
2. Мобильные устройства
Операционная система Android основана на ядре Linux, поэтому можно считать, что Linux используется на мобильных устройствах. Согласно исследованию от Bloomberg операционная система Android установлена на восьми из десяти смартфонов в мире. Система Android завоевала свою популярность благодаря открытости, простоте использования, а также простоте разработки приложений для этой системы.
3. Суперкомпьютеры
Все суперкомпьютеры уникальны и для каждого из них требуется что-то особенное, чтобы решить задачу, которую он выполняет. Благодаря тому, что у Linux открытый исходный код, разработчики могут видоизменять эту операционную систему так, чтобы она делала всё, что им нужно. И всё это вполне законно. Согласно статистике все 500 самых мощных суперкомпьютеров используют Linux.
4. Игровые консоли
Несмотря на то, что с играми в Linux пока всё не очень радужно, компания Steam пытается исправить эту ситуацию, поэтому разрабатывает операционную систему SteamOS, которая будет поставляться вместе с игровой консолью Steam Machine. Генеральный директор Valve сообщил, что у Windows нет перспектив, поскольку они начали ориентироваться на сенсорное управление компьютером и вообще игровая платформа должна быть открытой. Linux позволяет создать полноценную альтернативную игровую платформу.
5. Роутеры
Для обеспечения работы роутеров тоже нужна операционная система и как правило, все эти прошивки и системы работают на ядре Linux. Потому что Linux бесплатен и на его основе можно сделать всё, что нужно пользователям. Правда, у таких устройств есть значительный минус, который делает Linux дурную славу. Большинство прошивок никогда не обновляются и в них собирается множество уязвимостей, с помощью которых можно их взломать.
6. Устройства IoT и умная техника
Многие гаджеты умного дома, вроде умных холодильников, стиральных машин и тому подобных вещей тоже используют Linux по той же причине. Например, компания Samsung разработала операционную систему Tizen на базе ядра Linux для умных телевизоров, а ещё она выпускает стиральные машинки с ОС на базе Linux. Компания LG для умных телевизоров использует WebOS, а Philips и Phanasonic используют FirefoxOS.
7. Военное использование
Военные России и США тоже используют Linux для обеспечения работы своих систем. Главным образом потому что это программное обеспечение с открытым исходным кодом, а это значит, что если там есть какие-нибудь закладки от компании разработчика, позволяющие чужой стране шпионить за военными секретами, то их удастся найти и обезвредить. Российские военные используют Astra Linux, а Пентагон США применяет Red Hat Enterprice Linux.
8. Транспорт и авиация
Многие автомобили используют для встроенных в машину компьютеров операционную систему Linux. Например, это автомобили компании Tesla, а также автомобили с автопилотом от Google. В авиации тоже используется Linux, например федеральная администрация авиации США ещё в 2006 году перешла на Linux и их программное обеспечение для отслеживания трафика разработано на базе Linux.
Выводы
В этой статье мы рассмотрели для чего нужен Linux и где больше всего применяется эта операционная система. Если вы знаете ещё какие-нибудь варианты применения Linux, не упомянутые в статье, напишите о них в комментариях!
Что такое Linux (и другие вопросы)
Быстрое знакомство с самой многогранной операционной системой
Операционная система Linux работает почти на всех серверах в интернете. При этом Linux — это не название какой-то одной операционной системы, а общее название для сотен систем. Давайте разберёмся, как это вообще возможно.
Что такое Linux
Linux — это одновременно две вещи:
Отдельной операционки под названием 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 собирается из разных кирпичиков, можно найти дистрибутивы:
Если того, что вам нужно, нет в списке, то вы можете сами сделать свой дистрибутив или взять что-то за основу и поставить туда нужный софт. Такой подход и делает Linux универсальной операционной системой для всего.
Можно ли играть в игры на 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 доминирует на всех типах компьютеров, кроме настольных (десктопы и ноуты) и, наверное, мейнфреймов. Встроенные системы, мобильные, серверы-облака-суперкомпьютеры — везде преобладают системы на ядре Linux. Линукс провалился на десктопах и мейнфреймах только потому, что в сегментах этих доминируют монополии — Microsoft и IBM. И Майкрософт всеми силами старается удержать своё доминирование (IBM понемногу сдаёт позиции — переводит свои мейнфреймы на Linux).
Майкрософту на руку играет огромная экосистема Windows, её инерция, которая тащит за собой бизнес и домашних юзеров. Но и экосистема Linux сильно разрослась по сравнению с тем, что было лет 15 назад, и сейчас многим организациям и домашним пользователям есть резон перейти на Линукс. И даже не один, а целых семь.
Прозрачность
Linux и большинство софта его экосистемы имеют открытые/свободные лицензии вроде GPL и BSD. Это значит, что исходники программ не хранятся где-то в глубоких программистских копях корпораций, а лежат перед глазами всего мира на публичных серверах. Более того, процесс разработки этого софта тоже полностью открыт, каждое изменение зафиксировано и видно всем. Поэтому код постоянно проверяется децентрализованной сетью специалистов со всего мира на предмет ошибок, уязвимостей и зловредов. Если же изменения (патчи) может присылать любой желающий — такой софт совершенствуется быстрее проприетарного (с поправкой на популярность и модель разработки, конечно).
Доступность
Вы можете получить легальную (лицензионную) копию системы полностью бесплатно, скачав в интернете. Да, есть коммерческие дистрибутивы вроде RHEL, но в них вы платите за обновления и техподдержку. Сами эти дистрибутивы, опять же, можно легально скачать, не платя ни копейки. Предприятие или организация может сильно сэкономить на лицензиях, потому что пиратский софт для них крайне рискован и потому недопустим. На мой взгляд, рядовому домашнему пользователю тоже лучше не пользоваться пиратскими (взломанными) программами, даже несмотря на почти нулевой риск попасть под статью. Ведь взломанная система или программа может работать нестабильно. Да и что мешает пиратам-взломщикам засунуть в код какой-нибудь троян или рекламный модуль?
Имея хорошие скиллы в программировании (и не имея личной жизни), вы можете сами контролировать код программ, которые используете. Тоже совершенно легально. Для организаций и компаний это особенно удобно.
Безопасность
Чуть менее чем все зловреды, обитающие в глобальной сети, разработаны для Windows и её экосистемы. Linux хорошо защищает ваши локальные системы и сети от заразы вроде троянов, вирусов, майнеров, локеров, рекламных модулей.
Да, линуксовые серверы ломают и заражают часто, но большая часть атак происходит через приложения вроде веб-серверов/движков/и т.д. или через явные ошибки в администрировании системы. При надобности уровень защиты можно выкрутить до непробиваемого уровня с помощью hardened-инструментов вроде PaX и SELinux.
Я часто вижу беспечное отношение людей к безопасности своих домашних систем, мол, что этим хакерам с меня взять. На самом деле, у каждого в 2020 году можно много чего взять с компьютеров: рабочие учётки, аккаунты от банков и кошельков, и т.д. Да и личные/рабочие файлы можно потерять из-за какого-нибудь шифровальщика, тоже приятного мало. Хакерам же незачем пыхтеть ломать вручную конкретно вас, боты и вирусня делают всё сами в массовых масштабах.
Децентрализация
Открытые и свободные программы принадлежат сразу всем и никому конкретно. Благодаря этому разные компании, страны, организации, коллективы и даже одиночки вроде Патрика Фолькердинга делают собственные дистрибутивы (комплекты) Linux. Только самых популярных дистрибутивов не меньше десятка, а сколько их всего — неизвестно, потому что дистрибутив для своих внутренних нужд может сделать любая организация.
Как следствие, пользователю Линукса ни один человек, компания или государство не могут диктовать свои условия, особенно если у него есть ресурсы для локального контроля исходников. Да, есть главная ветка ядра, которой командует великий и ужасный (сейчас уже не такой ужасный) Линус Торвальдс, но есть и другие ветки, которыми командуют другие. Да, вы в одиночку скорее всего не сможете влиять на разработку компонентов системы или приложений, но вы можете блокировать или фильтровать изменения. Здесь всё упирается в количество проприетарного софта — чем его больше у вас, тем меньше у вас контроля над происходящим (а проприетарный софт есть и на Линуксах).
Гибкость и разнообразие
Разные дистрибутивы зачастую серьёзно отличаются друг от друга, несмотря на массу всяких Болженосов, у которых из уникальных фич только нескучные обои. Какие-то дистрибутивы делают упор на корпоративную экосистему и поддержку (RHEL, SLED, Fedora, Ubuntu, Calculate), какие-то — на универсальность и мощь (Debian, openSUSE, Arch). Есть узкоспециализированные варианты (медиа-центры, рабочие станции, системы для оборудования и роботов), есть легковесные сборки, есть секурные дистрибутивы для безопасников и Kali для их ночных кошмаров. NixOS и Gentoo предлагают мощные инфраструктуры для кастомизации систем и прикладного софта, для создания заточенных под конкретные задачи сборок. Есть Линуксы для православных и сатанистов (я не шучу), для музыкантов и видеомонтажёров, игровые и образовательные сборки.
Если у вас возникает надобность решить какую-то компьютерную задачу — возможно, для неё уже сделан дистрибутив Линукса.
Масштабируемость
Ядро Linux работает и на встроенных системах, и на суперкомпьютерах. В Линуксах нет искусственных ограничений на количество процессоров, ядер, оперативной памяти, и так далее. Фактически, вы можете скопировать Линукс со своего ноута на взрослый сервер, и он будет работать без проблем. Привет, Microsoft, который даже на Windows 10 Pro не даёт нормально работать больше чем с 64 ядрами
Это работает и в обратную сторону — любому одиночке-энтузиасту доступны все взрослые возможности вроде упомянутых выше hardened-инструментов или софта для промышленного оборудования и сервисов.
Простота
Да, настольный Linux проще в обращении, чем Windows. Всё, что нужно делать — это ставить-удалять программы через менеджер пакетов и обновлять систему через него же (да и апдейты ставить вас никто не заставляет). Вы избавлены от головной боли поиска и скачивания программ, в которых зачастую то реклама, то куча левых программ впридачу, то вообще зараза какая-нибудь. Система со временем почти не накапливает ошибок и глюков, хотя количество установленных-удалённых пакетов может исчисляться тысячами. Я, например, уже пятый год таскаю за собой Линукс с компа на комп простым копированием корня и домашнего каталога.
Если вам хватает линуксового софта, а железо ваше нормально поддерживается Линуксом, то затруднить переход вам могут только накопленные на Windows привычки и паттерны.
Что такое Linux? Статья-шпаргалка для новичков
Салют! Это статья — попытка систематизировать некие базовые знания об Linux’ах, которая может быть полезна для продвинутых пользователей, разработчиков и админов Windows, которые еще не имели (или имели крайне небольшой и отрывочный) опыт работы с Linux системами и не знают, с чего начать, однако хотят попробовать — сами, или по причине производственной необходимости. Каждый пункт содержит не исчёрпывающие сведения, а лишь отправные пункты для дальнейшего изучения (гуглежа) материала.
Если интересно — прыгайте под кат
А что такое Linux?
Под именем Linux сегодня люди понимают одну из двух вещей:
- Операционные Системы на базе GNU/Linux, или, как их по-другому называют, дистрибутивы. Наиболее популярные RedHat/CentOS, Debian, Ubuntu и другие. Маленькая часть из них была представлена на КДПВ 🙂
- Ядро Linux и, опционально, набор программ GNU coreutils.
Несколько слов об ядре.
Давайте я расскажу вам чуть больше о GNU/Linux ядре.
Первое, вы должны знать, что все ядра ОС бывают трех типов:
- микроядро;
- монолит (Linux);
- гибрид (OS X, Windows 7).
Основная разница между монолитным и микроядром в том, что микроядра включают только:
- IPC (систему межпроцессного взаимодействия), управление памятью, планировщик и диспетчер.
В то время как монолитные ядра также включают в себя:
- Файловую систему (системы), драйвера, VFS (в случае с Linux kernel).
Ядро Линукса занимается:
- Управлением процессами.
- Управлением памятью.
- Взаимодействием с устройствами (через драйвера).
- Системными вызовами и безопасностью.
Все программы, запускаемые пользователем, работают в так называемом пользовательском пространстве (user space). Эти программы взаимодействуют с ядром через интерфейс системных вызовов (system call interface, SCI). Также, Ядро ограничивает доступ к ЦПУ, памяти для пользовательских программ, в то время как код из ядра имеет неограниченным доступ к ресурсам компьютера. Все пользовательские программы взаимодействуют с друг другом при помощи межпроцессной коммуникации (interprocess communication, IPC)
Так же, несмотря на то, что большинство считает Ядро монолитным, оно использует модули. Модули могут быть встроенными или подгружаемыми. Последние могут быть включены или выключены во время работы ОС. Больше про модули можно прочесть на АрчВики
C помощью вышеуказанных механизмов, Ядро может быть использовано для продвинутых настроек безопасности, создание контейнеров, и виртуальных машин.
GNU Core Utilities (coreutils)
GNU Core Utilities (coreutils) — набор программ, системных утилит, которые есть почти на всех GNU/Linux сборках. Он включают в себя:
-
— изменяет разрешения на файлах; — изменяет владельца файла и его группу; — изменяет корневую (root) директорию; — копирует файлы и директории; — копирует, конвертирует файлы; — показывает свободное место на файловой системе; — показывает занятое место на файловой системе; — создаёт ссылки; — показывает содержимое директории; — создает директорию; — перемещает (переименовывает) файлы; — удаляет файлы; — удаляет пустые директории; — изменяет таймметку на или создает пустой файл; — выводит имя файла без пути до него, если указано, удаляет расширение файла; — выводит содержимое файла в терминал (стандартный вывод); — сравнивает построчно два файла; — выводит только определенные части строк из файла в терминал; — оставляет только путь, удаляя имя файла из его полного пути; — выводит в терминал строку текста; , unexpand — конвертирует табы в пробелы и обратно; — возвращает ошибочный статус выхода из приложения; — форматтер текста; — разбивает строчку на сегменты фиксированной ширины; — выводит первую строку файла; — соединяет две строки из разных файлов по общему полю; — считает MD5 хэш; — соединяет строки файлов; — конвертирует файлы для печати; — выводит числовые последовательности; — приоставналивает выполнение на указанное время; — сортирует строки текстовых файлов; — разделяет файл на части; — выводит последнюю часть файла; — отправляет вывод в разные файлы; — проверяет типы файлов и сравнивает значения; — переводит или удаляет символы; — возвращает успешный статус выхода; — удаляет повторяющиеся строки в отсортированном файле; — выводит количество байт, слов и строк в файле; — выводит одну и ту же строчку; — выводит или устанавливает текущую дату и время; — выводит или изменяет текущие параметры окружения (environment); — выводит группы, в которых пользователей состоит;
- hostname — выводит или устанавливает имя компьютера; — выводит uid/gid пользователя; — изменяет приоритет планировщика; — — выводит текущую директорию (полный путь); — позволяет вам получить id другого пользователя (переключиться в него). Чуть больше особенностей su в Debian; — выводит системную информацию; — выводит список всех пользователей, которые сейчас залогинены в системе in; — выводит текущий id пользователя.
Также туда входят следующие утилиты:
chgrp, cksum, csplit, dir, dircolors, expr, factor, hostid, install, link, logname, mkfifo, mknod, nl, nohup, od, pathchk, pinky, printenv, printf, ptx, shred, stty, sum, sync, tac, tsort, tty, unlink, users, vdir
Мои коллеги очень просили добавить меня следующее: вы всегда можете получить справку, напечатав `man name_of_the_tool`. Альтернативный вариант, чтобы получить справку, который является более-менее стандартным для всех CLI (command line interface) утилит, это `name_of_the_tool —help`. Наконец, еще один вариант, где найти документацию на команду, это впечатать `info name_of_the_tool`.
Теперь, когда мы уже чуть-чуть знаем об ядре, системных утилитах, нам нужно познакомиться еще с несколькими моментами, и мы сможем начать работать с нашей машиной под управлением GNU/Linux, и начать, пожалуй, стоит со среды, в которой выполняются все вышеуказанные программы — в командной строке Bash.
Bash — интерпретатор командной строки
Теперь я хочу вам рассказать о командной строке в Linux. Командная строка — это интерфейс для ввода команд, а Bash — оболочка (shell) и интерпретатор команд. Большинство людей знакомы с command.com в DOS, Windows или более новым и продвинутым PowerShell, то вот сюрприз о Linux’e: их здесь много. Целое семейство разных интерпретаторов. Некоторые из них проще, другие сложнее, какие-то имеют маленький размер, и так далее. Факт в том, что если вы будете работать с Linux серверами, вы будете работать с одним из них.
Bash является оболочкой по умолчанию в Linux дистрибутивах на протяжении многих лет, и используется в RHEL/CentOS, Oracle Linux и так далее. Но у него есть популярные альтернативы: Dash (Debian, Ubuntu), zsh, и другие. Они все в целом похожи друг на друга, потому что поддерживают стандарт POSIX, но имеют небольшие отличия в деталях.
Bash — Bourne Again Shell, имя которого является игрой слов на тему Bourne — born (рожденный). Борн — фамилия автора оригинальной командной строки Bourne shell (1979) или просто shell для Version 7 Unix. Первая версия Bash была написана Брайаном Фоксом, и вышла в свет в 1989, как одна из попыток заменить проприетарный Bourne Shell открытым продуктом. В свою очередь, Bash, сохраняя совместимость с оригинальным интерпретатором, принёс много новых фич, а также взял некоторые идеи из других проектов. Так, команда `history` была “позаимствована” из проектов csh и ksh.
Системы управления пакетами
В то время как в Windows, вы обычно идёте на какой-то сайт, скачиваете exe файл программы или инсталлятора, копируете или устанавливаете его, в Linux системах, обычно это делается по-другому. Хотя да, вы всё ещё можете скачать файл и установить его, но это считается наименее популярным методом установки.
Наиболее популярный — установка с помощью системы управления пакетами.
Любая из них делает следующее:
- Устанавливает пакеты (программы), включая их зависимости.
- Обновляет их.
- Деинсталлирует их.
Почему я отдельно указал на установку зависимостей? Дело в том, что пока Windows программы обычно хранят их зависимости в той же папке, что и программа (\*.dll файлы, к примеру), в Linux системах зависимости устанавливаются в общую для всех программ директорию с целью последующего переиспользования данных зависимостей и библиотек. Обычно, \*.so — расширение файлов библиотек в Linux.
Конечно, с появлением платформы .Net Framework, проблема значительно облегчилась и тем самым сократилось количество необходимых зависимостей, но, тем не менее, это то, как это работает в Windows.
Linux путь предполагает написание маленьких вещей, которые делают хорошо одну задачу. В том числе поэтому здесь большое количество зависимостей и есть проблема с тем, чтобы содержать их в порядке.
Существуют две наиболее популярные системы управления пакетами для GNU/Linux.
Первая называется Yum (или DNF). В ней используется пакетный менеджер RPM (RPM Package Manager). Используется в следующих дистрах:
- RedHat Enterprise Linux/CentOS
- Fedora
- Oracle Enterprise Linux
- SUSE/OpenSUSE (опционально, а родной — zypper)
Вторая — Apt. В качестве пакетного менеджера использует dpkg. Наиболее популярные дистрибутивы с ней:
- Debian
- Ubuntu
- Linux Mint
Slackware, Arch используют свои собственные пакетные менеджеры: slackpkg и pacman.
Каждая Linux система, которая идет с предустановленной системой управления пакетами, содержит преднастроенные Интернет-репозитории (или, как иначе говорят, репы — такой вот жаргонизм). Так же, системный администратор может легко добавить свои собственные репозитории.
Наконец, если вы оказались в изолированной от Интернета сети, то вы можете установить пакеты из инсталляционных файлов с помощью пакетного менеджера
rpm -i filename.rpm
Это установит пакет в RHEL/CentOS, Fedora, Oracle Linux, SUSE/OpenSUSE
однако, лучше все же сделать вот так:
dnf install https://mirror.yandex.ru/epel/9/Everything/x86_64/Packages/e/epel-release-9-3.el9.noarch.rpm
dnf install ./skype.rpm
— спасибо aim
dpkg -i filename.deb
однако, лучше все же сделать вот так:
apt install ./filename.deb — спасибо WASD1
Это установит пакет в Debian, Ubuntu, Linux Mint
Еще одна возможность для пользователей ПК. В последнее время, часть разработчиков софта для конечных пользователей решила использовать дистрибутиво-независимые пакетные менеджеры. Для этого, все зависимости упаковываются в один файл. Наиболее популярные варианты: Snap, Flatpak, AppImage. Первые два предлагают возможность обновление установленного через них ПО с помощью загрузки обновлений из их репозиториев, AppImage не имеет такой возможности. Snap идёт предустановленным в Ubuntu, начиная с 16.04 LTS.
Система инициалиазации
Другая подсистема, которая не является частью Ядра, но является второй по значимости после него — это init система, которая используется для инициализации пользовательского пространства (user space) и управлением пользовательских процессов.
Здесь есть несколько альтернатив, давайте обозначим наиболее популярные из них:
- SysVinit (sysvinit, sysv, или просто ‘init’) — прямой потомок (порт) системы инициализации из ОС UNIX’ System V. Был наиболее популярной системой инициализации на протяжении 20+ лет (1991-2011).
- Upstart — первая хорошая попытка заменить SysVinit, которая исправляла его недостатки, но позже популярность этого решения сошла на нет. Первоначально разработана Canonical в 2006. Сегодня единственная ОС (хоть и не GNU/Linux), которая его использует, это Chrome OS.
- OpenRC — легковесный, простой аналог sysvinit. Используется в Gentoo Linux, Alpine Linux, и некоторых других легких дистрибутивах.
- systemd — сегодняшнее решение в большинстве Linux дистрибах.
Особняком стоит Slackware, популярный дистрибутив, который использует собственное BSD-подобное решение в качестве системы инициализации.
В Линуксе, все процессы имеют номер (Process ID, PID). При загрузке ядро инициализирует все внутренние структуры и запускает первый пользовательский (user space) процесс с PID 1 — как правило, это система инициализации. Она же является родителем для любых пользовательских процессов. Кстати, полезная штука — в Linux отображаются не только PID собственно процесса, но и его родителя. Посмотреть родителей можно так:
ps -efj
Так случается, что в процессе завершения процессов, иногда остаются процессы, у которых не осталось родителя (технически, их родителем становится init) — такие процессы называются осиротевшими (orphaned processes) и указывают на возможное наличие проблем на данной системе. Другой момент, с которым тоже, возможно, придется столкнуться — это процессы, которые отображаются с состоянием Terminated (завершены). Такие процессы, в свою очередь, называются зомби -процессами (zombie-processes).
systemd
Скорее всего, вы будете работать с этой системой инициализации. Самое главное, пожалуй, с чего стоит начать знакомство, это с утилит systemctl и journalctl. У первой довольной простой синтаксис
systemctl command service . К примеру, systemctl status networking покажет текущее состояние демона (службы) сетевых интерфейсов. systemctl restart mysql перезагрузит демона сервера MySQL. stop/start сделают остановку или запуск указанного демона.
Для отладки придётся часто заглядывать в журнал и искать там ошибки,
journalctl -xe .
С помощью systemd можно сделать из обычной программы программу-сервис.
Больше о systemd можно прочесть здесь: en.wikipedia.org/wiki/Systemd
Ваш первый вход на Linux сервер
Конечно, вы можете подключиться к серверу с помощью клавиатуры, мышки и монитора. Но обычно большинство людей подключаются к серверам удаленно. Для этих целей служит сервис (демон) sshd (ssh daemon, или ssh server). Он слушает 22 TCP порт. Позволяет подключаться как с логином-паролем, так и с помощью ключей. Настройки входа зависят от конкретной инсталляции.
В 10-ку, с определенного момента, встроен ssh клиент. Для более старых версий Windows есть клиент Putty — маленький, простой, бесплатный клиент для входа на удаленные Linux сервера. Должен отметить, что Putty не мог входить по обычной паре ключей и нуждался в ключе в формате ppk — здесь инструкция, как сконвертировать ключ в нужный формат.
Если вы хотите настроить вход по ключу, вам надо сгенерировать пару ключей (приватный и публичный), вписать содержимое публичного ключа на удаленном сервере в файл authorized_keys, который расположен в папке
— обозначает домашнюю директорию пользователя, ‘.’ — что файл или папка — скрытые. Если папка не существует, её нужно создать командой mkdir .ssh , перейти в неё командой cd .ssh , далее создать файл vi authorized_keys . Важный момент — чтобы выйти из текстового редактора vi, нажмите esc , потом впечатайте :wq (выйти с записью). После этого нужно установить корректные разрешения на этот файл с помощью команды chmod 0600 authorized_keys . Где 0600 обозначает, что пользователю-владельцу разрешено читать (4) и изменять (2) — а потому, в сумме, 6 — этот файл, пользователям из его группы (0) и другим пользователям (0) не разрешено ничего с этим файлом.
А еще есть «человеческий» метод: ssh-copy-id
Кроме того, система разрешений еще может указывать на исполняемость файла (1). Так, к примеру, пользователь может разрешить другим пользователям запускать какой-то файл, и тогда права будут 0755 — себе полные права (4+2+1), остальные пользователи могут считать (4) и запустить (1) исполняемый файл.
Часто разрешения представлены в текстовой форме. Так, rwx значит 7, rw- значит 6, r-x значит 5, and so on. К примеру, r—r—r— значит 444 — файл только для чтения для всех пользователей, включая владельца.
Управление пользователями
В большинстве случаев новый сервер будет выдан с рутовой учетной записью (пользователем root), которая является суперпользователем (“админом” в терминах Линукс систем). Однако, очень рекомендуется не использовать root пользователя в ежедневной работе. Для этого, вам нужно научиться управлять пользователями. Это довольно просто и логично:
- useradd — создает нового пользователя, ключ -d позволяет указать домашнюю директорию;
- usermod — изменяет пользователя;
- userdel -r — удаляет пользователя и его домашнюю папку;
- passwd $username — меняет пароль пользователя.
Есть команда chage (-l) , которая позволяет установить (посмотреть) срок истечения пароля, а также есть опция для блокировки пользователя целиком или только для входа в систему (поведение и точная команда зависит от дистра)
Раньше, наиболее популярным пакетом с сетевыми утилитами был net-tools. Он предоставлял такие утилиты как ifconfig (просмотр сетевых интерфейсов), netstat (просмотр сетевых соединений), и другие полезные утилиты.
Но всё течет, всё меняется, и теперь пакет net-tools не установлен по умолчанию, будучи замененным на более современный пакет iproute2.
Так, ifconfig был заменен на ip addr , ip link , ip -s ;
arp заменен на ip n ,
iptunnel на ip tunnel , iwconfig на iw , nameif на ip link .
netstat заменен на ss ,
netstat -r на ip route ,
netstat -i на ip -s link ,
netstat -g на ip maddr .
Настройка и конфигурирование сетевых адаптеров имеет несколько «базовых» вариантов, поэтому лучше искать как это делается конкретно в вашем дистрибутиве (не забывая указывать его версию).
Так, к примеру, в RedHat настройки интерфейсов живут по адресу
/etc/sysconfig/network-scripts/ .
В относительно старых Ubuntu
/network/interfaces ,
а в новых всё делается через утилиту netplan, а сами конфиги можно найти здесь:
/etc/network/interfaces
В ряде систем (не везде) установлен NetworkManager, и тогда статические конфигурации могут быть найдены здесь:
/etc/NetworkManager/NetworkManager.conf
Проверить, установлен ли у вас NetworkManager можно следующим путём:
/usr/sbin/NetworkManager —version или nmcli —version
В завещании, меня просили упомянуть Васю кхм, systemd-networkd. Исправился, упомянул.
Также стоит отметить про встроенный «файерволл» — в старых системах использовался iptables, который задавал правила для компонента ядра Netfilter; сейчас рекомендуется использовать утилиту ufw, надстройку над iptables, как обладающую более человекопонятным интерфейсом.
FHS — стандарт иерархии файловой системы (Filesystem Hierarchy Standard)
Я когда-то любил простоту Windows. A:\ для флоппика (да, я достаточно старый), C:\ для системы, и зачастую, единственный диск вообще (если нет, то D:\ для дистрибутивов игр, фото и видео), и, наконец, E:\ для CD-ROM. Всё просто!
А теперь я покажу минимальный минимум, который вам встретится в большинстве дистрбов, лол:
/
/boot — файлы загрузчика
/dev — файлы устройств
/root — домашняя папка для пользователя root (опционально). Может быть слинковано с /home/root
/etc — хранит конфигурацию машины
/home — корневая директория для “хомяков” пользователей
/lib — хранит важные общие библиотеки и модули ядра
/media — точка монтирования к извлекаемым накопителям
/mnt — точка монтирования для временно подключенных файловых систем (флешки, внешние диски, сетевые диски)
/usr — сюда попадает установленное пользователями ПО
/opt — сюда тоже попадает установленное пользователями ПО
/var — здесь хранятся вещи, которые не статичны. К примеру, логи /var/logs
/sbin — системные исполняемые файлы
/bin — общие (расшаренные) исполняемые файлы
/srv — для хранения данных сервисов (веб-серверов, к примеру)
/tmp — временный раздел, данные в нём могут быть удалены при перезагрузке сервера, выходе пользователя, остановки сервиса и так далее.
Большинство файлов могут быть поделены на четыре группы по двум признакам:
“Расшариваемые”-”Не расшариваемые” (“shareable”-”unshareable”).
“Расшариваемые’ файлы хранятся на одной машине и могут быть доступны с других. «Нерасшариваемые» — файлы, которые не предназначены для организации общего доступа.
“Статичные” — “Изменяемые (“static”-”variable”).
«Статичные» файлы включают в себя библиотеки, бинарники, документацию и тп, которые меняются только при участии системного администратора.
«Изменяемые» файлы это файлы, которые не статичны и могут быть изменены во время работы системы, пользователей или программ. К примеру, при организации резервного копирования, такие файлы нуждаются в более частом расписании бэкапов.
Понимание этого концепта облегчит понимание стандарта иерархии и организации файловой системы.
Кроме того, есть смысл сказать об inodes — файловых дескрипторов. Они содержат метаинформацию о создаваемых файлах, и, в некоторых инсталляциях, могут тупо закончиться, если вы пишете на диск много маленьких файлов (например, лог чата). При этом места свободного может быть много, но создать новые файлы вы не сможете. Проверить текущее состояние можно командой df -hTi .
Что хочется написать дополнительно — что если в Windows ФС по умолчанию — NTFS, то в Linux их гораздо больше, среди популярных стоит отметить — ext3, ext4, xfs, btrfs. Каждая используется в тех или иных дистрах, имеет свои преимущества и недостатки.
Window server/Display system
Хорошо, теперь, когда вы начитаны о командной строке, вы думаете — ага, именно поэтому Linux не популярен среди обычных пользователей! К счастью, не по этой причине. Linux имеет два популярных сервера дисплеев на текущий момент: X11 server (легаси, но все еще самая популярная опция) и Wayland. Последний находится в экспериментальном статусе уже около десяти лет. Поверх дисплей сервера устанавливаются десктопные окружения (Desktop Environments, DE), которых ну очень много. Самые популярные: Gnome, KDE, Unity, и другие. Если установлен дисплей сервер и десктопное окружение, то система выглядит почти как обычный ПК. С окошками, рабочим столом, панелью и прочим.
Полезные ссылки
-
— Вики дистрибутива Арч — Вики дистрибутива Генту — Unix и Linux руководство системного администратора от Эви Немет — Командная строка Linux. Полное руководство. Уильям Шоттс — “дерево” дистрибутивов (чтобы оценить, насколько далеко зашла страсть к созданию новых дистрибутивов)
На эти книги (курсы) я ссылок не дам, но ищущий да найдет:
RH124: Red Hat System Administration I
RH134: Red Hat System Administration II
RH254: Red Hat System Administration III
RH342: Troubleshooting and Diagnostic
RH442: Performance Tuning
Уроки Linux
Linux — это семейство Unix-подобных операционных систем (сокр. «ОС»), использующих ядро Linux, которое разработал финно-американский программист Линус Торвальдс. ОС, использующие ядро Linux, называются дистрибутивами Linux, и они являются такими же операционными системами как Microsoft Windows и Apple macOS, но с одной очень важной особенностью, а именно: их исходные коды являются открытыми, так как они распространяются под лицензией GNU GPL, которая подразумевает создание свободного и открытого программного обеспечения (open source software).
Linux существует вокруг нас с середины 1990-х годов. Вы можете встретить его повсюду: в телефонах, ноутбуках, наручных часах, суперкомпьютерах, автомобилях и даже в холодильниках. Он обрел известность как среди разработчиков, так и среди обычных пользователей компьютеров.
Операционные системы на базе ядра Linux пользуются популярностью в разработчиков, так как поддерживают почти все наиболее часто используемые языки программирования: C/C++, Java, Python, Ruby и др. Кроме того, они облегчают работу с широким спектром полезных приложений для разработки ПО.
Целью данных уроков — Уроки по Linux для начинающих — является помочь новичкам разобраться в теме Linux.
Примечание: Уроки добавляются и обновляются. В процессе построения логической структуры и последовательности тем для изучения Linux, последовательность уроков может меняться, и вы можете видеть, что список уроков на этой странице отличается от последовательности в конце каждой статьи. Это не ошибка, а лишь временное явление.
Что такое операционная система Linux: плюсы и минусы свободной платформы
Какие особенности, плюсы и минусы есть у свободной и открытой платформы Linux, на которой построены десятки операционных систем (ОС)? Почему она становится популярной? Эти вопросы контент-директорка Теплицы Наталья Баранова задала разработчику свободного программного обеспечения Сергею Матвееву.
- 01 ноября 2017
- 5 мин
Содержание:
Материал обновлен в декабре 2021 года. Какие особенности, плюсы и минусы есть у свободной и открытой платформы Linux, на которой построены десятки операционных систем (ОС)? Почему она становится популярной? Эти вопросы контент-директорка Теплицы Наталья Баранова задала разработчику свободного программного обеспечения Сергею Матвееву. В материале — его обзор, основанный в том числе на отзывах.
По мнению эксперта, ядро Linux важно иметь только системным программистам и разработчикам встраиваемых систем. Поэтому стоит говорить об операционной системе под названием «GNU/Linuх» (GNU — свободная UNIX-подобная ОС), именно она интересна широкому кругу пользователей.
Особенности Linux
1. GNU/Linux стала первой активно используемой свободной UNIX-подобной операционной системы.
Уже в 90-х годах ниша серверного программного обеспечения (ПО) массово включала в себя эту ОС. Сейчас GNU/Linux системы используются на преобладающем количестве серверов Интернета и являются де-факто системой для суперкомпьютеров. Это продемонстрировало жизнеспособность и вес движения свободного программного обеспечения.
Сергей Матвеев,
разработчик свободного программного обеспечения
2. Большая часть программ этой ОС распространяется под copyleft лицензией (GNU General Public License, GPL). Она не разрешает создание несвободного (проприетарного) ПО. Но этот фактор, по словам эксперта, не мешает получать прибыль от свободном ПО.
3. Разработка компонентов ведется большим количеством людей и компаний со всего мира. По словам эксперта, это большой плюс.
Плюсы GNU/Linux
1. Это свободное ПО. Если сравнивать с проприетарными ОС, то главный плюс GNU/Linux, как и десятка других свободных ОС (например, Free/Net/OpenBSD, OpenIndiana), это то, что они являются свободным ПО.
Это означает что, пользователь может без ограничений запускать и использовать эти ОС для любых целей, изучать и модифицировать их работу. А также помогать окружающим, распространяя копии ОС и их модификации.
Пользователи имеют полный контроль над своим компьютером и выполняемыми задачами, а не делают только то, что разрешила та или иная корпорация для своей выгоды. Как правило, это означает отсутствие слежки со стороны корпораций/государств, отсутствие разнообразных ограничений нацеленных на выуживание денег из кармана пользователя, лучшая безопасность и приватность.
Сергей Матвеев,
разработчик свободного программного обеспечения
2. Широкая поддержка аппаратного обеспечения. Много драйверов для устройств, особенно на домашних системах (где дешевые не серверные компоненты). По мнению эксперта, есть вероятность что какое-либо оборудование не будет поддерживаться в системе типа BSD или OpenIndiana.
Многие дистрибутивы GNU/Linux могут работать на старых компьютерах гораздо лучше, чем системы типа Windows или macOS. Они зачастую могут вообще отказаться на них работать.
3. Активная поддержка пользователей. За десятилетия существования у GNU/Linux образовался круг пользователей и разработчиков, которые смогут оперативно помочь с задачами или проблемами, возникающими при работе у неопытных пользователей.
Плюсы для разработчиков
1. Вы можете переделать ОС под ваши задачи. Можно доработать как всю систему, так и отдельные ее компоненты, найти и исправлять недочеты или нанять разработчиков для этих задач, объясняет Сергей Матвеев. С несвободным программным обеспечением, у вас есть только надежда (или пухлый кошелек), что компания владелец вашего ПО соизволит выполнить ваше желание, еще и за вменяемый срок.
2. Вы можете делиться своими наработками и исправлениями. Помогая окружающим, всему обществу, делая полезный вклад в этом мире, считает эксперт.
Минусы
1. Иногда поддержка GNU/Linux может оказаться недешевой. Сергей Матвеев уверен, что нельзя забывать о стоимости поддержки и обучения.
Я встречал ситуации, где свободное ПО было дороже для компании (при этом факт потери контроля над компьютерами, рабство от чужой корпорации особо не мешало и не вредило). Но гораздо чаще все же видел, что СПО экономило в разы больше средств и обладало этическими преимуществами.
Сергей Матвеев,
разработчик свободного программного обеспечения
Эксперт предупреждает: стоимость системных администраторов, разбирающихся в GNU/Linux, может быть в разы выше. И этот фактор нивелирует сэкономленные средства от приобретенных копий какого-нибудь Microsoft Windows.
2. Не такая высокая производительность, как кажется.
Я много раз наблюдал, что сетевая и дисковая подсистемы FreeBSD могут быть гораздо более производительны, чем в GNU/Linux на аналогичном аппаратном обеспечении. Недаром такие компании-монстры как Netflix и WhatsApp используют FreeBSD на свои серверах.
Сергей Матвеев,
разработчик свободного программного обеспечения
3. Нет некоторых современных технологий. Речь идет о подсистемах ZFS (наиболее продвинутая файловая система, гарантирующая целостность данных), DTrace (удобный инструмент для отладки и мониторинга всего происходящего в ядре и программах), Containers/Zones (система виртуализации), Они появились под свободной лицензией в OpenSolaris системе (сейчас OpenIndiana), затем в ряде BSD систем, но до сих пор отсутствуют в качественном виде в GNU/Linux.
Использование микроядра (как это, например, происходит в проприетарной Apple macOS) позволяет потенциально существенно повысить надежность и безопасность всей системы и ядро Linux «уже» на момент написания могло бы быть микроядерным, но этого не произошло.
Когда стоит использовать GNU/Linux?
1. Если GNU/Linux система уже установлена и используется в компании, а выгоды от смены этой ОС на другую, например, FreeBSD не перевесят.
2. Если ПО, с которым вам нужно работать использует специфичные именно для GNU/Linux возможности (например, OpenStack несовместимая с чем-либо иным) — лучше использовать, однозначно, GNU/Linux. Так как переписывать ПО очень дорого.
3. Когда вам нужно выполнить простые задачи. Например, быстро загрузиться, запустить LibreOffice, отредактировать документ, скопировать на флешкe, что-то посмотреть в веб-браузере.
4. Для тех, кто не может позволить себе macOS и Windows, бесплатная свободная ОС (включая множество GNU/Linux дистрибутивов) может стать заменой.
5. Если ваша организация находится под слежкой или она оперирует конфиденциальными данными, то стоит начать использовать преобладающее большинство свободных ОС (в том числе GNU/Linux). Дело в том, что средства слежки или ослабления криптографических средств в них, как правило, не встраивают.
Подробнее о том, как «переехать» в Linux из Windows — в материале консультанта и тренера по цифровой и комплексной безопасности Сергея Смирнова.