Вопрос

Хотя на kmalloc и vmalloc уже запущено много потоков, но я не получил своего точного ответа, поэтому я помещаю его здесь.

Насколько я знаю,

кмаллок :Это API ядра, который выделяет как физически, так и виртуально непрерывную память.

вмаллок :Это API ядра, который выделяет физически несмежную, но практически непрерывную память.

Теперь мой вопрос таков :В обоих случаях (kmalloc или vmalloc) адрес или, скажем, указатель, возвращаемый обоими API, является правильным ЛОГИЧЕСКИМ АДРЕСОМ?

Управление памятью всегда было для меня серой частью ядра Linux, поэтому, пожалуйста, поправьте меня, если я неправильно понимаю.

Это было полезно?

Решение

Да, указатель может быть разыменован в вашем коде для доступа к выделенной памяти.

Те функции, которые возвращают другой вид ссылки на память, не возвращают void* Я думаю.Они обычно возвращаются unsigned long или типы typedef'd.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top