Read-only memory (ROM) is a type of non-volatile storage that permanently stores data without requiring power. There are several types of ROM, including ROM, PROM, EPROM, EEPROM, and flash memory. ROM is programmed during manufacturing and cannot be changed, while PROM, EPROM, and EEPROM can be programmed by manufacturers or users and reprogrammed in different ways - PROM through special devices, EPROM through ultraviolet erasure, and EEPROM electrically. Flash memory is a type of EEPROM that allows data to be written and erased electronically and in blocks.