Назад | Перейти на главную страницу

Как изучить внутреннее устройство системы Linux

Недавно я попытался подать заявку на некоторые должности DevOps Engineering, но меня испугало конкретное требование, которое присутствовало почти в каждой должностной инструкции:

Опыт работы с внутренним устройством и администрированием Linux.

Я работаю с серверами Linux и приложениями, развернутыми в Linux / Unix в течение некоторого времени, и, честно говоря, я понятия не имею, что они имели в виду под «опытом работы с внутренними компонентами Linux».

Мои вопросы:

Спасибо

Это очень расплывчатое требование. Поскольку вы имеете в виду DevOps, это, вероятно, означает нечто подобное, включая, помимо прочего,

  • Знание о настройках времени выполнения ядра (sysctl, / proc, / sys)
  • Знаком с обычными процессами, выполняемыми на вашем типичном Linux-компьютере - systemd, cron, некоторыми демонами syslog, ntp ...
  • Знаком с типичными файловыми системами Linux
  • Знания о том, как изменять размер файловых систем, наблюдать за загрузкой машины, устанавливать и настраивать необходимые общие программы ...
  • Возможность отлаживать основные проблемы, читая журналы, используя такие программы, как top, vmstat, iostat, sar, strace и т. Д.

Это всего лишь предположение с моей стороны.

«Внутренние элементы» - это распространенный маркетинговый термин, часто используемый в описаниях должностей, поскольку они часто написаны специалистами по персоналу или менеджерами по найму, которые не являются техническими специалистами.

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

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

Я бы порекомендовал учиться на RHCE или Linux +

почему я должен знать внутреннее устройство Linux?

Понимание того, как все это работает «под капотом», необходимо для того, чтобы понять состояние сложных систем. Одно дело - просто вводить команды из модуля Runbook, другое - понимать, что эти команды делают, и иметь возможность разумно выбирать из ряда вариантов, все из которых могут работать на определенном уровне, наилучшем для любой конкретной ситуации.

где я могу найти этому практическое применение?

Практическое использование - каждый день! Я имею в виду, что вот очень простой пример, вы хотите убить процесс. Вы могли просто слепо напечатать kill конечно. Но вы, вероятно, должны понимать, что эта команда на самом деле делает, как ее можно использовать не только для уничтожения процесса, что процесс может делать в ответ на различные варианты использования kill, в какой момент выполнения он будет действовать. этот запрос, что делать, если он, казалось бы, игнорирует запрос, что это означает, если он становится зомби после того, как его убивают, я мог бы продолжать и продолжать ...

как изучить внутренности Linux?

Вам повезло, что многие из этих вещей являются общими для большинства Unix-подобных операционных систем, и что основы меняются не очень быстро, поэтому изучение этого - вложение, которое окупится на протяжении всей вашей карьеры. Любая из книг W Ричард Стивенс это вневременное знание, именно с этого я начал и до сих пор часто достаю эти книги. Дизайн и реализация операционной системы FreeBSD тоже очень актуально. Но ничто не может заменить это на самом деле.