Как работает Linux: от нажатия кнопки включения до рабочего стола

то это будет обычный текстовый файл, содержащий команду «echo», которая при выполнении выдает все написанное правее ее на экран. Можно сделать файл «file_1» выполняемым с помощью команды «chmod 755 file_1». Но его можно выполнить, вызвав явно команду «sh» («shell»):

Что такое shell и зачем он нужен

Командная оболочка в любых unix-подобных системах, к которым относится и GNU/Linux, является обычной программой, запускаемой как в текстовой консоли (которая используется всё реже), так и в графической среде – в окне эмулятора терминала, доступного в любой Linux-системе.

Ее задача проста и очевидна: принять строку (или строки) ввода, произвести их синтаксический анализ и на основе результатов этого анализа отреагировать соответствующим образом – выполнить команду, запустить программу, вывести диагностическое сообщение и т.п.

Фактически она стала неофициальным стандартом, и усовершенствование ее функциональных возможностей продолжается непрерывно. Существуют и другие командные оболочки – tcsh (версия C-shell), ksh (Korn Shell), zsh и т.д. – у каждой есть свои достоинства и недостатки, а также свои группы поклонников. Тем не менее, bash более привычна широким массам пользователей с различными уровнями подготовки, потому я и остановил свой выбор на ней. Стоит также отметить, что какими бы возможностями ни обладали различные оболочки, все они совместимы со своим идеологическим прародителем – Bourn Shell (sh). Иными словами, скрипт, написанный для sh, будет корректно работать в любой современной оболочке (обратно, вообще говоря, неверно).

Загрузчик

Все начинается с загрузчика, которому во время старта машины BIOS передает управление. В старые времена, когда Linux был не так популярен, в качестве загрузчика использовался LILO (Linux Loader) — простой, очень примитивный и не позволяющий менять конфигурацию загрузки на лету. Фактически конфигурационный файл был вшит в сам загрузчик, и его приходилось переустанавливать после каждой смены настроек: обновил ядро, забыл переустановить, и твой ноутбук больше не грузится.

Читайте также:  Как передавать файлы между Android и Linux

Сегодня загрузкой Linux практически в любом дистрибутиве занимается Grub, изначально разработанный для операционной системы GNU/Hard. Grub гораздо сложнее LILO и фактически сам является полноценной ОС. Он не просто читает конфиг загрузки (обычно это /boot/grub/) прямо с диска, но и позволяет исправить этот конфиг на месте. Grub имеет встроенную командную строку, работает с десятком различных файловых систем и позволяет формировать сложные цепочки загрузки.

Как только пользователь выбирает нужный пункт меню (либо по истечении тайм-аута), Grub находит связанный с этим пунктом меню образ ядра Linux на диске (обычно это файл /boot/vmlinuz), а также закрепленный за ним образ initramfs (о нем чуть позже), загружает их в память и передает управление ядру.

Загрузчик

Чтобы увидеть меню Grub в Ubuntu, необходимо удерживать Shift

Почему vmlinuz?

Название файла с образом ядра имеет исторические корни. Изначально образ ядра классического UNIX назывался просто unix, но, когда появилась версия ядра для процессоров с защитой памяти, чтобы избежать путаницы, название сменили на vmunix. Буква z вместо x на конце, в свою очередь, означает, что образ сжат с помощью утилиты gzip (алгоритм Deflate, тот же, что в классическом ZIP).

Выбор оболочки по умолчанию

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

Посмотрите все установленные оболочки:

$ chsh -l

И установить одну по умолчанию для вашего пользователя (убедитесь, что вы используете полный путь, какой выдала команда chsh -l):

$ chsh -s полный-путь-до-оболочки

Теперь, если вы выйдите из системы и войдёте снова, вас встретит установленная оболочка.

Читайте также:  Генерация MD5 контрольной суммы в Golang

Переключение между оболочками

Пользователь может в любой момент запустить другую оболочку. Например, если он за дефолтом работает под управлениями bash , а ему удобнее выполнить какие-то действия под оболочкой csh , он запускает эту оболочку

Mia:~>csh

Для возвращения под управление bash нужно набрать команду exit.

    wish (командная оболочка UNIX) — У этого термина существуют и другие значения, см. Wish. wish (Windowing Shell) это простая сценарная или интерактивная командная оболочка UNIX для X Window System и Mac OS X. Она предоставляет пользователям возможность контролировать компоненты… … Википедия

    Командная оболочка — Оболочка операционной системы (от англ. shell оболочка) интерпретатор команд операционной системы (ОС), обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. В общем случае, различают оболочки с двумя типами интерфейса для … Википедия

    Оболочка UNIX

    Unix shell — Командная оболочка UNIX (англ. Unix shell, часто просто «шелл» или «sh») командный интерпретатор, используемый в операционных системах семейства POSIX совместимые оболочки, восходящие к Bourne shell, появившемуся в Unix Version 7. Содержание 1… … Википедия

    Unix Shell — Командная оболочка UNIX (англ. Unix shell, часто просто «шелл» или «sh») командный интерпретатор, используемый в операционных системах семейства POSIX совместимые оболочки, восходящие к Bourne shell, появившемуся в Unix Version 7. Содержание 1… … Википедия

    Командная строка — Сюда перенаправляется запрос Интерпретатор командной строки. На тему «Интерпретатор командной строки» нужна отдельная статья. Внешний вид оболочки (англ. Co … Википедия

    UNIX System V — Множество потомков System V … Википедия

    Unix System V — Множество потомков System V AT T UNIX System V одна из версий операционной системы 1989 г. Было выпущено 4 основные версии Releases 1, 2, 3 и 4. Версия System V Release 4 (SVR4) была наиболее удачной и популярной и послужила источником для… … Википедия

    UNIX — Генеалогическое древо UNIX систем UNIX (читается юникс) семейство переносимых, многозадачных и многопользовательских … Википедия

    Unix — Генеалогическое древо UNIX систем UNIX (читается юникс) группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано … Википедия

Читайте также:  Дистрибутивы Linux для опытных пользователей

Книги

  • Сценарии командной оболочки. Linux, OS X и Unix. Руководство , Тейлор Дейв. Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого… Купить за 1217 грн (только Украина)
  • Сценарии командной оболочки. Linux, OS X и Unix , Тейлор Дейв, Перри Брендон. Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого…
  • Tutorial

Переходить или нет?

Здесь у каждого пользователя будет свой набор аргументов “за” или “против”, но вот полностью отказаться и не попробовать Linux даже в Live-режиме вряд ли кто-то сможет.

Простая и легковесная ОС с удобными инструментами, магазином приложений и возможностью полной кастомизации давно обзавелась большой армией поклонников.

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

Для себя я решил, что все компьютеры знакомых и родственников (кроме игровых) буду со временем переводить на Linux.

Переходить или нет?

Если потенциальные трудности не пугают – Linux ждет вас!