kmallc и vmalloc возвращают логический адрес?
Хотя на kmalloc и vmalloc уже запущено много потоков, но я не получил точного ответа, поэтому выкладываю его здесь.
Насколько я знаю,
kmalloc: это API ядра, который выделяет физически, а также практически непрерывную память.
vmalloc: это API ядра, который выделяет физически несмежную, но практически непрерывную память.
Теперь мой вопрос: в обоих случаях (kmalloc или vmalloc) адрес или говорят указатель, возвращаемый обоими API, является ли ЛОГИЧЕСКИЙ АДРЕС верен?
Управление памятью всегда было для меня неотъемлемой частью ядра Linux, поэтому, пожалуйста, исправьте меня, если я не так понимаю.
1 ответ
Да, указатель может быть разыменован в вашем коде для доступа к выделенной памяти.
Те функции, которые возвращают другой вид ссылки на память, не возвращают void*
Я думаю. Они обычно возвращаются unsigned long
или typedef'd типы.