Функцііmmap () і do_mmap (): створення інтервалу адрес

Функція do_mmap () використовується ядром для створення нового лінійного інтервалу адрес Говорити, що ця функція створює нову область VMA, – технічно не коректно, оскільки якщо створюваний інтервал адрес є суміжним з існуючим інтервалом адрес і у цих інтервалів однакові права доступу, то два інтервали обєднуються в один Якщо це неможливо, то створюється нова область VMA […]

Читання файлів формату IFF/8SVX

Визначимо єдиний клас IffRead Щоб використовувати його, відкрийте файл і проініціалізіруйте новий обєкт IffRead відкритим файлом Лістинг 192 Програма iffh #include &quotaudioh&quot #include &quotcompressh&quot bool IsIffFile(istream &ampfile)

Дескриптор пам’яті

Ядро являє адресний простір процесу у вигляді структури даних, яка називаєтьсядескриптором памяті Ця структура містить всю інформацію, яка відноситься до адресного простору процесу Дескриптор памяті представляється за допомогою структури struc t mm_struct, яка визначена у файлі

Управління пам’яттю

иделіть памятьвсередині ядра не так просто, як поза ядра Це повязано з багатьма факторами Головним чином, причина в тому, що в ядрі не доступні ті елементи розкоші, якими можна користуватися в просторі користувача, На відміну від простору користувача, в ядрі не завжди можна дозволити собі легко виділяти память Наприклад, в режимі ядра часто не можна […]

Вирівнювання даних

Вирівнювання (alignment) відповідає розміщенню порції даних в памяті Кажуть, що змінна має природне вирівнювання (naturally aligned), якщо вона знаходиться в памяті за адресою, значення якого кратне розміру цієї змінної Наприклад, змінна 32-розрядного типу даних має природне вирівнювання, якщо вона знаходиться в памяті по адресою, кратному 4 байт (тобто два молодших біта адреси рівні нулю) Таким […]

Читання файлів AIFF

B оригінальної специфікації IFF автори звертають особливу увагу на те, що блоки даних різних типів можуть слідувати в будь-якому порядку Тому не виключено, що в деяких файлах AIFF, наприклад, блок звукових даних буде розташований перед форматним блоком, определющім спосіб зберігання даних

Об’єкт file

Останнім з основних обєктів підсистеми VFS розглянемо обєкт файлу Обєкт File використовується для представлення файлів, які відкриті процесом Коли ми думаємо про підсистему VFS з точки зору простору користувача, то обєкт файлу – це те, що перше приходить в голову Процеси безпосередньо працюють з файлами, а не з суперблоками, індексами або елементами каталогів Не дивно, […]

Області пам’яті

Області памяті (memory areas) представляються за допомогою обєктів областей памяті, які зберігаються в структурах типу vm_area_struct Ця структура визначена у файлі Області памяті часто називаються областями віртуальної памяті (virtual memory area, або VMA)

Пишемо інтерпретатор для свого езотеричного мови

За основу я взяв мову Brainfuck, він настільки малий, що можна трохи розширивши отримати практично новий і досить функціональна мова програмування. І при цьому не втратити родзинку вихідного мови – Моя мова буде все так само терзати мозок програміста, як і його батько!

Як Linux працює з пам’яттю, Linux, Операційні системи, статті

Stanislav Ievlev Сталося мені одного разу поцікавитися, як же ядро ​​працює з найдорожчим, що у нього є, з оперативною пам’яттю. Перші спроби розібратися з нальоту, що і як ні до чого не привели. Не все так просто як хотілося б. Звідусіль стирчать кінці, начебто всі ясно, але як зв’язати їх воєдино …