Czy w ogóle można używać ubuntu bez pamięci RAM?

15

Jeśli ustawię wartość swapiness na 100 i spróbuję uruchomić system Ubuntu zainstalowany na komputerze mojego przyjaciela, który nie ma pamięci RAM, czy mogę uruchomić komputer bez Ram?

pio123498765
źródło
31
Co masz na myśli mówiąc, że komputer twojego przyjaciela nie ma pamięci RAM? Jesteś pewien, że to komputer?
terdon
5
@terdon To czajniczek .
kot

Odpowiedzi:

47

Nie. Procesor nie może wykonać kodu z wymiany. Zamiana polega na przeniesieniu zawartości pamięci RAM na dysk i innej zawartości dysku do pamięci RAM, ale wykonywanie zawsze odbywa się z pamięci RAM.

I nie, nie ma sposobu na przeniesienie kodu lub danych z dysku bezpośrednio do pamięci podręcznej procesora. Nie możesz ominąć pamięci RAM.

Nawet architektury mikrokontrolerów, które mogą wykonywać kod bezpośrednio z pamięci flash NOR, wymagają pamięci RAM dla stosu, przynajmniej niektórych wbudowanych pamięci SRAM, tak jak niektóre kontrolery.

Philippos
źródło
1
@ LưuVĩnhPhúc Masz rację. Nadal jestem przyzwyczajony do nazywania tych SoC z rdzeniami ARM Cortex-A „mikrokontrolerami”, chociaż może to być mylące. Te mają MMU, mogą uruchamiać Linuksa i zazwyczaj mają również wewnętrzną pamięć SRAM (potrzebną do kodu rozruchowego), ale nie sądzę, że mogą one wykonywać kod bezpośrednio z pamięci flash. Cóż, OP wydaje się w każdym razie myśleć o zwykłym komputerze.
Philippos,
1
Myślę, że S390 Linux może wykonywać kod bezpośrednio z dysku twardego. Ta funkcja została dodana, ponieważ S390 jest 31-bitową architekturą, a udostępnienie każdego bajtu dla danych zamiast kodu to wygrana. Mógłbym jednak źle pamiętać, ale zestaw łat był niezapomniany, ponieważ wyróżniał się tym, że był cenny zarówno dla komputerów mainframe, jak i mikrokontrolerów (tj. Dwóch krańcowych końców skalowania Linuksa), ale nie interesował się niczym pośrednim.
Jörg W Mittag
2
Ach, znalazłem, to funkcja XIP (eXecute In Place). Oczywiście nadal potrzebujesz pamięci RAM na dane. Chodzi tylko o kod.
Jörg W Mittag
1
@rackandboneman Jako programista wbudowany zrobiłem wszystko, od gołego asemblera na 8-bitowych kontrolerach przez RTOS do wbudowanego Linuxa. Najmniej pamięci, jaką spotkałem, to ATtiny z pamięcią na trzy stosy adresów zwrotnych. Bez tego nie byłoby nawet przeszkód! Teraz nie kłóć się, czy ta pamięć stosu jest RAM, czy rejestruje ... (-:
Philippos
1
@Filippos, dlaczego miałbym się kłócić - mówimy to samo.
rackandboneman
7

/electronics//a/311839/111920 zawiera link http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2, który opisuje proces rozruchu nowoczesnego procesora Intel z niesamowitymi szczegółami.

TL; DR: Nie. Rzeczywiście podczas rozruchu jest faza, w której układy pamięci RAM nie są używane, a procesor działa tylko z wewnętrzną pamięcią podręczną działającą jako prowizoryczna pamięć RAM. Ale to bardzo wcześnie w procesie ładowania systemu BIOS i jedną z pierwszych rzeczy, które robi BIOS, jest inicjalizacja pamięci RAM, aby móc z niej korzystać. Działający tam kod maszynowy jest bardzo wyspecjalizowany, ręcznie wykonany.

Po tym bardzo wczesnym etapie do wszystkiego potrzebna jest pamięć RAM. Oznacza to, że nie będziesz w stanie wejść do BIOS-u, uzyskać sygnału wideo lub, co gorsza, rozruchu z dowolnego nośnika bez pamięci RAM.

AnoE
źródło