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?
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.
@ 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.
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.
Odpowiedzi:
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.
źródło
/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.
źródło