Чи можливо взагалі використовувати ubuntu без оперативної пам’яті?


15

Якщо я встановив значення swappiness на 100 і спробую завантажувати встановлений ubuntu harddrive на комп'ютері мого друга, який не має оперативної пам’яті, чи можу я взагалі завантажувати комп'ютер без Ram?



31
Що ви маєте на увазі, що на комп'ютері вашого друга немає оперативної пам'яті? Ви впевнені, що це комп'ютер?
тердон

5
@terdon Це чайник .
кіт

Відповіді:


47

Ні. ЦП не може виконувати код під час заміни. Заміна працює, переміщуючи вміст ОЗУ на диск та інший вміст диска в ОЗУ, але виконання завжди відбувається з ОЗУ.

І ні, немає способу перенести код або дані з диска безпосередньо в кеші процесора. Ви не можете обійти ОЗП.

Навіть архітектури мікроконтролерів, які можуть виконувати код безпосередньо з флеш-пам’яті NOR, потребують оперативної пам’яті для стека, принаймні деяких вбудованих SRAM, як це мають деякі контролери.


1
@ LưuVĩnhPhúc Ви праві. Я все ще звик називати ці SoC з ядрами ARM Cortex-A "мікроконтролерами", хоча це може ввести в оману. У них є MMU, може працювати Linux і, як правило, також є внутрішня SRAM (необхідна для завантажувального коду), але я не думаю, що вони можуть виконувати код безпосередньо з флеш-пам'яті. Що ж, ОП, здається, так чи інакше думає про звичайний ПК.
Філіппос

1
Я думаю, що S390 Linux може виконувати код безпосередньо з жорсткого диска. Ця функція була додана, оскільки S390 - це 31-бітова архітектура, а надання байту для даних замість коду є виграшним. Я можу помилково згадати, але набір патчів був незабутнім, оскільки він мав унікальну відмінність того, що він є цінним як для мейнфреймів, так і для мікроконтролерів (тобто двох крайніх кінців масштабування Linux), але не цікавить нічого середнього.
Йорг W Міттаг

2
Ах, знайшли, це особливість XIP (eXecute In Place). Очевидно, що вам все ще потрібна оперативна пам’ять для даних. Йдеться лише про код.
Йорг W Міттаг

1
@rackandboneman Як вбудований розробник, я робив усе від голого асемблера на 8-бітових контролерах через RTOS до вбудованого Linux. Найменше пам'яті, яку я зустрів, - це ATtiny з пам'яттю для трьох стеків зворотних адрес. Без цього ви навіть не могли перерватись! Тепер, будь ласка, не сперечайтеся, чи пам'ять цього стека є оперативної пам’яті чи реєструється ... (-:
Philippos

1
@Philippos, чому б я заперечував - ми говоримо те саме.
rackandboneman

7

/electronics//a/311839/111920 містить посилання http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2, яке описує завантажувальний процес сучасного процесора Intel із неприємними деталями.

TL; DR: Ні. Насправді є фаза під час завантаження, де чіпи оперативної пам’яті не використовуються, а процесор працює лише з внутрішнім кешем, який функціонує як імпровізована ОЗУ. Але це дуже рано в процесі завантаження BIOS, і одне з перших, що BIOS робить - ініціалізувати ОЗУ, щоб мати можливість ним користуватися. Машиновий код, який працює там, дуже спеціалізований, дуже ручний.

Після цього дуже раннього етапу оперативна пам'ять потрібна для всього. Це означає, що ви навіть не зможете зайти в BIOS, отримати відеосигнал або набагато менше завантажуватися з будь-якого середовища без RAM.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.