Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

7. Пример: запуск программы в Linux

Рассмотрим команду в bash:

Что происходит:

  1. Bash вызывает fork() — создаётся новый процесс (копия bash).

  2. Дочерний процесс вызывает execve("/bin/ls", ["ls", "-l", "/home"], envp).

  3. Ядро загружает ELF-файл /bin/ls:

    • читает заголовок;

    • создаёт адресное пространство;

    • отображает сегменты файла в память;

    • загружает динамический компоновщик (если нужно).

  4. Динамический компоновщик загружает библиотеки (libc.solibselinux.so и т.д.).

  5. Управление передаётся на _start → вызывается main() программы ls.

  6. ls выполняет системные вызовы open(), getdents() (чтение директории), write() (вывод).

  7. ls завершается вызовом exit().

  8. Ядро уведомляет bash о завершении дочернего процесса, bash возвращает приглашение.

8. Особенности в разных ос

Этап

Linux/Unix

Windows

Формат исполняемого файла

ELF (Executable and Linkable Format)

PE (Portable Executable)

Загрузчик

execve()

CreateProcess()

Динамические библиотеки

.so (shared objects)

.dll (dynamic-link libraries)

Динамический компоновщик

ld-linux.so

Загрузчик Windows (часть ядра)

Первый процесс

init/systemd

smss.exe → csrss.exe → winlogon.exe

Состояние zombie

Есть

Нет (аналог — процесс ожидает GetExitCodeProcess)

9. Заключение

Ключевые выводы:

  1. Загрузчик — первый код, который запускается на компьютере. Он загружает ядро ОС.

  2. Процесс загрузки программы включает системный вызов exec(), загрузку исполняемого файла, динамическую компоновку, передачу управления.

  3. Процесс в памяти состоит из сегментов кода, данных, стека и кучи.

  4. Состояния процесса — готовность, выполнение, ожидание, завершение.

  5. Системные вызовы — единственный способ для программы запросить услуги у ядра.

  6. ОС управляет процессами через планировщик и переключение контекста.

15. Обзор современных операционных систем

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

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

Linux представляет собой семейство операционных систем с открытым исходным кодом. Существует множество дистрибутивов Linux, например Ubuntu, Debian и Fedora. Linux широко используется на серверах и в системах разработки.

macOS — операционная система компании Apple, которая используется на компьютерах Mac. Она отличается высокой стабильностью и тесной интеграцией с другими продуктами Apple.

На мобильных устройствах наиболее распространены операционные системы Android и iOS.

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

Вопрос 15: Обзор современных ос: Windows, Linux-дистрибутивы, macOs, мобильные платформы Введение

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

В этом вопросе мы рассмотрим четыре основные категории:

  • Windows — доминирует на десктопах и в корпоративной среде.

  • Linux-дистрибутивы — правят серверами и миром open-source.

  • macOS — ОС от Apple для их компьютеров.

  • Мобильные платформы — Android и iOS.