Ошибка Busybox при загрузке [закрыта]

Здесь нет 100% черного или белого ответа.

Обычно Linux не полагается на имена файлов (и расширения файлов, то есть часть имени файла после обычно последнего периода) и вместо этого определяет тип файла, исследуя первые несколько байтов его содержимого и сравнивая это со списком известных магических чисел.

Например, все файлы изображений Bitmap (обычно с расширением имени .bmp) должны начинаться с букв BM в первых двух байтах. Скрипты на большинстве языков сценариев, таких как Bash, Python, Perl, AWK и т. Д. (В основном все, что относится к строкам, начинающимся с # как комментарий), могут содержать shebang, как #!/bin/bash, как первая строка. Этот специальный комментарий указывает системе, с помощью которой приложение открывает файл.

Так что обычно операционная система полагается на содержимое файла, а не на его имя, чтобы определить тип файла, но заявив, что расширения файлов никогда не нужны Linux - это только половина правды.

Приложения могут, конечно, реализовать свои проверки файлов, но они хотят, включая проверку имени файла и расширения. Примером может служить Eye of Gnome (eog, стандартный просмотрщик изображений), который определяет формат изображения с помощью расширения файла и выдает ошибку, если он не соответствует содержимому. Будет ли это ошибка или функция может обсуждаться ...

Однако даже некоторые части операционной системы полагаются на расширения имен файлов, например. при разборе файлов вашего программного обеспечения в файле /etc/apt/sources.list.d/ - только файлы с расширением *.list получают разобранные все остальные игнорируются. Возможно, это не в основном используется для определения типа файла здесь, а для включения / отключения парсинга некоторых файлов, но это все еще расширение файла, которое влияет на то, как система обрабатывает файл.

И, конечно, пользователь-пользователь большая прибыль от расширений файлов, так как это делает тип файла очевидным, а также позволяет использовать несколько файлов с тем же базовым именем и разными расширениями, как site.html, site.php, site.js, site.css и т. д. Недостаток, конечно, это расширение файла и фактический тип / содержимое файла необязательно должны совпадать.

Кроме того, это необходимо для межплатформенной совместимости, например, Windows не будет знать, что делать с файлом readme, но только readme.txt.

2
задан 11 October 2011 в 21:08

0 ответов

Другие вопросы по тегам:

Похожие вопросы: