С чего начинается работа за компьютером
Вы садитесь за компьютер, нажимаете кнопку включения, и через некоторое время на экране появляется рабочий стол. Вы двигаете мышью, открываете браузер, печатаете текст, слушаете музыку. Всё это кажется естественным, но задумаемся на секунду: а кто, собственно, показывает вам рабочий стол? Кто решает, что вот эта картинка — значок браузера, и что щелчок по ней должен запустить программу? Кто передаёт буквы с клавиатуры в текстовый редактор?
Всеми этими вопросами занимается операционная система. Так называют набор программ, который управляет ресурсами компьютера и обеспечивает работу приложений. Без операционной системы компьютер был бы просто набором плат и проводов, с которым обычному человеку делать нечего. Мы привыкли, что на компьютере стоит Windows или macOS, и редко вспоминаем, что это не единственные варианты.
Представьте дом, в котором вы живёте. Вы не задумываетесь каждый раз, откуда в кране вода и почему в розетке есть электричество. Но кто-то спроектировал водопровод, проложил провода, наладил отопление. Операционная система для компьютера — это примерно такой же фундамент: она делает так, чтобы программы могли спокойно работать, не договариваясь друг с другом о каждой мелочи. Браузеру не нужно знать, как устроена именно ваша видеокарта. Ему достаточно попросить операционную систему вывести картинку на экран.
Ядро — сердце операционной системы
Когда говорят «Linux», обычно имеют в виду целую операционную систему. Но технически всё устроено интереснее. Внутри каждой операционной системы есть главная часть, которая называется ядро. Ядро — это программа, которая работает ближе всего к железу компьютера. Именно оно решает, сколько памяти выделить браузеру, как долго процессор будет выполнять одну задачу и когда переключится на другую, как записать файл на диск и как прочитать его обратно.
Почему это важно понимать с самого начала? Потому что слово «Linux» на самом деле означает именно ядро. Его создал в начале девяностых годов финский программист Линус Торвальдс, и название получилось из соединения его имени и слова Unix — так называлась более ранняя операционная система, идеи которой он развивал. Но пользоваться одним только ядром невозможно. Ядро — как двигатель автомобиля: без колёс, кузова и руля далеко не уедешь, хотя без двигателя всё остальное тоже бесполезно.
Поэтому в обычной речи сложилось второе значение слова. Linux — это не только ядро, но и название целого семейства операционных систем, построенных на этом ядре. Когда кто-то говорит: «У меня на компьютере стоит Linux», он имеет в виду не голое ядро, а готовую систему, в которой уже есть и ядро, и всё необходимое для работы. На первых уроках мы будем использовать слово Linux именно в этом, широком смысле. А когда понадобится отдельно назвать ядро, я буду это уточнять.
Кто собирает систему вокруг ядра
Если ядро — это двигатель, то кому-то нужно приделать к нему кузов, поставить сиденья и руль. В мире Linux этим занимаются не отдельные заводы, а большие сообщества разработчиков и целые компании. Они берут ядро Linux, добавляют к нему сотни и тысячи других программ — от инструментов для работы с файлами до текстовых редакторов и браузеров — и собирают всё это в единый, готовый к установке комплект.
Такой комплект называется дистрибутивом Linux. Это слово стоит запомнить, потому что в следующем уроке мы поговорим о дистрибутивах подробно. Сейчас достаточно понять общую мысль: Linux сам по себе — не одна-единственная программа и не одна-единственная система. Это, скорее, целое семейство систем, у которых общее ядро, но разная комплектация. Это похоже на то, как разные автопроизводители могут ставить один и тот же двигатель на совершенно разные машины — от небольшого городского автомобиля до грузовика.
А где же окна и кнопки?
Мы привыкли, что у операционной системы обязательно есть графический интерфейс — окна, кнопки, меню, рабочий стол. Но на самом деле графический интерфейс — это не сама операционная система, а лишь одна из её частей, причём не обязательная.
Вспомните, как вы печатаете сообщение в мессенджере. Вы нажимаете кнопки на клавиатуре, и на экране появляются буквы. Но ведь буквы мог бы принимать и понимать и текстовый интерфейс. Текстовый интерфейс — это способ работы с компьютером, при котором вы вводите команды словами, а система отвечает тоже словами. Основная работа здесь строится вокруг ввода команд и чтения ответа.
Зачем это нужно, если графика удобнее? Дело в том, что многие компьютеры работают вообще без монитора. Например, сервер — это компьютер, который предоставляет услуги другим компьютерам по сети: раздаёт веб-страницы, хранит почту, обрабатывает запросы. Такой машине графический интерфейс часто не нужен вовсе. Он только расходует ресурсы и добавляет лишние детали, которые могут сломаться. Гораздо проще управлять сервером, подключаясь к нему по сети и вводя текстовые команды.
Но не подумайте, что текстовый режим — удел одних лишь серверов. Даже на обычном компьютере с Linux можно открыть программу-терминал и работать в текстовом режиме. Многие задачи там решаются быстрее и точнее, чем щёлканьем мышью. В нашем курсе мы как раз освоим такой способ работы — это один из самых ценных навыков, который вы получите.
Почему исходный код открыт
Есть у Linux ещё одна черта, о которой говорят часто, но не всегда понятно объясняют. Это открытый исходный код.
Любая программа пишется на языке программирования. Тот текст, который создают программисты, называется исходным кодом. Потом специальная программа превращает этот текст в готовое приложение, которое можно запускать на компьютере. Если у вас есть только готовое приложение, заглянуть внутрь и понять, как оно устроено, практически невозможно — примерно как по вкусу пирога догадаться о точном рецепте.
Так вот, ядро Linux и большинство программ в дистрибутивах распространяются вместе со своим исходным кодом. Это значит, что любой желающий может его прочитать, изучить и убедиться, как именно работает программа. Более того, открытый код можно брать и создавать на его основе свои варианты — поэтому и существует так много дистрибутивов. Кто-то улучшает одну часть, кто-то приспосабливает систему для своих задач, а условия распространения изменённых версий определяются лицензиями этих программ.
Для вас как для ученика открытый код означает две важные вещи. Во-первых, вы можете разобраться в устройстве системы до самой глубины — для этого не нужно подписывать договор с закрытой корпорацией. Во-вторых, сообщество вокруг Linux огромно, и почти на любой вопрос можно найти ответ, написанный другим человеком, который уже прошёл этот путь.
Зачем учиться Linux
Если вы умеете пользоваться обычным компьютером, зачем разбираться ещё и в какой-то другой системе?
Причин несколько, и все они практические. Огромная часть интернета работает именно на Linux. Сайты, которыми вы пользуетесь каждый день, чаще всего раздаются с серверов под управлением Linux. Многие современные профессии — от тестировщика до разработчика и администратора — так или иначе предполагают умение работать с этой системой. Даже если ваша цель не связана с программированием, понимание Linux открывает двери в мир, который обычно скрыт от глаз пользователя.
Но есть и более личная причина. Когда вы учитесь работать с Linux, вы начинаете лучше понимать, как устроен компьютер вообще. Это похоже на то, как водитель, который хоть раз заглянул под капот, увереннее чувствует себя за рулём. Вы перестаёте бояться командной строки, начинаете видеть логику там, где раньше были просто загадочные сообщения об ошибках. И, честно говоря, в этом есть особое удовольствие — когда система делает ровно то, что вы ей сказали, и вы понимаете, почему.
А дальше?
Конечно, у вас наверняка уже возник вопрос: «Хорошо, но какую именно систему мне поставить? Их же много, вы сами сказали». На следующем уроке мы поговорим о дистрибутивах — о том, чем они отличаются друг от друга и как выбрать подходящий для обучения.
В этом уроке мы разобрались, что приложения работают с ресурсами компьютера через операционную систему, а её центральная часть — ядро — управляет памятью, процессором и устройствами. Linux называют и само ядро, и семейство систем на его основе. Чтобы получить готовую систему, к ядру добавляют программы и средства их обслуживания — такой комплект называется дистрибутивом.
Работать с системой можно через окна и кнопки или через текстовые команды. В курсе мы будем осваивать второй способ: он пригодится и на собственном компьютере, и при работе с серверами. Открытый исходный код позволяет изучать устройство Linux и изменять программы на условиях их лицензий. Следующий шаг — понять, какой дистрибутив мы возьмём для занятий.