Page 1 of 1

Поддержка POSIX

Posted: Mon Dec 10, 2007 8:26 pm
by SHREDER
Решил спросить у многоуважемых разработчиков возмож-но ли сделать поддержку стандарта POSIX реально системных вызовов вполне для этого достаточно. Нужна только либа с функцими из стандарта небольшой перечень того что реально нужно было бы пожалуй как минимум:

fork - создать дочерный процесс (ну или просто процесс)
createThread - создать поток
wait - подождать пока не завершится дочерний процесc
execve - переместить образ памяти процесса (например в свопинг которого вобщем нет)
exit - завершить процесс и возвратить статуc
sigaction - калбек на который будет вызван сигналу (кроче реакция на прерывание)
sigreturn - возвратится из обработчика сигналла
kill - посылать сигналл процессу
pause - остановить процесс до прихода следующего сигналла
creat - создать файл
open - открыть файл
close - закрыть
read - читать данные из файла
write - писать
seek - передвинуть указатель текущей позицци в файле
ftat - получить инфо о состоянии файла
dup - новый дискриптор к уже открытому файлу
pipe - создать канал для передачи сообщения между процессами (неуверен что это возможно в минует)
acsess - проверить доступность файла
rename - переименовать файл
mkdir - создать каталог
rmdir - удалить каталог
link/ulink создать удалить элемент каталога
mount/umount - подключить/отключить файловую систему (думаю что в общем это и не нужно но всетаки было бы неплохо особенно если юзается NTFS)
synk - все блоки на свопинг (хоть свопинга и нет)
chdir - сменить рабочий каталог
time получить время в секундах от некоего числа например 1-го января 2001 года т.е. милениума
stime - установить это самое время от милениума
utime - установить время последнего доступа к файлу
times - получить время работы процесса

Все это реально можно бы сделать как набор асмовских макросов или бинарников с подпрограммами, а потом кто хочет может их подключать к себе скажем в С или там Pascal,Oberon,ADA и т.д. ну или юзать в асме. Как по мне реально лучше нежели API с гордым именованием функция 11,12,13,14... И к тому-же в общем какая-никакая поддержка POSIX.

Re: Поддержка POSIX

Posted: Mon Dec 10, 2007 10:27 pm
by rcdimon
думаю реализовать все эти функции не сложно. И если у кого ни будь руки дойдут- реализуем.. если нужно будет

Re: Поддержка POSIX

Posted: Tue Dec 11, 2007 12:04 am
by Veliant
я что то путаю но вроде libc худо бедно есть...или он не связан с posix совместимостью?

Re: Поддержка POSIX

Posted: Tue Dec 11, 2007 12:25 am
by kooser
Currently POSIX documentation is divided in three parts:

* POSIX Kernel APIs (which include extensions for POSIX.1, Real-time Services, Threads Interface, Real-time Extensions, Security Interface, Network File Access and Network Process-to-Process Communications)
* POSIX Commands and Utilities (with User Portability Extensions, Corrections and Extensions, Protection and Control Utilities and Batch System Utilities)

http://en.wikipedia.org/wiki/POSIX

Re: Поддержка POSIX

Posted: Tue Dec 11, 2007 2:15 am
by vectoroc
Большинство функций (если не все) posix в libc (в реализациях, что под коос) имеют вид заглушек, что-то вроде return -1;

Re: Поддержка POSIX

Posted: Tue Dec 11, 2007 1:19 pm
by andrew_programmer
SHREDER

Да, эти функции нужны. Лично мне нужны функции работы с потоками. Я подумывал/подумываю об их написании. В моей научной программе много долгих вычислений, поэтому вычислительную часть хочется сделать вторым потоком, чтобы можно было сворачивать окно программы во время вычислений, а не как сейчас...

Дел по научной программе у меня много, когда у меня до чего дойдут руки я и сам незнаю.
SHREDER, раз уж предложение поступило от тебя, то наверное тебе и реализовывать эти функции :) . У нас в проекте число действующих программистов никогда не превышало 15, а чаще всего в среднем работает 10 человек. И все поуши заняты делами. Причём число постоянных программистов ещё меньше. Чаще всего люди приходят, что-то сделают, а потом куда-то деваются.