Представьте: вы пришли на первую работу разработчиком. Садитесь за компьютер, открываете рабочий чат, а там сообщение:

image

«Задеплой проект на прод. Там Ubuntu 22.04. Логи лежат в папке /var/log/app, а конфиг — в папке /etc/nginx. Если что — подключись по SSH просто.»

Вы киваете, делаете умное лицо и открываете Google.

Если такая ситуация кажется знакомой — этот курс для вас. Если пока не кажется — тоже для вас, потому что рано или поздно разработчик сталкивается с серверами, логами, SSH, Docker и командами в терминале.

К концу курса вы сможете спокойно разобрать это сообщение по частям: где указана система, где лежат логи, где находится конфиг и каким способом подключиться к серверу. Начнём с базового вопроса: что такое Linux?

Обычно люди говорят «Linux» и имеют в виду операционную систему — примерно как Windows или macOS. Но технически Linux — это не вся операционная система целиком, а её центральная часть — ядро.

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

image

Ядро Linux создал финский студент Линус Торвальдс в 1991 году. Ему было 22 года, и он хотел бесплатную операционную систему для своего компьютера. Торвальдс написал первую версию ядра и выложил её в интернет с сообщением:

«Я делаю бесплатную операционную систему (просто хобби, ничего серьёзного и профессионального). Она не будет такой большой, как GNU.»

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

Что такое дистрибутив и зачем он нужен

В разговоре слово «Linux» часто используют шире, чем в строгом техническом смысле. Человек может сказать: «я установил Linux на ноутбук» или «сервер работает на Linux». Обычно он имеет в виду готовую систему, собранную вокруг ядра Linux.

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

Когда ядро Linux собирают вместе с таким набором программ, получается дистрибутив Linux.

Например, есть готовые Linux-системы с разными названиями: Ubuntu, Fedora, Debian, Arch Linux. Все они относятся к дистрибутивам: используют ядро Linux, но отличаются набором программ, способом установки пакетов, частотой обновлений и подходом к настройке. Подробно разберём эти различия в следующем уроке.

Почему Linux важен именно разработчику

Linux важен разработчику из-за роли в современной инфраструктуре. Серверы, на которых работают сайты и API, почти всегда запускают Linux. Docker-контейнеры используют механизмы ядра Linux для изоляции, даже когда запускаются на Windows или macOS. Системы сборки — GitHub Actions, GitLab CI, Jenkins — выполняют задачи на Linux-агентах. Облачные виртуальные машины в AWS, Google Cloud и Azure по умолчанию тоже Linux.

Можно какое-то время разрабатывать, почти не сталкиваясь с Linux напрямую. Но однажды приложение нужно развернуть на сервере, отладить пайплайн сборки или разобраться, почему код работает локально и падает в контейнере. В этот момент Linux перестаёт быть абстрактной темой из курса и становится рабочей средой.

Почему открытый код меняет правила игры

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

С Windows такой подход недоступен обычной команде разработчиков: исходный код ядра закрыт, поэтому нельзя взять его, переделать под свои задачи и выпустить собственную Windows-систему. С Linux ситуация другая. Разработчики могут изучать код ядра, собирать его с нужными настройками, добавлять драйверы и системные компоненты, а затем выпускать готовую систему для конкретной задачи.

Такой подход называется open-source, или открытый исходный код.

Именно открытость объясняет, почему вокруг Linux появилось так много дистрибутивов. Одна команда собирает систему для корпоративных серверов, другая — удобную систему для новичков, третья — лёгкий вариант для старого компьютера. Они могут использовать одно ядро Linux как основу, а дальше выбирать свой набор программ, настройки, инструменты установки и правила обновления.

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

Именно к дистрибутивам мы сейчас и перейдём: разберёмся, почему их так много, чем они отличаются друг от друга и какой вариант удобнее выбрать для первого знакомства с Linux.

Linux — это ядро операционной системы, созданное Линусом Торвальдсом в 1991 году. Ядро управляет оборудованием и связывает программы с железом, но само по себе не даёт готовой системы для работы. Вокруг ядра собирают дистрибутивы — готовые операционные системы: Ubuntu, Fedora, Debian и многие другие.

Открытость исходного кода Linux (open-source) позволила сотням команд создать собственные системы на его основе и обеспечила глобальное развитие проекта. Разработчику Linux нужен для работы с серверами, Docker, CI/CD-системами и облачной инфраструктурой.

В следующем уроке разберёмся с дистрибутивами: чем Ubuntu отличается от Fedora, что такое семейства дистрибутивов и какой дистрибутив выбрать для начала.

Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.