С++ позволяет работать без рантайма. С++ так же позволяет собственно свелосипедить этот самый рантайм (если по какой то причине платформа и ОС отсутсвуют (например мы пишем новую ОС на С++) и мы из наличествующего имеем только компилятор для архитектуры процессора) Время Медоуказчика , есть книга "Practical Guide to Bare Metal C++" - там как раз описывается как сделать фичи C++ руками с нуля, если платформы у нас нет и её предстоит сделать.
1. Круто - в этом видео количество ненужных повторений уменьшилось раз в 10. Если в прошлом видео было почти после каждой фразы, то сейчас уже относительно немного. 2. Сравнивать рантаймы имеет смысл для похожих инструментов. Рантайм С++ вполне себе сопоставим с рантаймом Rust.
runtime это не совсем то слово про что рассказ, на мой взгляд слово runtime в с++ из области шаблонной магии где есть исполнение кода на этапе компиляции и исполнение в runtime, а то про что рассказывает автор скорее похоже на бэкэнд исполнения в runtime
При чём тут эксепшены в RAII? Эксепшены можно отключить. RAII - нет. Зачем путать «рантайм» и библиотеки? Скомпилируйте программу на Rust - библиотека Си и ГЦЦ, тоже будут слинкованы. Попробуйте написать программу без мэйна и стандартной либы, не будет вообще рантайма.
Опции линкера для GCC: -nostdlib - не использовать рантайм; -static-libgcc -static-libstdc++ - прилинковать статически. По умолчанию используется рантайм собранный в виде динамических библиотек. Если не знать что это за библиотеки приложение может окирпичится.
И да, в комментариях к предыдущему видео один из комментаторов и вы зачем-то упомянули MMU в контексте С++. Откуда взялась эта благоглупость? MMU и C++ ну вот вообще друг с другом никак не связаны, от слова совсем. Вот вообще. MMU - это аппаратный модуль процессора ОБЕСПЕЧИВАЮЩИЙ АППАРАТНУЮ ВИРТУАЛИЗАЦИЮ (да, виртуальная страничная память - это именно виртуализация, виртуализация ПОД ОСИ которую все и привыкли называть виртуализацией это по то же самое только прикидывающееся нулевым кольцом, она по факту и устроена почти так же только с циферкой уровня привелегий ниже, кроме условного кернела у нас еще появляется уровень круче - суперкернел (супервизор обычно) ) . То есть скажем для МНОГОЗАДАЧНОЙ операционной системы он крайне желателен , именно с точки зрения безопасной МНОГОЗАДАЧНОСТИ (не обязателен - можно и без него - собственно что Амига что Маки старые что Виндовсы до тройки не на 386 вполне обходились - это им окошки рисовать и запускать несколько приложений одновременно не мешало, мешало только отуствие аппаратной изоляции доступа к памяти, которое позваляло лихо портить память другому процессу). А ВОТ К КРЕСТАМ, МАТЬ ЕГО, КАКОЕ ОН ОТНОШЕНИЕ ИМЕЕТ?
Где адекватно почитать про виртуальную память и виртуализацию. А то я скоро чокнусь, каждый, кто пишет статью под виртуальной памятью имеет ввиду что то свое.
С++ позволяет работать без рантайма.
С++ так же позволяет собственно свелосипедить этот самый рантайм (если по какой то причине платформа и ОС отсутсвуют (например мы пишем новую ОС на С++) и мы из наличествующего имеем только компилятор для архитектуры процессора)
Время Медоуказчика , есть книга "Practical Guide to Bare Metal C++" - там как раз описывается как сделать фичи C++ руками с нуля, если платформы у нас нет и её предстоит сделать.
Как всегда информативно. Спасибо
Файл .so - это скомпилированный файл библиотеки. Он означает «Shared Object» и является аналогом Windows DLL.
а может ли си плюс плюс работать без компилятора
а может ли си плюс плюс работать в голове пишущего
В голове может работать, но есть проблема
1 утечка памяти, и все, Альцгеймер
1. Может. Где-то есть интерпретатор Си. Да и Си Шелл, вроде понимает сишный синтаксис.
2. Может и работает)
Классно. Не подозревал об этом )
1. Круто - в этом видео количество ненужных повторений уменьшилось раз в 10. Если в прошлом видео было почти после каждой фразы, то сейчас уже относительно немного.
2. Сравнивать рантаймы имеет смысл для похожих инструментов. Рантайм С++ вполне себе сопоставим с рантаймом Rust.
Доктор, а откуда у вас такие картинки на рабочем столе?
Baremetal С++ для esp вполне себе без рантайма.
runtime это не совсем то слово про что рассказ, на мой взгляд слово runtime в с++ из области шаблонной магии где есть исполнение кода на этапе компиляции и исполнение в runtime, а то про что рассказывает автор скорее похоже на бэкэнд исполнения в runtime
Крутой Дядя !!!
При чём тут эксепшены в RAII? Эксепшены можно отключить. RAII - нет.
Зачем путать «рантайм» и библиотеки?
Скомпилируйте программу на Rust - библиотека Си и ГЦЦ, тоже будут слинкованы.
Попробуйте написать программу без мэйна и стандартной либы, не будет вообще рантайма.
А как дядя настраивает дебаг для своих ИДЕ? С удовольствием поруководствовался бы медовым гайдом на тему настройки nvim И vscode
Опции линкера для GCC:
-nostdlib - не использовать рантайм;
-static-libgcc -static-libstdc++ - прилинковать статически.
По умолчанию используется рантайм собранный в виде динамических библиотек. Если не знать что это за библиотеки приложение может окирпичится.
собственно, именно благодаря данному дефолтному поведению у конечных пользователей зачастую возникает квест "скачать нужный редистриб с МСДН"))))
@@АлександрСоловьев-ю9ц2к есть простое решение -- не юзать винду0))
@@safocl9768 с глибцами порой проблем не меньше
@@safocl9768 можно подумать с глибцами проблем меньше)))
zoxide + eza
И да, в комментариях к предыдущему видео один из комментаторов и вы зачем-то упомянули MMU в контексте С++.
Откуда взялась эта благоглупость? MMU и C++ ну вот вообще друг с другом никак не связаны, от слова совсем. Вот вообще.
MMU - это аппаратный модуль процессора ОБЕСПЕЧИВАЮЩИЙ АППАРАТНУЮ ВИРТУАЛИЗАЦИЮ (да, виртуальная страничная память - это именно виртуализация, виртуализация ПОД ОСИ которую все и привыкли называть виртуализацией это по то же самое только прикидывающееся нулевым кольцом, она по факту и устроена почти так же только с циферкой уровня привелегий ниже, кроме условного кернела у нас еще появляется уровень круче - суперкернел (супервизор обычно) ) .
То есть скажем для МНОГОЗАДАЧНОЙ операционной системы он крайне желателен , именно с точки зрения безопасной МНОГОЗАДАЧНОСТИ (не обязателен - можно и без него - собственно что Амига что Маки старые что Виндовсы до тройки не на 386 вполне обходились - это им окошки рисовать и запускать несколько приложений одновременно не мешало, мешало только отуствие аппаратной изоляции доступа к памяти, которое позваляло лихо портить память другому процессу).
А ВОТ К КРЕСТАМ, МАТЬ ЕГО, КАКОЕ ОН ОТНОШЕНИЕ ИМЕЕТ?
Где адекватно почитать про виртуальную память и виртуализацию. А то я скоро чокнусь, каждый, кто пишет статью под виртуальной памятью имеет ввиду что то свое.
@@call_nick
osdev wiki paging
В гугле искать, ссылки к сожалению не оставить.