История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Первая строчка файла буквально.
👍
Примерно.
Понял
Я не понял только про «кратно ещё странице памяти».
Тут мне показалось что есть какие-то особенности операционной системы в плане памяти для исполняемого кода, типа оно складывается куда-то линейно, а потом мапиться… Короче, начал гадать о implementation defined, ибо там может быть что угодно.
Конечно. В стандартах же везде написано что-то вроде: munmap() можно применять только к результату mmap()
Спасибо. Еслиб я его/их читал =))
Какие?
А всё, ты всё написал. А так, для меня сишечка в первую очередь язык описания более приземлённых данных и манипуляций с ними, а особенности механизмов работы с памятью являющиеся чистой программной абстракцией, зависящей от стандартов для определённых семейств операционных систем, трогать приходится исключительно редко. Иными словами была бы у malloc реализация такая что он не хранил метаданные рядом с данными указатель на который выдаёт, и выравнивал бы он бы всё по страницам то всё бы было ок, но было бы не ок в других планах. Я не оправдываюсь, желательно конечно знать стандарты наизусть или близко к этому, плюс знать все нюансы интерфейсов операционных систем, а не только POSIX. Но в целом к языку это отношения особого не имеет, и так уж сложилось что лично мне касаться всего этого нужно редко. Ну как всего, выделять выровненную память для последующего её исполнения уж точно редко =) Хотя это конечно интересно, можно очень увлекательно играться в Jit например, но это уже дорога если не длинною в жизнь, то в четверть её точно.
Исходная версия LINUX-ORG-RU, :
Первая строчка файла буквально.
👍
Примерно.
Понял
Я не понял только про «кратно ещё странице памяти».
Тут мне показалось что есть какие-то особенности операционной системы в плане памяти для исполняемого кода, типа оно складывается куда-то линейно, а потом мапиться… Короче, начал гадать о implementation defined, ибо там может быть что угодно.
Конечно. В стандартах же везде написано что-то вроде: munmap() можно применять только к результату mmap()
Спасибо. Еслиб я его/их читал =))
Какие?
А всё, ты всё написал. А так, для меня сишечка в первую очередь язык описания данных и манипуляций с ними, а особенности механизмов работы с памятью являющиеся чистой программной абстракцией, зависящей от стандартов для определённых семейств операционных систем, трогать приходится исключительно редко. Иными словами была бы у malloc реализация такая что он не хранил метаданные рядом с данными указатель на который выдаёт, и выравнивал бы он бы всё по страницам то всё бы было ок, но было бы не ок в других планах. Я не оправдываюсь, желательно конечно знать стандарты наизусть или близко к этому, плюс знать все нюансы интерфейсов операционных систем, а не только POSIX. Но в целом к языку это отношения особого не имеет, и так уж сложилось что лично мне касаться всего этого нужно редко. Ну как всего, выделять выровненную память для последующего её исполнения уж точно редко =) Хотя это конечно интересно, можно очень увлекательно играться в Jit например, но это уже дорога если не длинною в жизнь, то в четверть её точно.