Необходимо читать dmesg
значения "Память Akb/Bkb, доступный" как:
Существует доступное для использования прямо сейчас, и самое большое количество страничного блока системы, умноженное на размер страницы, является B.
Это от arch/x86/mm/init_64.c
:
printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
"%ldk absent, %ldk reserved, %ldk data, %ldk init)\n",
nr_free_pages() << (PAGE_SHIFT-10),
max_pfn << (PAGE_SHIFT-10),
codesize >> 10,
absent_pages << (PAGE_SHIFT-10),
reservedpages << (PAGE_SHIFT-10),
datasize >> 10,
initsize >> 10);
nr_free_pages()
возвращает объем физической памяти, управляемой ядром, которое не используется в настоящее время. max_pfn
самое большое количество страничного блока ( PAGE_SHIFT
сдвиг преобразовывает это в Кбит). Самое большое количество страничного блока может быть (намного) выше, чем, что Вы могли ожидать - размещение в ОЗУ, сделанное BIOS, может содержать дыры.
То, сколько поднимают эти дыры, прослежено absent_pages
переменная, отображенная как kB absent
. Это должно объяснить большую часть различия между вторым числом в "доступном" выводе и Вашей фактической, установленной RAM.
Вы можете grep для BIOS-e820
в dmesg
"видеть" эти дыры. Карта распределения памяти отображена там (прямо наверху dmesg
вывод после начальной загрузки). Необходимо смочь видеть, в каких физических адресах у Вас есть реальная, применимая RAM.
(Другие x86 причуды и зарезервированные области памяти, вероятно, составляют остальных - я не знаю детали там.)
MemTotal
в /proc/meminfo
указывает на RAM, доступную для использования. Прямо в конце последовательности начальной загрузки, ядро освобождает init
данные этому больше не нужно, таким образом, значение, в котором сообщают /proc/meminfo
могло быть немного выше, чем, что ядро распечатывает во время начальных частей последовательности начальной загрузки.
(meminfo
использование косвенно totalram_pages
для того дисплея. Для x86_64 это вычисляется в arch/x86/mm/init_64.c
также через free_all_bootmem()
который самостоятельно находится в mm/bootmem.c
для ядер не-NUMA.)
Значение по умолчанию PS1 под ударом \s-\v\$
\s
заменяется под названием Ваша оболочка (0$)\v
версия удараПродвижение -
происходит просто из-за первой оболочки, являющейся оболочкой входа в систему. Этот тире используется для дифференциации оболочек входа в систему от других. Вторая оболочка не является оболочкой входа в систему, так не имеет того префикса.
PS1
остается как это в Вашем случае, потому что ни один из сценариев, полученных при запуске, не переопределяет его.
Нет никакой импликации об этих подсказках.
Между прочим, эта ОС чаще всего упоминается как "Солярис 10", чем "SunOS 5.10".
Руководство удара объясняет это в разделе Invoking Bash:
Оболочка входа в систему является той, чей первый символ нуля аргумента является ‘-’или одним вызванным с
--login
опция.
Оболочки входа в систему вызывают различные файлы запуска.
--login
, Вы не можете действительно сказать, что это - ответ.
– njsg
27.01.2013, 22:58
login
(1 м) запускает оболочку входа в систему путем предварительного ожидания argv[0]
с "-". Это - стандартный способ запустить оболочку входа в систему (--login
не). Это объясняет, почему название оболочки, как сообщается PS1 запускается с "-".
– Stéphane Chazelas
28.01.2013, 00:59
uname
будет фактическое шоу SunOS, а не Sparc, даже если / и т.д. / *release будет иметь OpenSolaris :-) – njsg 27.01.2013, 23:13