Найти в Дзене
IT Еxtra

Как работает компьютер? Часть 68. Как программа загружается в память и начинает выполняться

Предыдущий урок: Как работает компьютер? Часть 67. Смотрим под капот: во что интерпретатор превратил наш код Теперь, когда мы увидели, во что превращается наш код на Python, настало время проследить его финальный путь — как он попадает в память и как процессор начинает его выполнение. Этот процесс, скрытый от глаз программиста, является настоящим шедевром слаженной работы операционной системы и железа. Представьте, что ваша программа — это путешественник, который прибывает в чужой город операционная система — это мэр города, который встречает его, проверяет документы, выделяет ему жильё и даёт карту, по которой можно начинать движение. Всё начинается с того момента, когда вы вводите в терминале команду python script.py. Операционная система, а точнее её компонент под названием загрузчик, первым вступает в игру. Его задача — найти исполняемый файл интерпретатора Python, который хранится где-то на диске. Операционной системе не нужно знать, что находится внутри вашего script.py; её перво

Предыдущий урок: Как работает компьютер? Часть 67. Смотрим под капот: во что интерпретатор превратил наш код

Теперь, когда мы увидели, во что превращается наш код на Python, настало время проследить его финальный путь — как он попадает в память и как процессор начинает его выполнение. Этот процесс, скрытый от глаз программиста, является настоящим шедевром слаженной работы операционной системы и железа. Представьте, что ваша программа — это путешественник, который прибывает в чужой город операционная система — это мэр города, который встречает его, проверяет документы, выделяет ему жильё и даёт карту, по которой можно начинать движение.

Всё начинается с того момента, когда вы вводите в терминале команду python script.py. Операционная система, а точнее её компонент под названием загрузчик, первым вступает в игру. Его задача — найти исполняемый файл интерпретатора Python, который хранится где-то на диске. Операционной системе не нужно знать, что находится внутри вашего script.py; её первоочередная задача — запустить сам интерпретатор. Она находит файл python или python.exe, считывает его заголовок, чтобы убедиться, что это действительно программа, и проверяет права доступа имеет ли пользователь право её запускать.

После успешной проверки операционная система совершает ключевое действие она загружает машинный код интерпретатора Python из медленной памяти SSD в быструю оперативную память RAM. Процессор может работать только с теми данными, которые находятся в RAM, поэтому это обязательный шаг. Операционная система не просто копирует код она осторожно размещает его в определённых участках памяти, подготавливает специальную область памяти для временных данных и выделяет место для переменных. Всё это она делает на основе инструкций, записанных в заголовке исполняемого файла интерпретатора.

Теперь на сцену выходит процессор. Операционная система передаёт ему управление, указывая на самую первую команду машинного кода интерпретатора, которая была загружена в память. С этого момента процессор начинает жадно считывать команды интерпретатора и выполнять их. Он не видит и не знает о существовании вашего файла script.py он слепо исполняет код, который ему подсунула ОС. А этот код, в свою очередь, является программой-интерпретатором, и её логика предписывает ей найти файл, имя которого было передано в качестве аргумента script.py.

Интерпретатор, работая на процессоре, начинает читать ваш скрипт с диска. Он построчно анализирует его, преобразуя в байт-код и выполняя его, как мы разбирали в прошлом уроке. Каждая команда в байт-коде LOAD_CONST, STORE_FAST, BINARY_ADD приводит к выполнению подпрограмм внутри машинного кода самого интерпретатора. Именно эти подпрограммы, состоящие из десятков и сотен машинных команд MOV, ADD, CALL, и заставляют процессор выполнять полезную работу: резервировать память, складывать числа, вызывать функции операционной системы для вывода текста на экран.

IT Extra

Важно понять, что в этой цепочке процессор остаётся «в неведении» об исходном коде на Python. Он всего лишь механический исполнитель машинных команд, которые принадлежат интерпретатору. Весь интеллект, вся логика выполнения вашего скрипта упакована внутри программы python. Операционная система же выступает в роли верховного координатора она предоставляет ресурсы память, процессорное время, доступ к файлам и обеспечивает изоляцию, чтобы работа интерпретатора не мешала другим запущенным программам.

Подводим итог:

  1. Пользователь дает команду: Вы вводите в терминале python script.py и нажимаете Enter.
  2. Операционная система принимает эту команду. Её компоненты начинают работу:
    Загрузчик ищет на SSD исполняемый файл интерпретатора python (или python.exe).
    Он проверяет его заголовок и ваши права на запуск.
    Диспетчер памяти выделяет место в оперативной памяти, а диспетчер процессов
    создает новую задачу.
  3. Код интерпретатора Python считывается с медленного SSD и помещается в быструю оперативную память (RAM). Туда же загружаются системные библиотеки и выделяется место для стека и данных.
  4. Операционная система сообщает процессору адрес в памяти, с которого начинается код интерпретатора. Процессор переключается на выполнение его машинных команд.
  5. Теперь процессор выполняет не вашу программу, а код интерпретатора. Этот код:
    Находит и открывает ваш файл script.py.
    Построчно его читает, анализирует и преобразует в байт-код.
    Виртуальная машина Python (PVM) внутри интерпретатора выполняет этот байт-код.
  6. Когда коду нужно что-то вывести на экран (например, результат print), интерпретатор делает системный вызов. Это запрос к ядру ОС, которая уже имеет прямые права на доступ к оборудованию.
  7. Ядро ОС получает запрос, управляет видеокартой и выводит окончательный результат на экран. Ваша программа выполнена.

Таким образом, запуск программы это не одномоментное действие, а многоступенчатый ритуал, в котором операционная система готовит сцену и запускает главного актёра интерпретатор, а тот, в свою очередь, разыгрывает пьесу, написанную вами в файле script.py, заставляя процессор играть свою роль в этом представлении.

Спасибо за внимание!

Следующий урок:
Как работает компьютер? Часть 69. Отладочный вывод: как программисты видят работу программы

Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.

Что внутри?
Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
Без рекламы и воды: Только суть, только концентрат полезной информации.
Ранний доступ: Читайте новые материалы первыми.

Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.

👉 Переходите на Premium и начните читать то, о чем другие только догадываются.

👍 Ставьте лайки если хотите разбор других интересных тем.

👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи

________________________________________________________________________

👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!

IT Extra