LINUX.ORG.RU
ФорумTalks

А как бы сделать больший линух чем линух?

 ,


0

1

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

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

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

Не будет никакой памяти процесса, тот небольшой статический объём - на шпилькирегистры

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

Ну, технически можно сделать запрет на malloc как таковой, почему нет.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от DumLemming

Должен быть DMA во все поля. Дабы можно было бы писать на диск напрямую из процессора минуя оперативку, или писать из оперативки минуя процессор, читать тоже. А ещё любая ФС раком встанет если просто всё оставить как есть и программы будут использовать файлы прозрачно как кучу, а не как смену подхода когда ты сразу форматированно пишешь что-то и также читаешь. Тут сам подход меняется, не выделить массив размером в N структур для записи, а просто записать в файл данные в формате и нужной структуре сразу. Но тут, блокировки нужны и прочие проблемы вылезут, но в целом можно. Ждём от тебя программу которая использует дисковые операции для всего и вся =)

LINUX-ORG-RU ★★★★★
()

Да это и сейчас можно - делаешь библиотеку в которой malloc и другие будут хранить данные в файлах или как хочешь, суёшь её в /etc/ld.so.preload и любуешься результатом.

vtVitus ★★★★★
()

Скачай эмулятор pdp-11 и запусти на ней rt-11 single job. Это оно и есть. Программы - дампы памяти.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)

И что можно будет делать на таком компе? Играть в косынку?

BceM_IIpuBeT ★★☆☆☆
()

Уже есть. Просто вызывай вместо malloc mmap передавая дескриптор файла. Работать будет, но по сути как отдельный файл подкачки на каждый процесс вместо общего на всю систему. Не уверен насколько часто такой микроменеджмент будет давать что-то.

KivApple ★★★★★
()

Ты хочешь The Machine изобрести? Он уже есть. Там вообще нет оперативки.

xwicked ★★☆
()

Это получится тот же своп, только по другому называется

goingUp ★★★★★
()

Больший линух чем линух — это написать сервис который будет ломать APİ & ABİ — прямо в рантайме. А во всех хедерах надо рандомно, при каждой компиляции, менять местами аргументы в декларациях. Вот тогда будет настоящий прогресс и инновации.

thunar ★★★★★
()

Зачем кэшировать файлы, если можно просто работать с рамдиском?

Tark ★★
()

Ты вот смеёшься, сейчас и так ПО как сервис везде и во все поля с подпиской, а завтра будет ПО где вместо оперативки HTTP вебсокеты, и программа всё своё состояние хранит на удалённом сервере, а у тебя чисто код и оперативки ваще нету. Хочешь в GIMPе открыть картинку побольше? Выбери тариф покруче! ПЗУ у тебя если тоже нету, подключаешь облако для этого. Зато процессор у тебя будет RISC-V полностью открытый и свободный и все спеки на материнку! За исключением DMA и сетевой карты.

LINUX-ORG-RU ★★★★★
()

Это все полумеры какие-то. Обращаю ваше внимание на то, что в человеческом мозгу и долговременная, и кратковременная память и как таковое «вычисление» осуществляется одинаковыми нейронами, то есть вообще нету разницы между ЦПУ, диском и ОЗУ. Вот это я понимаю - архитектура.

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

в человеческом мозгу… «вычисление» осуществляется одинаковыми нейронами

Даже левое и правое полушария думают по-разному, не говоря уже о спинном мозге или глазах, как части мозга.

quickquest ★★★★★
()

Файлы кешировать. Всё. Есть. Файл. Никакого свопа не нужно

Ты только что описал своп и map, поздравляю

no-dashi-v2 ★★★
()
Ответ на: комментарий от FishHook

они построены на одной и той же элементной базе

«Мелкосхемы» построены из почти одинаковых n-p переходов, формирующих функционально разные транзисторы ©.
Аналогично, по мере развития мозга происходит необратимая специализация элементной базы нейронов ©.

quickquest ★★★★★
()

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

На самом деле проблема не в этом. Насколько я понял, всякая блоатварь типа браузеров или поделий на электроне или жабе пытается выяснить сколько в системе всего физической памяти и старательно пытается выжрать (застолбить за собой) большую часть оной. Например браузер на машине с 8Гб через некоторое время после запуска выжрет в 2 раза меньше памяти чем браузер на машине с 16Гб при прочих равных (количество и объём открытых вкладок). Браузер в итоге, конечно сожрёт всю имеющуюся память, но это будет позже. Единственный способ бороться с этим - запускать браузер в виртуалке, но она сама сразу сожрёт весь выделенный браузеру кусок.

Если запустить браузер на машине с 16Гб под firejail с rlimit-as 8g то браузер всё равно будет пытаться выжрать свои 3/4 от 16Гб и его дочерние процессы начнут просто падать из-за невозможности получить больше 8Гб от системы. Такой себе вариант, при том, что на машине с 8Гб оно вполне себе удовлетворяется 3/4 от 8Гб без падений.

То же самое может относится и к другому софту.

Наилучшее решение этого - ковырнуть ядро (proc и sys) и всякие ACPI штуки чтобы можно было для любого процесса или контейнера подставить фиктивные данные о физической памяти в машине.

Выделение приватного свопа процессу приведёт лишь к тому, что физическая память забьётся буферами приватного свопа в том же объёме, а вовсе не к сокращению ужора памяти, ибо блоатварь обнаружила что в машине есть 8/16/32Гб физической памяти и она хочет их все хоть тушкой, хоть чучелком, поэтому смысла в таком подходе нету.

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

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

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)

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

И какую именно проблему это решает?

windows10 ★★★★★
()

А большая ли разница, будешь ты ммаппить файл или анонимную память?
Я кстати такое делал - аллокатор через файлы для систем, где нет свопа. Как оказалось - это сломало многопоточные приложения, то ли мьютексы, то ои ещё что-то на замапленном файле не работали

mittorn ★★★★★
()

Файлы кешировать. Всё. Есть. Файл. Никакого свопа не нужно

Если файлы будут лежать в tempfs, то я не против.

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

Разве? При пропадании питания состояние остаётся на месте, только бед-блоки появляются

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

А зачем кешировать в файлы, если можно кешировать в файл и назвать его своп-файл?

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

одинаковыми нейронами

Сочувствую, братан

buddhist ★★★★★
()

А ещё была такая макось до десятой версии с программой ram doubler.

Aceler ★★★★★
()

Никто не мешает тебе написать свой аллокатор и посмотреть как это будет работать.

Алсо, пишу этот пост с ОС, где реально всё есть файл.

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

Дискету до дырки затрёшь.

Насколько я помню, Турбо Си в процессе работы свопился на дискету. Те версии, которые влезали на дискету.

question4 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)