Jestem w klasie systemów operacyjnych. Zbliżając się, musimy popracować nad modyfikacją kodu jądra. Radzono nam, aby nie używać komputerów osobistych do testowania (przypuszczam, że to oznacza instalację), ponieważ moglibyśmy napisać zły kod i napisać w innym miejscu, w którym nie powinniśmy. Dla bezpieczeństwa mamy dostęp do maszyny w laboratorium.
Gdybym miał przetestować na maszynie wirtualnej, czy chroniłoby to system hosta przed potencjalnie niebezpiecznym kodem? Naprawdę nie chcę utknąć w systemie w szkole, a migawki będą przydatne.
Jeśli nadal istnieje wysokie ryzyko, jakieś sugestie dotyczące tego, co muszę rozważyć, aby przeprowadzić bezpieczny test?
Na początek będziemy używać czegoś takiego jak linuxmint. Jeśli ktoś chce zobaczyć, co będzie w bieżącym projekcie: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf
źródło
Odpowiedzi:
Główne zagrożenia związane z tworzeniem modułów jądra polegają na tym, że można znacznie łatwiej zawiesić system niż przy użyciu zwykłego kodu, i prawdopodobnie okaże się, że czasami tworzone są moduły, których nie można zwolnić, co oznacza, że konieczne będzie ponowne uruchomienie komputera w celu ponownego załadowania je po naprawieniu tego, co jest nie tak.
Tak, VM nadaje się do tego rodzaju prac rozwojowych i tego używam, gdy pracuję nad modułami jądra. Maszyna wirtualna ładnie izoluje środowisko testowe od działającego systemu.
Jeśli zamierzasz pobierać i przywracać migawki, powinieneś trzymać swój kod źródłowy w repozytorium kontroli wersji poza maszyną wirtualną, aby nie przypadkowo stracić najnowszego kodu po odrzuceniu bieżącego stanu maszyny wirtualnej.
źródło
Zakładając, że nie próbujesz napisać sterownika dla rzeczywistego sprzętu, jest to świetny sposób na pracę z modułami. Możesz wykonać migawkę działającego systemu, a jeśli coś wysadzisz, po prostu wróć do migawki.
Jeśli możesz, zrób pełny duplikat maszyny wirtualnej, na wypadek, gdyby system migawkowy był dziwniejszy niż myślę. :)
źródło