Как отмечено другими, нет действительно ответа на это: имена файлов и пути не имеют кодирования; ОС только имеет дело с последовательностью байтов. Отдельные приложения могут принять решение интерпретировать их как закодированный в некотором роде, но это варьируется.
А именно, Бойкий (используемый Gtk + приложения) предполагает, что все имена файлов являются закодированным UTF-8, независимо от локали пользователя. Это может быть переопределено с переменными среды G_FILENAME_ENCODING и G_BROKEN_FILENAMES.
С другой стороны, спокойные значения по умолчанию к предположению, что все имена файлов кодируются в локали текущего пользователя. Отдельное приложение может принять решение переопределить это предположение, хотя я не знаю ни о ком, которые делают, и нет никакого внешнего переключателя переопределения.
Современные дистрибутивы Linux настраиваются таким образом, что все пользователи используют локали UTF-8, и пути на внешнем монтировании файловой системы переводятся в UTF-8, таким образом, это различие в стратегиях обычно не имеет никакого эффекта. Однако, если Вы действительно хотите быть в безопасности, Вы не можете принять структуру об именах файлов вне "NUL-завершенного ', / '-delimited последовательность байтов".
(Также примечание: локаль может варьироваться процессом. Два различных процесса, выполненные тем же пользователем, могут быть в различных локалях просто путем установки различных переменных среды.)
32-разрядное адресное пространство означает, что у Вас есть пространство для 4 ГБ адресов. Идеально ядру нравится мочь отобразить всю физическую память, всю память текущей задачи и всю ее собственную память. Если одна только физическая память поднимает всех доступных 4 ГБ, которые не будут работать. Таким образом, физическая память разделена на низкую память, которая отображается все время, и верхняя память, которая должна быть отображена, когда используемый. Если Вы не выполняете исправленное ядро на ix86 архитектуре, 128 МБ адресного пространства посвящен коду ядра и структурам данных, и 896 МБ посвящены отображению физической памяти (для в общей сложности 1 ГБ).
Дополнительное чтение по сложностям управления памятью, когда Ваше адресное пространство не удобно больше, чем Ваша общая память:
Выборки от Ваших журналов ядра:
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cdce0000 (usable)
BIOS-e820: 00000000cdce0000 - 00000000cdce3000 (ACPI NVS)
BIOS-e820: 00000000cdce3000 - 00000000cdcf0000 (ACPI data)
BIOS-e820: 00000000cdcf0000 - 00000000cdd00000 (reserved)
BIOS-e820: 00000000d0000000 - 00000000e0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
2404MB HIGHMEM available.
887MB LOWMEM available.
Zone PFN ranges:
DMA 0x00000000 -> 0x00001000
Normal 0x00001000 -> 0x000377fe
HighMem 0x000377fe -> 0x000cdce0
Здесь у Вас есть 887 МБ низкой памяти: теоретический максимум 896 МБ минус некоторые МБ буферов DMA (зоны памяти раньше связывались с устройствами).
Из Вашей физической памяти 3328 МБ отображаются в адресах ниже 4 ГБ, и 768 МБ отображается в адресах выше 4 ГБ (диапазон 0x100000000–0x130000000). Вы не получаете доступ к этим 768 МБ, который объясняет, почему Вы только имеете 3242 МБ в наличии (4096 МБ RAM минус 768 МБ, недоступных минус 9 МБ буферов DMA минус 75 МБ, используемых самим ядром для кода и данных). Я не знаю, почему BIOS отображает некоторую RAM выше метки на 4 ГБ, но как точка данных, я отправляю это от ПК с 4 ГБ RAM, которой так же отобразили RAM в 0x100000000–0x130000000.
Отображение физической памяти выше 4 ГБ требует использования PAE. PAE подвергается маленькой производительности наверху (в частности, он требует больших структур данных в диспетчере памяти), таким образом, он систематически не включается. Ядро Ubuntu по умолчанию компилируется без поддержки PAE. Заставьте -generic-pae
ядро мочь получить доступ к 64 ГБ RAM.
TL, DR: Linux работает как ожидалось. Встроенное микропрограммное обеспечение не так полезно. Получите PAE-поддерживающее ядро.
Возможно, это - потому что архитектура Вашей Ubuntu является i386 (версия на 32 бита). Каков результат, когда Вы работаете uname -a
?
uname -a
... Linux DT9400 2.6.32-32-универсальный # SMP с 62 Ubuntu среда 20 апреля 21:54:21 UTC 2011 i686 GNU/Linux... Однако, поскольку я упомянул в "Обновленной информации": в моем вопросе еще 10,04 32 бита загруженная двойным образом установка показывает 3,9 ГиБ.. Обе из систем двойной загрузки были установлены с того же CD, но являются currtnly, работающим differnt ядра, и установили различные программы... BTW, это не недавний случай, Он показывал 3,2 гибибайта в течение многих месяцев..
– Peter.O
19.06.2011, 11:52
linux-image-2.6.32-32-generic-pae
, иhtop
теперь отчеты3990 MiB
– Peter.O 19.06.2011, 15:22