підсистема POSIX
POSIX, назва якої є абревіатурою від «portable operating system interface based on UNIX» (стерпний інтерфейс операційної системи на основі UNIX), - це сукупність міжнародних стандартів на інтерфейси операційних систем типу UNIX. Стандарти POSIX стимулювали виробників підтримувати сумісність реалізованих ними UNIX-подібних інтерфейсів, тим самим дозволяючи програмістам легко переносити свої додатки між системами.
Оскільки сумісність з POSIX. 1 була однією з обов'язкових цілей, в Windows включена необхідна базова підтримка підсистеми POSIX1 - наприклад, функція fork, реалізована у виконавчій системі Windows, і підтримка файлової системою Windows жорстких файлових зв'язків (hard file links). Однак POSIX.l определяетлішь обмежений набір сервісів (управління процесами, взаємодія між процесами, простий символьний введення-виведення і т. Д.), І тому підсистема POSIX в Windows не є повноцінною середовищем програмування. Так як виклик функцій з різних підсистем Windows неможливий, набір функцій, доступний додатків POSIX за замовчуванням, строго обмежений сервісами, які визначаються POSIX1. Сенс цих обмежень в наступному: додаток POSIX не може створити потік або вікно в Windows, а також використовувати RPC або сокети.
Ця покращена підсистема POSIX реально допомагає переносити UNIX-додатки в Windows. Однак, оскільки ці програми все одно пов'язані з виконуваними файлами POSIX, Windows-функції їм недоступні. Щоб UNIX-додатки, що переносяться в Windows, могли використовувати Windows-функції, потрібно придбати спеціальні пакети для перенесення UNIX-програм в Windows, подібні продуктам MKS Toolkit, розроблені компанією Mortice Kern Systems Inc. (Www.mkssoJtware.com). Тоді UNIX-додатки можна перекомпіліровать і заново зібрати виконувані файли Windows і почати поступовий перехід на «рідні» Windows-функції.
ЕКСПЕРИМЕНТ: спостерігаємо старт підсистеми POSIX
1. Відкрийте вікно командного рядка.
2. Запуск Process Explorer і переконайтеся, що підсистема POSIX ще не запущена (т. Е. Процесу Psxss.exe в системі немає). Також переконайтеся, що Process Explorer відображає список процесів як дерево (натисніть Ctrl + T).
4. Поверніться в Process Explorer і зверніть увагу на новий процес Psxss.exe, що є дочірнім процесом Smss.exe (який в залежності від обраного інтервалу підсвічування може якийсь час залишатися виділеним як новий процес).
Для компіляції і збірки додатку POSIX в Windows потрібні заголовки та бібліотеки POSIX з Platform SDK. Виконувані файли POSIX зв'язуються з бібліотекою підсистеми POSIX, Psxdll.dll. Оскільки Windows за замовчуванням налаштована на запуск підсистеми POSIX тільки на вимогу, при першому запуску програми POSIX повинен запуститися процес підсистеми POSIX (Psxss.exe). Його виконання триває до перезавантаження системи. (Якщо ви завершите процес підсистеми POSIX, запуск додатків POSIX стане неможливий до наступного перезавантаження системи.) Додаток POSIX не виконується самостійно; для нього запускається спеціальний файл підтримки Posix.exe, що створює дочірній процес, з якого і запускаються додатки POSIX.