Грязное решение со сценарием оболочки контролирует сообщение ядра, каждый раз, когда Вы видите включенное устройство, Вы используете udisks
смонтировать все разделы того диска.
т.е.
#!/bin/bash
tail -f /var/log/messages | while read line; do
if [[ $line =~ \[(sd[a-z])\] ]];then
for x in /dev/${BASH_REMATCH[1]}*
do
echo "Mounting $x"
echo udisks --mount $x # remove the echo
done
fi
done
Но это лучше, делают один с gvfs или udisks API, я не знаю об этом в данный момент
Размер страницы по умолчанию системы можно узнать, запросив ее конфигурацию с помощью команды getconf
:
$ getconf PAGE_SIZE
4096
или
$ getconf PAGESIZE
4096
NOTE: Вышеуказанные единицы обычно находятся в байтах, поэтому 4096 соответствует 4096 байтам или 4 кБ.
Это жестко прописано в исходниках ядра Linux здесь:
$ more /usr/src/kernels/3.13.9-100.fc19.x86_64/include/asm-generic/page.h
...
...
/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT 12
#ifdef __ASSEMBLY__
#define PAGE_SIZE (1 << PAGE_SHIFT)
#else
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#endif
#define PAGE_MASK (~(PAGE_SIZE-1))
При сдвиге битов выполняется двоичное умножение на 2. Таким образом, в действительности сдвиг битов влево (1 << PAGE_SHIFT
) дает умножение на 2^12 = 4096.
$ echo "2^12" | bc
4096
Огромные страницы[114222], если скомпилировать их в ([114223]CONFIG_HUGETLB_PAGE[114224] необходимо, и [114225]CONFIG_HUGETLBFS[114226] также для большинства применений). Это соответствует второму по глубине уровню дескрипторов MMU (то, что Linux называет PMD) (или, по крайней мере, обычно это так, я не знаю, на всех ли это архитектурах).[12150]Размер страницы - это компромисс между использованием памяти, использованием памяти и скоростью.[12151]Больший размер страницы означает большее количество отходов при частичном использовании страницы, поэтому система быстрее заканчивает работу с памятью. [12152]Более глубокий уровень дескрипторов MMU означает больше памяти ядра для таблиц страниц.[12153]Более глубокий уровень дескрипторов MMU означает больше времени, затрачиваемого на обход таблиц страниц.[12154]Выигрыш от большего размера страниц для большинства приложений ничтожен, в то время как стоимость является существенной. Поэтому в большинстве систем используются только страницы нормального размера.[12155]Размер страницы можно запросить в системе с помощью утилиты [12156]getconf[12157]или с помощью функции C [12158]sysconf[12159].[12160]Использование огромных страниц[113949] требует установки туда файловой системы [113950]hugetlbfs[113951] и [113952]mmap[113953]ping файлов.[113390].
В режиме x64 также могут быть огромные страницы, размером 2 Мб. Однако, их использование немного затруднено.
Больше информации о размере страницы можно найти в [112868]Wikipedia article
Процессор определяет доступные размеры страницы. В большинстве случаев размер страницы, реализованный аппаратно на процессорах x86 и x86_64, составляет 4 КБ. Однако операционная система может выделять более одной страницы за раз, если она этого хочет, и тем самым эффективно реализовывать страницы размером 8, 16 или 32 Кбайт в программном обеспечении.
Процессоры x86 и x86_64 могут соответственно также смешивать страницы размером 4 и 2 МБ вместе со стандартными страницами размером 4 КБ. Если эта возможность вообще будет использоваться, она будет в основном использоваться для выделения пространства ядра.