LINUX.ORG.RU
ФорумTalks

RAM-only система

 ,


1

2

Установка федоры с GUI занимает несколько гигабайтов. Современный консьюмерский процессор поддерживает 64 ГБ оперативы и её стоимость в общем-то совсем не запредельная. Также современные ноутбуки неплохо работают в режиме suspend.

Т.е. в целом ничего экстраординарного в том, чтобы установить дистрибутив на RAMdisk и работать без жёсткого диска нет, все технологии вполне доступны.

Естественно возникает вопрос - с чего грузиться и как перезагружаться. Ну самый простой способ это таки использовать жёсткий диск, но исключительно в момент загрузки и выключения. Также для того, чтобы избежать потери данных, можно попробовать постоянно скидывать изменённые данные на диск, но тут я уже не уверен, можно ли такое настроить в линуксе так, чтобы не скатиться к стандартной схеме.

Более интересный способ это использовать сетевое хранилище вместо диска в схеме, описанной выше. Тут уже диск не нужен и компьютер превращается в терминал.

Из плюсов - будет максимально возможная скорость работы с диском. Из минусов - диск таки будет довольно небольшой. Если у нас 64 GB оперативной памяти, то больше 48 GB на диск отдавать уже будет затруднительно.

Следующая остановка - установка ОС в кеш процессора. В тредриппере 256 MB L3 кеша. На федору с графикой не хватит, но на что-то миниатюрное и консольное, думаю, должно хватить.

★★★★★

Последнее исправление: Legioner (всего исправлений: 2)
Ответ на: комментарий от zgen

А кэш файловый тебе для чего в linux?

Кеш пустой на старте и может вытесняться данными программ. Чтобы было как я хочу, нужно при загрузке сделать что-то вроде find / -type f -exec cat {} > /dev/null и каким-то образом убрать возможность выкидывать страницы из файлового кеша.

И зачем этот гемор, когда у тебя есть SSD со скоростью доступа >3GB/s?

Да шо вы этим линейным чтением всё тычете, это вообще не интересный параметр. Это скорость с которой можно сделать cat file > /dev/null. Больше ни для чего она не пригодна. Самое интересное это однопоточное случайное чтение. Вот пример для Samsung 980 Pro: 22 000 IOPS. Для 4 KiB блоков это всего лишь 86 MiB/s.

Legioner ★★★★★
() автор топика

Упарывался таким, практического смысла нет, если есть ссд/нвме

tazhate ★★★★★
()

Из плюсов - будет максимально возможная скорость работы с диском.

Я тоже когда-то так думал, но потом увидел что это не так.

Вообще на Linux, который в отличии от винды реально даёт пользоваться своим ОЗУ после холодного пуска особой разницы между горячим пуском с диска и горячим пуском из ОЗУ не будет, потому как всё ушло в кеш, а данные можно вытаскивать на tmpfs

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от Shaman007

Как минимум, у x86 процессоров Intel есть такая фича. Часть кеша мапится и работает как ОЗУ. Используется в стандартных блобах от Intel, используется в coreboot. Если возьмёшь прошивку от более или менее свежего компа, не старше где-то лет 15, там буквально сразу кеш мапится.

i-rinat ★★★★★
()
Ответ на: комментарий от Shaman007

Что значит «всё равно что кэш отключить»? Для этого как раз и нужно кеш отключить. Просадка по производительности будет в разы. Вполне возможно, что даже в десятки раз.

Но отвечал не на сообщение о производительности, а на сообщение о невозможности адресовать кеш.

i-rinat ★★★★★
()

Лучше NVMe купить и не трахаться с возможной утерей данных.

unixnik ★★★★★
()
Ответ на: комментарий от ixrws

Ну а если это чисто спортивный интерес, то сделать можно всё что угодно, вплоть до загрузки из пожатого образа чисто в ram, а потом при выключении мержить в образ только изменения. Впрочем это тоже много где так делается, рабочих и полурабочих решений валом.

Ну практическое применение ram-диска + много ram в остатке это машина по компиляции, когда нужно очень много компилить и как можно быстрее.

В случае рэм-диска надо помнить о хорошем бесперебойнике, чтобы хватило времени скинуть из памяти.

