%Memory %Thadeu Cascardo # Memory * Real (Physical) Address * Virtual Address * Bus Address * Linear Address # Memory Zones * Normal Zone * DMA Zone * High Memory Zone # Flags * GFP\\_KERNEL * GFP\\_ATOMIC * GFP\\_USER * GFP\\_HIGHUSER * GFP\\_NOFS * GFP\\_NOIO * \\_\\_GFP\\_ZERO * \\_\\_GFP\\_DMA * \\_\\_GFP\\_HIGHMEM * \\_\\_GFP\\_NOWARN * \\_\\_GFP\\_REPEAT * \\_\\_GFP\\_NOFAIL * \\_\\_GFP\\_NORETRY # Slab (lookaside cache) * include linux/slab.h * struct kmem\\_cache * kmem\\_cache\\_create(name, size, offset, flags, constructor); * kmem\\_cache\\_destroy(kmc) * kmem\\_cache\\_alloc(kmc, gfp) * kmem\\_cache\\_free(kmc, ptr) # vmalloc * Virtual memory with many pages allocated not linearly in the physical space # GFP