Какие приложения устанавливаются на оболочку ОС и как они взаимодействуют
Что проверяют
Понимаете ли вы, из каких слоёв состоит программная среда и как приложения получают доступ к ресурсам ОС и друг к другу. Аналитику это нужно, чтобы описать требования к окружению и интеграции. Следом часто спрашивают, чем служба отличается от обычного приложения и как две программы на одной машине обмениваются данными.
Как отвечать
Сначала поправьте терминологию: приложения ставятся не «на оболочку», а в операционную систему. Оболочка (командная, как bash и PowerShell, или графическая, как Проводник Windows и GNOME) сама является обычной программой, через которую пользователь запускает остальные. Дальше слоями:
- ядро: управляет процессами, памятью, файлами, сетью и устройствами. Драйверы работают в режиме ядра или тесно с ним связаны, это не пользовательские приложения;
- системные службы: процессы без интерфейса, которые стартуют вместе с системой, например службы Windows или демоны под systemd в Linux. Это СУБД, веб-серверы, агенты мониторинга;
- среды выполнения: JVM, .NET, Python, от которых зависят прикладные программы;
- пользовательские приложения: браузер, офис, клиенты корпоративных систем.
С ядром приложение общается через системные вызовы, обычно не напрямую, а через API ОС (WinAPI, POSIX) и библиотеки. Друг с другом приложения обмениваются через файлы, каналы (pipes), сокеты, разделяемую память, очереди сообщений, D-Bus в Linux и COM в Windows, а по сети через HTTP API и брокеры. Изоляцию обеспечивают отдельные адресные пространства процессов, права пользователей, песочницы и контейнеры.
Свяжите это с работой аналитика: в требованиях фиксируют поддерживаемые ОС и версии сред выполнения, права для установки, способ интеграции и поведение, если соседнее приложение недоступно.
Где спотыкаются
Ставят драйверы в один ряд с браузером и антивирусом. Драйвер работает в привилегированном режиме, и его сбой может уронить всю систему, а не одну программу.
Путают оболочку с ядром или с ОС целиком. Оболочку можно поменять, не трогая ядро: bash на zsh, Проводник на другую графическую оболочку.
Отвечают чистой теорией. Интервьюер хочет услышать, как это знание превращается в требования и описание интеграций.