Thank you for reading this post, don't forget to subscribe!
Собеседования для разработчиков часто включают вопросы об основах Linux и других операционных систем на основе Unix. Те кто брали интервью для различных должностей, обычно документируют эти вопросы. Ответы могут отличаться в зависимости от человека, но концепция остается той же, и это можно понять только тогда, когда человек разбирается в основах Linux.
Linux довольно сильно отличается от Windows, но в некоторых областях она получила широкое распространение. Поскольку это операционная система с открытым исходным кодом, Linux в основном бесплатна и используется в качестве кроссплатформенной операционной системы, которую можно легко установить на ПК, ноутбуки, игровые приставки и многое другое. Это то, что открывает множество приложений для Linux, и, следовательно, спрос на талантливых и знающих профессионалов, разбирающихся об области, в которой они работают. Вы наверняка знаете много ответов на поставленные вопросы, если вы достаточно времени проработали с ОС.
Основные вопросы о Linux
Что такое Linux? | Операционная система с открытым исходным кодом. |
Кем разработана? | Линусом Торвальдсом и сообществом |
На каком языке написана? | С и assembler |
Пользовательский интерфейс по умолчанию? | Unix shell |
Какая лицензия? | GPLv2 |
Когда был первый релиз? | 17 сентября 1991 |
Техническое вопросы для собеседования о Linux:
1. Перечислите основные компоненты Linux?
Существует три основных компонента Linux:
- Ядро: это основная часть ОС Linux.
- Системные библиотеки: это специальные программы, функции или методы. Прикладные программы и системные утилиты получают доступ к функциям ядра.
- Системные утилиты: это программы, которые отвечают за выполнение специализированных задач на индивидуальном уровне.
2. Что такое Linux? Чем он отличается от UNIX?
Linux — бесплатная многопользовательская операционная система с открытым исходным кодом, построенная на ядре Linux. Линус Торвальдс выпустил первую версию операционной системы Linux 17 сентября 1991 года.
Несколько отличий между операционными системами Linux и Unix:
Linux | Unix |
Linux с открытым исходным кодом, любой может использовать его бесплатно. | На Unix распространяются авторские права крупных компаний, таких как IBM AIX, Sun Solaris и HP—UX. |
Linux это просто ядро. | Unix — полноценная операционная система. |
По умолчанию Linux поддерживает и использует файловые системы ext3 или ext4. | Unix поставляется с файловыми системами jfs, gpfs (AIX), jfs, gpfs (HP—UX), jfs, gpfs (Solaris). |
Linux Redhat Enterprise, Fedora Linux, Debian Linux, Suse Enterprise Linux, Ubuntu Linux — некоторые популярные ОС Linux. | HP-UX, IBM AIX, Sun Solaris, Mac OS X — некоторые операционные системы на основе Unix. |
Linux считается наиболее удобной для пользователя. | Apple OS X — это самая популярная операционная система Unix для настольных ПК. |
3. В чем разница между абсолютным и относительным путем к файлу?
Абсолютный путь — это точное местоположение каталога или файла из любого каталога (предпочтительно корневой каталог). С другой стороны, относительный путь указывает местоположение каталога или файла со ссылкой на текущее местоположение или текущий рабочий каталог (present working directory — pwd).
4. Что такое Samba? Как это используется?
Samba — это программный пакет с открытым исходным кодом. Он работает на ОС Linux и базовых платформах Unix/Linux. Это переопределение Common Internet File System (CIFS) и главного протокола — Server Message Block (SMB). Samba — это стандартный пакет совместимости Windows, который гарантирует, что программное обеспечение может взаимодействовать с программами Linux и клиентами Windows, как с «родными» приложениями.
5. Какая команда может показать вам свободную/использованную память? Существует ли свободная память в Linux?
Есть много команд, которые отображают свободную или использованную память в Linux. Самый простой способ отслеживать использование памяти в Linux — использовать команду «free». Linux и другие операционные системы на основе Unix обычно показывают меньше свободной памяти, чем может быть доступно. Вот почему Swap (special type of memory) доступен для использования, когда ОЗУ заполнена.
6. В чем разница между soft и hard параметрами сборки?
Параметры сборки NFS в основном определяют, как клиент должен обрабатывать отказ или сбой сервера. В случае soft сборки клиент может сообщить об ошибке, не дожидаясь ответа от сервера NFS. Но это также может привести к повреждению или потере данных. С другой стороны, в случае hard сборки файловая система NFS неоднократно связывается с сервером, пока не получит ответ. Как только запрос достигнет сервера, программа продолжит выполнение с того же места, где она остановилась во время сбоя сервера.
7. Что такое SSH? Как подключиться к удаленному серверу через SSH?
SSH означает Secure Shell и является протоколом для безопасного входа в удаленные системы. Это наиболее распространенный и простой способ доступа к удаленным серверам на базе Linux. Для этого вам необходимо знать имя домена и IP-адрес.
8. Что такое виртуальная память?
Когда физической памяти не хватает, компьютер или, скорее, операционная система использует как аппаратное, так и программное обеспечение. Она передает данные из оперативной памяти на дисковое пространство.
9. Что такое линия Шебанга?
Линия Шебанга (shebang или bang) — это последовательность из двух символов: решётки и восклицательного знака («#!«) в начале файла скрипта. Когда скрипт с шебангом выполняется, загрузчик программ рассматривает остаток строки после шебанга как имя файла программы-интерпретатора. Загрузчик запускает эту программу и передаёт ей в качестве параметра имя файла скрипта с шебангом.
10. Что делает команда env?
Команда env — это shell-команда, которая может использоваться для вывода списка существующих переменных среды или для запуска другой программы в пользовательской среде без изменения текущей.
11. Что значит chmod + x FILENAME?
Команда chmod — это сокращение от Change Mode. Эта команда чрезвычайно полезна для изменения прав доступа к файлам и папкам, расположенным в Linux/Unix. Разрешение на доступ к файлу/каталогу, которое обычно является записью, чтением или выполнением для любого пользователя или группы.
12. Что такое CLI в Linux?
CLI — это сокращение от Command Line Interface, и это «человек-компьютер» интерфейс. Обычно он очень отличается от Graphic User Interface (GUI), который также широко используется. В случае с Linux, GUI используется в качестве внешней оболочки для базового CLI.
13. В чем разница между Telnet и SSH?
SSH — это в сетевой протокол, который используется для удаленного доступа и управления любым устройством. Основное различие между SSH и Telnet состоит в том, что SSH использует шифрование, что означает, что все данные, передаваемые по сети, защищены от отслеживания. Telnet все же не так безопасен. Как и Telnet, пользователь, который хочет получить доступ к удаленному устройству, должен установить SSH-клиент.
14. Что делает команда set -o?
Set — это встроенная в shell команда, которая отображает все shell-переменные, включая переменные среды.
15. Расскажите разницу между разделом подкачки и файлом подкачки?
Операционная система Linux использует зарезервированный блок диска на жестком диске для подкачки. Это называется разделом подкачки, так как никакие другие файлы не могут быть расположены в разделе подкачки. В случае ОС Windows пространство подкачки или раздел называется файлом подкачки.
16. Что делает утилита comm и как её использовать?
Утилита сomm производит вывод в три колонки. В основном это утилита, которая используется для сравнения двух файлов по отдельным и общим строкам.
17. Что такое полная форма grep?
Grep — это сокращение от global regulation expression point. Утилита командной строки, grep, используется для поиска наборов данных в виде текста строк, которые соответствуют регулярному выражению.
18. Что означают записи A, NS, PTR, CNAME, MX?
NS-запись используется для предоставления домену возможности установки имен серверов. Всякий раз, когда пользователь делегирует домен в DNSimple, TLD автоматически размещают NS-записи для этого домена на серверах имен TLD.
Запись PTR в основном используется как спам-фильтр и для аутентификации входящих сообщений. Для записей PTR всегда должна существовать запись A.
CNAME расшифровывается как «Canonical Name», эта запись определяет псевдоним.
MX — это сокращение от Mail Exchanger, запись MX — это особый тип записи ресурса в DNS (Domain Name System). Она указывает почтовый сервер, который полностью отвечает за прием сообщений по электронной почте от имени домена получателя. Значение предпочтения используется для определения приоритетов доставки почты в случае нескольких серверов.
19. Что дает Sar? Где хранятся логи Sar-logs?
Sar — это сокращение от System Activity Report. Эта команда используется для сбора данных, создания отчётов и сохранения информации об использовании CPU, блока памяти, ввода и вывода в Linux.
20. Что такое zombie-процесс?
Zombie процесс, также известен как «умирающий» процесс. Это процесс в состоянии завершения, который завершил выполнение через системный вызов выхода, но все еще имеет запись в таблице процессов.
21. Что такое DNS Split-Horizon?
Это средство реализации DNS для предоставления пользователю информации домене. Он может обеспечить надежный механизм управления конфиденциальностью и общей безопасностью.
22. Чему равен размер раздела подкачки в системе Linux?
Рекомендуемый размер подкачки составляет 20% RAM для современных систем. Если используется режим гибернации, подкачка должна занимать как минимум столько же места, сколько и RAM.
23. Что такое inode?
Inode — это структура данных в файловой системе Linux. Она хранит всю доступную информацию о файле, за исключением имени и фактических данных, хранящихся в файле. Это позволяет системе эффективно использовать данные.
24. В чем разница между внешней и локальной переменной?
Shell-переменные являются локальными для региона, в котором они определены, и доступны только в текущей оболочке. С другой стороны, пользователь определяет внешние переменные в интерактивном режиме или в файле запуска. Локальную переменную можно сделать доступной в качестве внешнейфф с помощью команды «export VARNAME».
25. Что такое переадресация SSH-порта?
Переадресация порта SSH создает безопасное соединение между удаленным компьютером, через который можно ретранслировать сервисы, и локальным компьютером, который выдает команды. Это также называется SSH-туннелированием и используется для передачи информации, которая не требует зашифрованного протокола.
26. Что делает immutable бит с файлом?
Делая файл неизменяемым, связывая с ним атрибут immutable бита, запрещает даже пользователю root удалять его.
27. Что делает ps?
Команда ps или «process status» используется для предоставления информации о статусе текущих процессов в системе. Это включает в себя PID (process identification number), который уникален для каждого процесса или задачи.
28. Опишите команду mknod и расскажите когда вы её используете?
Команда mknod используется для создания файлов устройств, которые могут вести себя странно по сравнению с обычными файлами. Файлы устройств хранятся в каталоге /dev, и в отличие от обычных файлов, эти файлы устройств — те, о которых ядро знает, и которые читает или записывает в них.
29. Что такое «hard links»?
«Hard link» — это дополнительное имя для существующего файла в операционной системе Linux.
30. Для чего используется команда «nohup»?
Команда nohup — это команда POSIX, используемая для игнорирования сигнала HUP. Сигнал HUP — это способ, которым терминал предупреждает зависимые процессы о выходе из системы.
31. Что такое swap?
Swap — это дополнительное пространство, которое используется, когда физическая память (оперативная) заполнена. Неактивные страницы и ненужные данные перемещаются в раздел подкачки, когда в оперативной памяти требуется больше памяти.
32. Что такое SSL Handshake?
SSL Handshake позволяет клиенту и серверу SSL создавать секретные ключи, с которыми они взаимодействуют. SSL или TLS использует общий ключ для симметричного шифрования сообщений, что намного быстрее, чем асимметричное шифрование.
33. Что такое TCP-Handshake?
Это сокращение от «transmission control protocol«, в котором используется метод SYN-SYN-ACK (трех сторонние рукопожатие).
34. Что такое загрузочные файлы Linux?
Загрузочные файлы Linux — это доступные файлы, которые вызываются во время загрузки системы. Использование /boot/directory стандартизировано в иерархии файловой системы, поскольку в нем содержатся все файлы, используемые при загрузке системы, — это первый файл, который вызывается во время загрузки системы. Обычно он содержит файлы ядра Linux или файлы загрузчика.
35. Что делает команда grep?
Поиск шаблона в строке или файле довольно просто выполнить с помощью команды grep. Эта команда выполняется, когда необходимо найти конкретную комбинацию символов. Grep-фильтр ищет один или несколько файлов в соответствии с пользовательской командой для поиска текстовых строк с использованием любого выражения.
36. Сравнение операционных систем Linux и Windows.
Ниже приведены некоторые из различий между Linux и Windows:
Linux:
- ОС Linux с открытым исходным кодом.
- Linux — это операционная система с GPL-лицензией; вы можете модифицировать, использовать, переиздавать или продавать это программное обеспечение.
- Загрузите её один раз и установите на любое количество ПК.
- Онлайн поддержка со стороны сообщества через форумы и онлайн-поиск.
Windows:
- Исходный код для Windows недоступен.
- Вы можете улучшать и перераспределять ОС Windows.
- В Windows вы обязаны использовать для каждого ПК только одну лицензию. Если вам нужно установить её на другой компьютер, вам нужна другая лицензия.
- Платная служба поддержки.
37. Что такое «kernel»?
Kernel — это ядро любой операционной системы. Kernel выступает в качестве посредника между компьютерным железом и операционной системой и контролирует все на компьютере. Это первая программа, которая загружается при запуске системы.
38. Что делает команда uname?
Uname — это команда для создания отчётов в Linux, которая используется для получения основной информации об аппаратном и программном обеспечении компьютера.
Синтаксис:
1 |
uname [options] |
39. Что делает команда whoami?
Команда whoami — это сочетание «Who», «Am» и «I». Эта команда используется как в Linux, так и в Windows для отображения сведений об авторизованном в системе пользователе или владельце текущего сеанса системы.
40. Пожалуйста, объясните, что такое LILO?
LILO расшифровывается как Linux Loader, — это небольшая программа, которая управляет двойной загрузкой (dual boot) и также называется загрузчиком («boot loader«). Это был загрузчик по умолчанию для целого ряда дистрибутивов Linux — предшественники loadlin. Хотя в последнее время GRUB становится все более популярным, LILO и ELILO все еще широко используются.
41. Каковы имя и UID пользователя-администратора?
UID — это уникальное положительное целое число, которое присваивается системой каждому пользователю. Это определение личности пользователя, которое используется системой для идентификации каждого пользователя. С другой стороны, имя пользователя — это интерфейс, позволяющий людям распознать свою учетную запись и войти в систему.
42. Что делает команда ls -R?
Параметр или команда Is-R используются для рекурсивного обозначения списков каталога.
43. Что такое LD_LIBRARY_PATH?
LD_LIBRARY_PATH — это набор переменных, разделенных двоеточиями. Это особенно полезно, когда пользователь использует нестандартную или общую библиотеку для каких-либо специальных целей или когда отлаживается работа новой библиотеки. В частности, для выполнения этой команды может быть использована другая библиотека.