linuxoidspb
()
Последнее исправление: linuxoidspb (всего исправлений: 1)
Ответ на: комментарий от linuxoidspb

Нет, для компиляции RAM диск не ускорит ровным счётом ничего. В самый первый момент будет преимущество, но потом всё уляжется в кеш в RAM.

lenin386 ★★★★
()
Ответ на: комментарий от darkenshvein

Самое смешное, что Линуксу «под систему» и SSD-то не особо надо. Первоначальный этап загрузки можно пережить, а дальше всё в оперативе уже будет. Это не венда, алгоритмы кеширования которой весьма загадочны.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от Shaman007

Если я не ошибаюсь, то это зависит от настройки. Когда процессор стартует, то сперва выполняется код прямо с флешки, куда зашит биос, а из памяти доступны только регистры. Затем включается кеш в качестве адресуемой памяти, и проивзодится инициализация всякого оборудования, включая основную память, и лишь затем кеш переключается в решим собственно кеша.

И если захотеть ОЧЕНЬ извратиться, то наверно можно оставить кеш, как отдельно адресуемую память, но не уверен. Правда кешем он от этого быть перестанет и DRAM память будет без кеширования

А, вижу, уже выше написали

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 3)
Ответ на: комментарий от darkenshvein

можно купить еще и DRAM накопитель с аккумулятором.

cvs-255 ★★★★★
()

Из initramfs вместо монтирования корневой ФС создаешь рамдиск (modprobe brd), копируешь в него с помощью dd блок-в-блок корневую ФС и монтируешь.

Nastishka ★★★★★
()

Следующий шаг - процессор, все регистры которого из MRAM памяти, и ОЗУ тоже MRAM. Он никогда не выключается, даже если обесточивается, и выполнение продолжается ровно с того же места, как только подаётся питание.

tiinn ★★★★★
()
Ответ на: комментарий от lenin386

надпись из VideoBIOS выводится первой не потому что оно инициализируется раньше памяти. Память к тому моменту давно вся проинициализирована и в неё считан VBIOS, который исполняется.

Вывод подбной надписи на экран происходит первым, потому что так прописано в VBIOS - это этап инициализации видяхи - вначале она сама показывает что хочет, и только потом то что её попросит система. Но это не значит, что видяха раньше памяти инициализируется

GPFault ★★
()

Естественно возникает вопрос - с чего грузиться и как перезагружаться. Ну самый простой способ это таки использовать жёсткий диск, но исключительно в момент загрузки и выключения

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

В принципе, если кому-то очень понадобится, можно наладить производство процессоров со встроенной SRAM на 256 Мб со стоимостью массового производства порядка $200/штука. Проблема в том, что большинство современных программ уже слишком привыкло к тому, что памяти очень много и ее можно жрать налево и направо. Для этого можно, например, повесить рядом SSD на 256 Гб, куда будут скидываться большие объемы данных с медленным доступом. К слову NAND флеш-память таки является более эффективным хранилищем, чем DRAM, поскольку каждая ячейка состоит из одного-единственного транзистора и нет необходимости постоянном обновлении ячеек.

Я не пойму только одного — зачем? Пролистал тред — так и не нашел ответа. Смысл x86 процессора заключается в соместимости с совместимостью, потому что в остальном классический ЦП чудовищно неэффективен и пытаться выжать последние крохи производительности из него не имеют никакого смысла — FPGA или даже ASIC в этом плане перспективнее, да и цены при заказе 10'000+ могут оказаться сильно ниже розницы, благодаря чему можно будет на один-два порядка уделать массовые ЦП по цене, производительности, энергопотреблению.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Я не пойму только одного — зачем?

Тег тупняк же. Мысли вслух. Зачем - не знаю. Например если это network backed storage, то можно грузиться с любого компьютера. Хотя такую концепцию имхо интересней реализовать в браузере, как это в jslinux сделано.

Legioner ★★★★★
() автор топика

MRAM и твоя мечта уже реальсть.

beastie ★★★★★
()
Ответ на: комментарий от Spoofing

Ты сам своим поделием пользуешься на постоянной основе?

gutaper ★★★★★
()

производительность у процессора ограничена. толку от этих 100500мб/c, если проц не сможет всё это сразу переварить?

как уже писали выше - если хороший ссд, то не будет заметно разницы

Rost ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.