LINUX.ORG.RU

История изменений

Исправление LINUX-ORG-RU, (текущая версия) :

Первая строчка файла буквально.

👍

Примерно.

Понял

Я не понял только про «кратно ещё странице памяти».

Тут мне показалось что есть какие-то особенности операционной системы в плане памяти для исполняемого кода, типа оно складывается куда-то линейно, а потом мапиться… Короче, начал гадать о implementation defined, ибо там может быть что угодно.

Конечно. В стандартах же везде написано что-то вроде: munmap() можно применять только к результату mmap()

Спасибо. Еслиб я его/их читал =))

Какие?

А всё, ты всё написал. А так, для меня сишечка в первую очередь язык описания более приземлённых данных и манипуляций с ними, а особенности механизмов работы с памятью являющиеся чистой программной абстракцией, зависящей от стандартов для определённых семейств операционных систем, трогать приходится исключительно редко. Иными словами была бы у malloc реализация такая что он не хранил метаданные рядом с данными указатель на который выдаёт, и выравнивал бы он бы всё по страницам то всё бы было ок, но было бы не ок в других планах. Я не оправдываюсь, желательно конечно знать стандарты наизусть или близко к этому, плюс знать все нюансы интерфейсов операционных систем, а не только POSIX. Но в целом к языку это отношения особого не имеет, и так уж сложилось что лично мне касаться всего этого нужно редко. Ну как всего, выделять выровненную память для последующего её исполнения уж точно редко =) Хотя это конечно интересно, можно очень увлекательно играться в Jit например, но это уже дорога если не длинною в жизнь, то в четверть её точно.

Исходная версия LINUX-ORG-RU, :

Первая строчка файла буквально.

👍

Примерно.

Понял

Я не понял только про «кратно ещё странице памяти».

Тут мне показалось что есть какие-то особенности операционной системы в плане памяти для исполняемого кода, типа оно складывается куда-то линейно, а потом мапиться… Короче, начал гадать о implementation defined, ибо там может быть что угодно.

Конечно. В стандартах же везде написано что-то вроде: munmap() можно применять только к результату mmap()

Спасибо. Еслиб я его/их читал =))

Какие?

А всё, ты всё написал. А так, для меня сишечка в первую очередь язык описания данных и манипуляций с ними, а особенности механизмов работы с памятью являющиеся чистой программной абстракцией, зависящей от стандартов для определённых семейств операционных систем, трогать приходится исключительно редко. Иными словами была бы у malloc реализация такая что он не хранил метаданные рядом с данными указатель на который выдаёт, и выравнивал бы он бы всё по страницам то всё бы было ок, но было бы не ок в других планах. Я не оправдываюсь, желательно конечно знать стандарты наизусть или близко к этому, плюс знать все нюансы интерфейсов операционных систем, а не только POSIX. Но в целом к языку это отношения особого не имеет, и так уж сложилось что лично мне касаться всего этого нужно редко. Ну как всего, выделять выровненную память для последующего её исполнения уж точно редко =) Хотя это конечно интересно, можно очень увлекательно играться в Jit например, но это уже дорога если не длинною в жизнь, то в четверть её точно.