Page 1 of 1

POSIX-совместимость

Posted: Sat Apr 14, 2007 5:40 pm
by DmitrySokolowsky
Не знаю, думает ли об этом кто-то из разработчиков. Но мне кажется, это нужно сделать, иначе не удастся портировать некотрые юниксовые программы, которые были бы очень кстати, например тот же Amarok...
Скажите, в этом направлении что-то делается?

Posted: Sun Apr 15, 2007 6:04 pm
by bw
Я просто скажу, что не явлюсь поклонником файловой системы POSIX (я её даже немного призераю), файловой системы Microsoft и вообще, я не явлюсь поклонником иерархичесчких файловых систем, как и таких понятий как файлы и папки.

..bw

Posted: Sun Apr 15, 2007 6:35 pm
by gplhater
POSIX (Portable Operating System Interface for uniX) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода. Стандарт разрабатывается консорциумом «The Open Group», формально определён как IEEE 1003, название международного стандарта ISO/IEC 9945. Официальная копия может быть приобретена на сайте ISO.


И далее на http://ru.wikipedia.org/wiki/Posix http://en.wikipedia.org/wiki/Posix

Posted: Sun Apr 15, 2007 7:07 pm
by Wildwest
Этот стандарт ориентирован на ОСи, основные части ядра и модули которых написаны на СИ/С++. Кроме того основным режимом работы считается текстовый, а не графический режим. То есть нам это не грозит.

Posted: Sun Apr 15, 2007 7:34 pm
by DmitrySokolowsky
Значит, многие юниксовые приложения нам будут недоступны или всё-таки есть выход?

Posted: Sun Apr 15, 2007 9:17 pm
by vectoroc
выход всегда есть ;)

Posted: Sun Apr 15, 2007 10:19 pm
by DmitrySokolowsky
Можно подробнее?

Posted: Mon Apr 16, 2007 9:18 pm
by Phantom-84
Атауальпа, можно сделать как системную надстройку, а потом транслировать в функции Колибри. Можно даже оформить как обычную DLL, правда, без системной поддержки трансляция некоторых функций может оказаться проблематичной.

Posted: Thu Apr 26, 2007 11:39 am
by SHREDER
Э ну POSIX стандарт - это стандарт для юникс подобных ОС. Если смотреть в корень то все современные многозадачные ОС посути так или иначе наследуются от UNIX. В том числе и Windows (которая кстати тоже на 100% POSIX совместима). MeOS и колибри соответсвенно тоже черпает в основе основные идеи юникса. Все определения процессы, (потоки из SYSTEM 5) и т.д. очереди, приоритеты, слоты и сигналы, каналы (pipe) и т.д. и т.п. все пришло из юникса посему пожалуй совместимость с POSIX нужна но тогда прийдется практически всю систему переписать с нуля, просто дллами не обойтись тем более что длл на уровне ядра не поддерживаются, API вообще как досовское через прерывания.

Posted: Thu Apr 26, 2007 2:32 pm
by Ghost
SHREDER
API вообще как досовское через прерывания.
И какое же "API" в UNIX???

Posted: Thu Apr 26, 2007 6:21 pm
by SHREDER
Через посылку сигнала ядру. Но большинство это не использует, заместь непосредственных сигналлов ядру юзаются С (подавляющее большинство юникс программ на с) библиотеки состав которых кстати определяется POSIX-сом. В Linux например библиотеки включают как POSIX функции так и чисто свои.

Posted: Thu Apr 26, 2007 7:13 pm
by bw
Насколько я знаю API nix работает на 80h прерывании.
Винды не POSIX. POSIX это более определенный стандарт нежели просто сходность архитектур. У винды хотя бы нет fork'а, это обламывает 90% серверов nix'а :-).
Я считаю что подстраиваться под API винды или никсов нестоит. Нужно думать о обратной совместимости, но не господам разработчикам ядра, это точно. У них и так куча вопросов, которые они не могут решить.

..bw

Posted: Thu Apr 26, 2007 7:56 pm
by diamond
В винде на уровне NativeAPI есть fork (NtCreateProcess такое позволяет, пример реализации указан в справочнике http://diamondz.land.ru/NativeAPI.pdf). На WinAPI его нет, но в винде наряду с подсистемой Win32 есть подсистема POSIX (posix.exe - в 2k входит по умолчанию, в XP так просто не устанавливается, но всё равно есть).

Posted: Thu Apr 26, 2007 8:05 pm
by Ghost
SHREDER
Через посылку сигнала ядру.
И как посылаются "сигналы"??? А как библиотеки общаются с ядром? А C? Посвяти.

Posted: Thu Apr 26, 2007 8:47 pm
by bw
diamond, там все сервера построены на мгновенном создании клона процесса. В win содание процесса очень трудоемкий процесс (извините за тафтологию). И сокеты у винды очень медленные (w2kpro), это не допустимо для nix серверов.

..bw