Linux — одна из наиболее широко используемых операционных систем как в личных, так и в корпоративных средах. Независимо от того, хотите ли вы стать системным администратором, инженером DevOps, разработчиком программного обеспечения или ИТ-специалистом, важно иметь прочную базу знаний в области Linux.
Каждые выходные мы будем публиковать в этом разделе новую статью, начиная с базовых вопросов о Linux и постепенно переходя к более сложным темам. Эта инициатива — одна из первых в своём роде среди сайтов, посвящённых Linux, и мы стремимся предоставлять высококачественный, полезный и уникальный контент.
Давайте начнём с 15 основных вопросов и ответов на собеседовании по Linux, чтобы начать серию статей.
Вопрос 1: Что является ядром операционной системы Linux?
Ядром операционной системы Linux является ядро, которое представляет собой самый низкий уровень ОС и служит связующим звеном между аппаратным и программным обеспечением. Оно отвечает за управление системными ресурсами, такими как память, процессорное время, драйверы устройств и системные вызовы.
Ядро Linux является монолитным, то есть включает в себя основные системные функции, драйверы устройств и управление файловой системой в рамках одного большого блока кода, работающего в одном адресном пространстве.
Вопрос 2: Что создал Линус Торвальдс?
Линус Торвальдс создал ядро Linux в 1991 году. Это началось как хобби-проект, когда он был студентом Хельсинкского университета в Финляндии. Изначально вдохновившись MINIX (учебной системой, похожей на Unix), он создал бесплатную альтернативу с открытым исходным кодом.
Со временем ядро Linux превратилось в основу многих операционных систем, которые в совокупности называются дистрибутивами Linux (например, Ubuntu, Fedora, Debian).
Вопрос 3: написал ли Линус Торвальдс большую часть ядра Linux на C++?
Нет, это неверно. Линус Торвальдс написал большую часть ядра Linux на языке программирования C, а не C++. На самом деле Линус публично критиковал использование C++ при разработке ядра из-за опасений по поводу производительности, сложности и надёжности.
Язык C предпочтительнее при разработке ядра, поскольку он обеспечивает низкоуровневый доступ к памяти, минимальные накладные расходы во время выполнения и максимальный контроль над аппаратными ресурсами.
Вопрос 4: Был ли Linux изначально разработан для архитектуры Intel x86 и переносился ли он на другие платформы?
Да, Linux изначально разрабатывался для архитектуры Intel x86 (32-битные системы), но за прошедшие годы он был успешно перенесён на широкий спектр аппаратных архитектур.
К ним относятся ARM, PowerPC, SPARC, MIPS и даже мейнфреймы. Сегодня Linux работает на всём: от смартфонов и планшетов до серверов, суперкомпьютеров, маршрутизаторов и встраиваемых систем.
Вопрос 5: Законно ли редактировать ядро Linux?
Да, редактировать ядро Linux совершенно законно, так как оно распространяется по Стандартной общественной лицензии GNU (GPL) версии 2, которая позволяет пользователям свободно просматривать, изменять и распространять исходный код при условии, что любые изменения также распространяются по той же лицензии.
Эта свобода — одна из причин, по которой Linux стал таким популярным и широко используется в различных проектах.
Вопрос 6: В чем основное различие между UNIX и Linux?
UNIX — это проприетарная операционная система, изначально разработанная в Bell Labs компании AT&T в 1970-х годах. Linux, с другой стороны, — это UNIX-подобная операционная система, которая является бесплатной и имеет открытый исходный код.
В то время как системы UNIX часто используются в коммерческих средах и имеют различные варианты (например, AIX, Solaris, HP-UX), Linux — это система, разработанная сообществом, которая имеет схожие принципы и структуру с UNIX, но не основана на коде UNIX.
Ключевые отличия включают в себя:
Особенность | UNIX | Linux |
---|---|---|
Лицензирование | Проприетарный | Открытый исходный код (GNU General Public License) |
Стоимость | Обычно требуется покупка лицензии | Бесплатно |
Аппаратное обеспечение | Часто используется на специализированном оборудовании | Поддерживает широкий спектр аппаратных устройств |
Вопрос 7: Свободна ли операционная система Linux от вирусов?
Ни одна операционная система не является полностью безвирусной, в том числе Linux. Однако Linux считается более безопасной, чем многие другие, благодаря своей структуре, основанной на разрешениях, разделению ролей пользователей и большому сообществу разработчиков, которые активно поддерживают систему и устраняют уязвимости.
Кроме того, Linux реже подвергается атакам вредоносных программ из-за меньшей доли на рынке настольных компьютеров по сравнению с Windows. Тем не менее, администраторам всё равно следует использовать лучшие методы обеспечения безопасности и такие инструменты, как брандмауэры, SELinux и антивирусное программное обеспечение.
Вопрос 8: Какой тип операционной системы — Linux?
Linux — это многопользовательская, многозадачная и многопоточная операционная система.
В частности, это:
- Unix-подобная ОПЕРАЦИОННАЯ СИСТЕМА
- ОПЕРАЦИОННАЯ СИСТЕМА с открытым исходным кодом
- Модульная и монолитная ОПЕРАЦИОННАЯ система на базе ядра
Linux используется как в качестве серверной ОС, так и в качестве ОС для настольных компьютеров и поддерживает такие функции, как планирование процессов, виртуальная память, общие библиотеки и динамическая загрузка.
Вопрос 9: Каков синтаксис команды Linux?
Общий синтаксис команды Linux таков:
command [options] [arguments]
Например:
ls -l /home/user
Здесь,
ls
это команда (перечислить содержимое каталога).-l
это опция (формат длинного списка)./home/user
является аргументом (каталог для перечисления).
Вопрос 10: Что такое дистрибутив Linux?
Дистрибутив Linux (или дистрибутив) — это полноценная операционная система, основанная на ядре Linux и включающая системное программное обеспечение, менеджеры пакетов и зачастую графический пользовательский интерфейс (GUI).
В качестве примеров можно привести Ubuntu, CentOS, Fedora, Arch Linux и Debian. Каждый дистрибутив служит разным целям и ориентирован на разных пользователей — от новичков до корпоративных пользователей.
Вопрос 11: Что такое уровни выполнения в Linux?
Уровни запуска — это предопределённые состояния компьютера в Unix-подобных системах, которые определяют, какие службы запущены.
Традиционные системы инициализации SysV использовали пронумерованные уровни выполнения, такие как:
0
– Стой1
– Однопользовательский режим3
– Многопользовательский режим (без графического интерфейса)5
– Многопользовательский режим с графическим интерфейсом6
– Перезагрузка
Большинство современных дистрибутивов Linux (таких как Fedora, CentOS 7+, Ubuntu 15.04+ и другие) заменили систему инициализации SysV на systemd, которая использует цели вместо уровней запуска для управления состояниями системы.
Вот как цели systemd соотносятся с традиционными уровнями выполнения:
Уровень выполнения | цель systemd | Описание |
---|---|---|
0 | отключение питания.цель | Выключите систему |
1 | спасение.цель | Однопользовательский режим |
3 | многопользовательский.целевой | Многопользовательский режим, только CLI |
5 | графический объект.target | Многопользовательский режим с графическим интерфейсом |
6 | перезагрузка.цель | Перезагрузите систему |
Вопрос 12: В чем разница между жесткими ссылками и программными ссылками?
- Жёсткая ссылка: указывает непосредственно на данные на диске (индексный дескриптор). Если исходный файл удалён, жёсткая ссылка продолжает работать.
- Программная ссылка (Символическая ссылка): действует как ярлык. Указывает на исходный файл по пути. Если исходный файл удаляется, символическая ссылка становится неработающей.
Вопрос 13: Что такое оболочка в Linux?
Оболочка — это интерфейс командной строки, который позволяет пользователям взаимодействовать с операционной системой. Она интерпретирует команды пользователя и передаёт их ядру для выполнения.
Популярные оболочки Linux включают:
- Bash (Bourne Again Shell)
- Zsh (Z Shell)
- Ksh (KornShell)
- Tcsh (TENEX C Shell)
Вопрос 14: Как вы проверяете использование памяти в Linux?
Вы можете проверить использование памяти с помощью следующих команд:
- free -h: отображает использованную, свободную и общую память.
- top: просмотр системных процессов и использования памяти в режиме реального времени.
- vmstat: сообщает об использовании памяти, процессора и ввода-вывода.
- htop: Интерактивное средство просмотра процессов (необходимо установить).
Вопрос 15: Как представлено разрешение файлов в Linux?
Права доступа к файлам в Linux представлены с помощью трех наборов атрибутов:
- Пользователь (владелец)
- Группа
- Прочее
Каждый набор включает в себя разрешения для:
- Читать (r)
- Запись (w)
- Выполнить (x)
Пример:
-rwxr-xr-- 1 user group 1234 Jan 1 12:00 file.txt
Это означает:
- Владелец прочитал, записал, выполнил
- Группа прочитала, выполнила
- Другие только читали
Вы можете изменить разрешения с помощью chmod
и сменить владельца с помощью chown.
Заключение
Понимание основ Linux имеет решающее значение для многих должностей в современных ИТ-средах. Эти вопросы охватывают базовые знания, с которыми вы, скорее всего, столкнётесь на собеседованиях для начинающих.
По мере продвижения вперёд рассмотрите возможность изучения более сложных тем, таких как управление процессами, написание сценариев, файловые системы и сети в Linux.