Interesuje mnie sposób, w jaki Linux mapuje pliki do pamięci głównej (w moim kontekście do wykonywania, ale wydaje mi się, że proces mmap jest taki sam do zapisu i odczytu), a także jaki rozmiar używa.
Wiem, że Linux używa stronicowania o rozmiarze strony zwykle 4 kB (gdzie w jądrze mogę znaleźć ten rozmiar?). Ale co to dokładnie oznacza dla przydzielonej pamięci: Załóżmy, że masz plik binarny o wielkości kilku tysięcy bajtów, powiedzmy 5812B i uruchom go. Co dzieje się w jądrze: Czy przydziela 2 * 4kB, a następnie kopiuje 5812B do tego miejsca, marnując> 3KB pamięci głównej na drugiej stronie?
Byłoby wspaniale, gdyby ktokolwiek znał plik w źródle jądra, w którym zdefiniowano rozmiar strony.
Moje drugie pytanie jest również bardzo proste: założyłem 5812B jako rozmiar pliku. Czy to prawda, że ten rozmiar jest po prostu pobierany z i-węzła?