.PIF
Program Information File | |
---|---|
Расширение |
.pif |
MIME-тип | application/x-msdos-program |
Разработчик | IBM, Quarterdeck, Microsoft |
Опубликован | ≈1984 |
Тип формата | Ярлык DOS-программы |
Program Information File (*.pif) — небольшой файл, показывающий, как запустить DOS-программу в многозадачной операционной системе. В Windows 95 и выше эти файлы служат ярлыками на DOS-программы.
DOS-программа рассчитывает, что она полностью управляет доступной ей памятью и аппаратным обеспечением. В многозадачных ОС это не так: в одной памяти сосуществуют много разных программ, часть аппаратного обеспечения эмулируется средствами ОС, важная клавиша DOS-программы может совпадать с таковой у Windows. Потому приходится командовать многозадачной системе, как эмулировать DOS.
PIF-файлы появились в IBM TopView, потом — в проектах Digital Research вроде Concurrent DOS (причём у них можно было как держать файл информации в том же каталоге, так и внедрять информацию прямо в EXE-файл). У них файлы переняли Quarterdeck DESQview и Microsoft Windows.
В Microsoft Windows
[править | править код]В Windows до 3.11 настройкой PIF занималась особая программа, редактор PIF[1]. Начиная с 95 это делает Проводник[2].
Сейчас PIF-файлы используются крайне редко из-за устаревания DOS. Тем не менее, 32-битные версии Windows всё ещё запускают DOS-программы — а значит, используют PIF-файлы. Ярлык рабочего стола для DOS-программы — это именно PIF-файл (как *.lnk для Windows-программы и *.url для веб-страницы).
Windows считает PIF-файлы «псевдоисполняемыми» (как *.bat или *.lnk). Они не ассоциированы ни с какой программой, функция Проводника ShellExecute
[3] («запустить по ассоциации»[4]) опознаёт формат и, если это PIF, запускает нужную программу с нужными настройками, если Portable Executable — запускает напрямую и т. д.[5] Из-за такой архитектуры через PIF можно распространять компьютерные вирусы[6][3][7].
Изначально PIF был двоичным файлом собственного формата. В Windows 3.0[8] поступили так: первые 369 байт[8] были от DESQView, после них — заголовок и простой блочный формат; Windows читала только те блоки, которые ей нужны. Таким образом, PIF’ы стали расширяемыми и понятными как DESQView, так и Windows. Блочный формат позволил разным версиям Windows редактировать PIF’ы и не трогать настройки других версий[9]. Windows 3.1 может работать с PIF’ами появившейся много лет спустя Windows 2000 и не терять её настроек.
Настройки, существующие в PIF
[править | править код]Настройки PIF’а как ярлыка программы[8].
- Командная строка программы.
- Текущий каталог программы.
- Горячая клавиша запуска.
- Название и значок программы (они же будут заголовком и значком окна).
Настройки, связанные с тем, что однозадачная программа запускается в многозадачной среде[8].
- Сколько дать программе простой памяти, XMS, EMS и DPMI (минимум и рекомендуемое количество).
- Нужно ли приостанавливать работу всех остальных программ, когда работает данная.
- Приоритет исполнения в фоне и на переднем плане.
- Должны ли действовать клавиши Alt Tab ↹, Alt Esc и другие.
- Собранные специально для этой программы CONFIG.SYS и AUTOEXEC.BAT.
- Нужно ли давать программе прямой доступ к определённому аппаратному обеспечению (видеоплате, клавиатуре, COM-портам).
- Принципы эмуляции таймера.
- Нужно ли выгружать Windows и переходить в настоящую DOS.
Кроме того, Windows умеет запускать DOS-программы в окнах, поэтому есть и настройки, связанные с оконной оболочкой[8].
- Что делать, если пользователь попытался закрыть окно программы: закрыть сразу или спросить пользователя.
- Методика вставки информации из буфера обмена в программу.
- Принципы эмуляции видеопамяти, дра́йвера мыши.
- Настройки окна вроде положения и установленного шрифта.
Настройки, связанные с переходным периодом, когда DOS-программы разрабатывают с учётом Windows[8].
- Обеспечить предельно похожую на DOS среду исполнения, чтобы программа не подозревала, что она под Windows.
Часть из этих настроек существует только в отдельных версиях Windows. Не все из них редактируются Проводником.
Примечания
[править | править код]- ↑ 10.11. Как создавать pif-файлы . Дата обращения: 18 ноября 2017. Архивировано 6 ноября 2017 года.
- ↑ Архивированная копия (англ.). Дата обращения: 3 декабря 2018. Архивировано из оригинала 24 декабря 2017 года.
- ↑ 1 2 PIF File Extension - What is a .pif file and how do I open it? (англ.). Дата обращения: 11 января 2018. Архивировано 12 января 2018 года.
- ↑ Документация по ShellExecute (англ.). Дата обращения: 3 февраля 2018. Архивировано 10 января 2018 года.
- ↑ Можно проверить и собственноручно: переименовать любой
.exe
в.pif
. На Windows 10 x64 19H2 запустилось — при том, что DOS-программ она не запускает. - ↑ Формат файла (расширение) PIF. Чем открыть PIF? Дата обращения: 11 января 2018. Архивировано 11 января 2018 года.
- ↑ Архивированная копия . Дата обращения: 11 января 2018. Архивировано 12 января 2018 года.
- ↑ 1 2 3 4 5 6 The PIF file format in various Windows versions (англ.). Дата обращения: 18 ноября 2017. Архивировано 8 ноября 2017 года.
- ↑ Undocumented Corner | Dr Dobb's (англ.). Дата обращения: 18 ноября 2017. Архивировано 1 декабря 2017 года.