А операционная система это фреймворк?
Нет. Это виртуальная машина, которая скрывает оборудование от программиста и пользователя, недостатки реальной машины, предоставляя виртуальную память, виртуальный процессор, команды, которые не привязаны к конкретной архитектуре компьютера. Фреймоврк не предоставляет виртуальную машину, он не скрывает детали системной среды от программиста, например, angular не скрывает многие детали браузера, модели DOM от программиста. Он предоставляет набор библиотек, шаблонов, паттернов проектирования, помогающих разрабатывать программное обеспечение. Например, angular предполагает разработку сайтов согласно сервис-ориентированной архитектуры, но при этом все равно нужно помнить о DOM, HTML, CSS, то есть о "низкоуровневых" компонентах веб-приложение. Программисту же С++ под Windows не нужно беспокоиться об управлении памятью, о том, чтобы программа правильно размещалась в памяти и правильно взаимодействовала с другими программами. Это делает операционная система, программист же работает в виртуальной памяти, виртуальном адресном пространстве, при этом он может считать, что вся память машины и все процессорное время виртуального процессора отведено его программе. Программисты С++ под DOS должны же были беспокоиться о правильном размещении программы в памяти, чтобы не дай бог она не обращалась к "неправильному" адресному пространству. Я не программировал под DOS, и я не знаю какого это, программировать в среде с "реальной" памятью, с "реальным" процессором, а не виртуальными...Может, Индиго, это делал, надо у него спросить. У меня есть книга Turbo Pascal 7.0 и про разработку программ в среде DOS, так вон там есть несколько глав про оверлей, про работу с реальной памятью
Модуль Overlay в Turbo Pascal 7 Современные программисты на такие темы не заморачиваются вообще, в яве и с# чистильщик мусора даже есть, так что создал объект с помощью слова new -- и забыл про него, чистильщик мусора потом все почистит.