Это "non-free" не означает ли, что код для этих firmware может быть и закрытым?
Это прошивки различных железяк (сетевых адаптеров, Wi-Fi и т. д.). Non-free прошивки как правило закрыты и распространяются производителями в виде готовых бинарников. Но без них та или иная железяка может не заработать.
Прошивка или драйвер? Я тоже слово firmware понимаю как прошивка, но разве ОС меняет прошивки без инициирования или подтверждения действия пользователем? Но не важно, прошивка или драйвер, по-моему такая заточенная на открытость и безопасность система должна предупреждать и требовать подтверждения перед установкой проприетарного драйвера. Может в Tails так и есть, не знаю.
Прошивка она так и называется, потому что микропрограмма прошивается в EPROM, хранится там неизменной до следующей прошивки или по другому firmware update. Инструкции firmware делают сетевые карты, диски, BIOS и вообще все мыслимое железо тем, что оно есть, т.е. заставляет работать так, как ему положено. В Линуксе как впрочем и в любой другой ОS никаких прошивок нет, а есть драйвера.
Драйвер это программа которая позволяет работать данной операционной системе с конкретным железом, это по большому счету ее интерфейс к железякам . OS оперирует с драйверами а не с прошивками.
Драйвера для работы системы загружаются в RАМ и хранятся там до того пока не станут ненужными системе, или до выключения питания. Firmware зашито как уже было сказано в EPROM и хранится там даже после выключения питания.
"Дьявол кроется в деталях" - терминология Линукса несколько запутана. Она называет firmware (или по вашему прошивкой) некоторые микропрограммы которые подгружается в ROM некоторых контролеров для обеспечения работы соответствующих железяк на время работы операционной системы. Но это не та "прошивка", что является на самом деле прошивкой.