Я имею в виду учебное пособие BrokenThorn по разработке ОС, и в настоящее время я нахожусь в главе о написании загрузчика первого этапа и загрузке второго этапа.Имя файла загрузчика второго этапа не работает с нижним регистром
Я написал весь код и столкнулся с авариями при запуске его с помощью qemu. После некоторой отладки я узнал, что проблема связана с именем загрузчика второго этапа, который я читаю, перебирая записи корневого каталога.
Если я использую имя файла для второго этапа как INITKRNL.BIN, все работает нормально. Но если я использую initkrnl.bin (при этом разница будет только в случае имени), он сработает.
Я также напечатал имя, которое читается из корневого каталога. Для имени верхнего регистра он читает только INITKRNL.BIN. Для имени нижнего регистра он читает несколько букв имени и некоторых случайных символов.
Почему вопрос с именем файла имеет значение, и в чем причина этой разницы?
Примечание: Я использую Ubuntu 13.04 в качестве среды разработки. Я отформатирую дискету с файловой системой VFAT с помощью mkfs.vfat
.
Я не знаю, в какой среде вы используете это, но не большинство файловых систем в наши дни чувствительны к регистру? (даже NTFS, хотя API Win32 предпочитает рассматривать его как нечувствительный к регистру). – Michael
@Michael: Linux. Я загружаю дискету, отформатированную в файловой системе VFAT. – Cygnus
FAT12 хранит имя файла в верхнем регистре, а '.' не сохраняется (пробел добавлен до 8, если «имя» меньше 8). –