ROM

Pamięć tylko do odczytu, której zawartość zapisuje się na etapie produkcji i zwykle nie da się jej zmienić. Przechowuje stały kod, np. firmware.

ROM (Read-Only Memory, pamięć tylko do odczytu) to rodzaj pamięci, której zawartość zapisuje się zwykle na etapie produkcji układu i której w normalnym użyciu nie da się zmienić ani skasować. W przeciwieństwie do RAM, ROM jest pamięcią nieulotną — dane przeżywają wyłączenie zasilania. Dlatego trzyma się w niej rzeczy, które muszą po prostu zawsze być na miejscu, gdy urządzenie wstaje do życia.

Do czego to służy

Kiedy włączasz komputer, telefon czy router, procesor potrzebuje jakiegoś kodu od razu — zanim cokolwiek wczyta się z dysku. Ten startowy kod (firmware, np. dawny BIOS) siedzi właśnie w ROM. Pamięć ta przechowuje też tablice znaków, mikrokod albo stałe parametry urządzenia, czyli dane, które producent ustala raz i nie chce, żeby przypadkowy program je nadpisał.

W praktyce klasyczny, niezmienny ROM jest dziś rzadkością. Częściej spotkasz jego „elastycznych kuzynów”: PROM (zapisywany jednorazowo przez użytkownika), EPROM (kasowany światłem UV), EEPROM oraz flash (kasowane i zapisywane elektrycznie). To dlatego możesz aktualizować firmware — fizycznie to zwykle pamięć flash, ale z rozpędu nazywana bywa „ROM-em”.

Przykład z praktyki

Jeśli grzebałeś w Androidzie, na pewno widziałeś określenie „custom ROM” — np. LineageOS. To cały obraz systemu wgrywany w pamięć flash telefonu narzędziem typu fastboot, np.:

fastboot flash system lineage.img

Po stronie sprzętowej spotkasz EEPROM przy odczycie z magistrali I2C — moduł kości RAM trzyma swoje parametry w kostce SPD, którą podejrzysz poleceniem decode-dimms w Linuksie. Niby „read-only”, a jednak da się odczytać i czasem przeprogramować.

Częste mity

Pierwszy: „ROM = dysk twardy”. Nie. ROM to mała pamięć na firmware, a nie magazyn na twoje pliki. W telefonach marketingowcy nazywają „pamięcią ROM” wbudowany storage, co tylko miesza ludziom w głowach.

Drugi: „ROM-u nie da się nigdy zmienić”. Prawdziwy maskowany ROM faktycznie jest niezmienny, ale większość dzisiejszych układów to flash/EEPROM, które aktualizujesz właśnie po to, żeby łatać błędy i dziury bezpieczeństwa. Stąd zresztą bierze się ryzyko: nieudany flash firmware potrafi zamienić urządzenie w cegłę (brick).

Pojęcia powiązane

RAM, pamięć nieulotna, firmware, BIOS/UEFI, EEPROM, pamięć flash, PROM, EPROM, mikrokod.