Что произошло с моей RAM?

Существует переключатель для passwd,-e. Из страницы справочника (человек passwd):

- e, - истекают, Сразу истекают пароль учетных записей. Это в действительности может вынудить пользователя измениться, его пароль в пользователях затем входят в систему.

Так

 sudo passwd -e LOGIN 

должен сделать это.

Из комментариев я знаю, что существует больше изменения, чем, что я ожидал. Таким образом, это - установка Xubuntu 10.04, и это, что file отчеты:

file $(which passwd)
/usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
6
19.06.2013, 19:56
2 ответа

Вы действительно не должны задавать два вопроса в одном, но...

Вопрос 1

Часть той памяти используется для самого кода ядра, некоторые резервируются и т.д. Ядро выкладывает его в сообщениях начальной загрузки системы:

[    0.000000] Memory: 6106920k/7340032k available (3633k kernel code, 1057736k absent, 175376k reserved, 3104k data, 616k init)

"Отсутствующая" строка является памятью, которая не является на самом деле там (этой машине в настоящее время устанавливали 6 ГиБ RAM). Ядро также выкладывает карту распределения памяти (это находится ранее в сообщениях загрузки):

[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e2c00-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bf77ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bf780000-0x00000000bf797fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bf798000-0x00000000bf7d9fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bf7da000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe00000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000001bfffffff] usable

Ядро затем делает различный fixups к той карте, обычно резервируя больше памяти. Тем более, что драйверы загружаются.

Вопрос 2

Разделение ядра/пользователя имеет виртуальное адресное пространство, не память. Его в значительной степени не важный на 64-разрядном поле, потому что существует такое адресное пространство, чтобы распространяться вокруг.

На 32-разрядном поле виртуальные адреса 0x00000000–0xBFFFFFFF использовались для пользовательского адресного пространства. 0xC0000000–0xFFFFFFFF использовались ядром (это 3:1 разделение, другие опции, включенные 2:2 разделение. Обратите внимание, что те числа являются гигабайтами, таким образом, это 2:2 не 1:1). Виртуальные адреса являются определенными для процесса, также (каждый процесс может иметь страницу в 0x00001000, и это - другая страница).

Но виртуальный адрес не соответствует байту памяти. Это может быть поддержано в основном четырьмя вещами:

  1. Ничего. Страница не используется. Попытайтесь получить доступ к нему, получить segfault.
  2. Физическая RAM. MMU переводит виртуальный адрес в некоторый физический адрес, который на самом деле соответствует конденсаторам на DIMM где-нибудь.
  3. Подкачка (или файл с отображенной памятью). При доступе к этому будет отсутствие страницы, и ядро приостановит процесс, в то время как это считывает данные в память (и возможно пишет другие данные в диск, для создания места). Затем ядро обновляет таблицы страниц, превращая это в случай № 2.
  4. Нулевая страница. Это - недавно выделенная страница, которая еще не использовалась. Когда это будет, ядро найдет страницу физической памяти (возможно выгружающий другой материал), заполнит его нулями (для безопасности), и затем это - случай № 2.

Прозрачные огромные страницы делают больше случаев. Там, вероятно, несколько менее - важные, которые я забыл, также...

Так или иначе моя 64-разрядная микросхема имеет 48-разрядный размер виртуального адреса. Я не уверен, что разделяет использование ядра, но даже если его половина, это составляет 47 битов пространства, хорошо сверх 36-разрядного размера физического адреса. И 131 072 гибибайта RAM являются слишком дорогими... (И, помните, когда это становится более дешевым, существует много битов, оставленных в 64, будущие процессоры, вероятно, просто позволят больше из них).

9
27.01.2020, 20:23
  • 1
    я никогда не замечал a nnnk absent в строке Памяти. Это является особенным для Ваших аппаратных средств? –  ott-- 19.06.2013, 19:40
  • 2
    @ott - Мой - довольно стандартное поле Intel i7. Это, вероятно, только существует, потому что я имею> 4 ГиБ RAM (я предположил бы его должное к пространству PCI), –  derobert 19.06.2013, 23:49
  • 3
    @derobert спасибо за объяснение, можно ли подтвердить это из 7340032k, как это может стать 6106920k. 7340032k-6106920k=1233112k. Даже если мы добавляем (3633k код ядра, + 1057736k отсутствующий, + 175376k зарезервированный, + 3104k данные, + 616k init) и вычитаем его из 7340032k существует все еще различие, может Вы подтверждать –  learner 08.07.2013, 17:12
  • 4
    Это помогает много в сочетании с jobs -p ---------121 общее количество--------140141----@learner - отсутствующий - зарезервированный = доступный. –  derobert 08.07.2013, 18:27

Аппаратное резервирование поднимет небольшое количество RAM, особенно если у Вас будет встроенная видеокарта, которая использует некоторую RAM для ее собственных операций. Это происходит со всеми операционными системами.

3
27.01.2020, 20:23
  • 1
    , который я даже попробовал в virual среде, но все еще существует различие, я надеюсь, что аппаратное ограничение не будет влиять в случае виртуальной среды. –  learner 19.06.2013, 18:38
  • 2
    @learner, работающее в виртуальной среде, должно связаться с виртуальным аппаратным обеспечением точно так же, как в невиртуальном случае. Должна быть зона в памяти для программного обеспечения и аппаратных средств для обмена данными. Та память должна прибыть из куда-нибудь — RAM на устройстве или RAM материнской платы для физического устройства, память VM для виртуального устройства. –  Gilles 'SO- stop being evil' 20.06.2013, 02:35
  • 3
    память, используемую встроенной видеокартой, поскольку об "общей памяти" сообщают как "украденная память" в dmesg | grep stolen. Существуют некоторые другие типы зарезервированной памяти также, как ответ derobert объясняет. –  tanius 20.08.2016, 21:14

Теги

Похожие вопросы