небольшой пример, как ОС использует этот учет ресурсов?
Sazoks, когда процесс завершается, ОС освобождает всю выделенную им приватную память и закрывает все открытые им файлы. Это происходит потому, что такие ресурсы ассоциированы именно с процессом, а не с чем-нибудь другим.
Dmitrii, спасибо, я знаю. Кроме того, это частный случай. В общем случае выделение пространства на стеке может происходить многократно в течение выполнения функции.
Однако, ещё раз, порядок размещения переменных языка высокого уровня в стеке не связан напрямую с направлением роста стека. Я привёл пример демонстрирующий это.
Правильный ответ на вопрос "почему адреса переменных расположены в таком порядке" -- "потому что так решил компилятор", вон он, ниже.
Это неправильный ответ. Направление роста стека не связано напрямую с тем, как компилятор размещает на нём автоматические переменные. Вот пример, когда адреса не связаны с порядком объявления: https://godbolt.org/z/f6YWeW5s6
Иван Четчасов, другое дело. Можно идти от этого места назад, но гораздо легче идти от точно работающего места вперёд и смотреть, что пошло не так. Последнее точно работающее место в твоём коде было здесь. Можно для начала проверить успешность следующего вызова do_read.
Иван Четчасов, будет конечно, почему нет? Загляни в Intel developers manual, во втором томе, в табличке 2-1. "16-Bit Addressing Forms with the ModR/M Byte" перечислены все возможные форматы адресации реального режима.
Дать разрешения на запись в каталог /var/www/html пользователю от имени которого vsftpd пытается туда писать. Что это за пользователь -- зависит от настроек vsftpd и проведённой аутентификации.
Покажи, с какой командной строкой запускается QEMU.
Вообще QEMU умеет эмулировать разные машины и разную периферию, можно для начала поиграть с этими параметрами конфигурации.
Saboteur, ОС работает, планировщик ОС -- нет, в чём вопрос, в невнимательности?