Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 42
31  Общее / Общение / Re: ОСРВ QNX использует ли виртуальную память? : Июня 25, 2015, 11:48:07 am
Как работает QNX, в плане обращений к жесткому диску(HDD)? А именно, как часто она обращается к HDD? Sad
имхо, это зависит от работающих программ и драйвера жесткого диска (devb_eide в QNX 6.3.2).

Мне казалось, что при загрузке она подгружает с диска все что ей нужно, а все остальные операции происходят в ОЗУ. Так ли это? Wink
Не уверен, что понял Вас. Самому ядру ОС, имхо, практически ничего не нужно, не нужны ни диски, ни консоль с терминалами. Консоль и диски могут быть нужны другим программам, но не самому ядру.

Пишет ли она часто на винт или нет? Если пишет часто, то есть возможно перенаправить все в ОЗУ.
В QNX 6.3.2 был драйвер RAM-диска (devb_ram), если Вам надо писать в память как на диск. К сожалению не знаю, как сейчас в новых версиях.

Пример использования есть под виндовс эмедед, типа фильтр защиты от записи на уровне тома Enhanced Write Filter(EWF)
Вы сможете смонтировать диск только для чтения. Вы можете собрать образ ядра вообще без диска - соответственно защищать на запись не придётся.

Пока интересует только сама ОС, без личных программ. Grin
Что Вы понимаете под "сама ОС"?
32  Разработка / Программирование под QNX / Re: Win->TCP->QNX4.25 : Июня 15, 2015, 02:53:54 pm
Цитировать
inetd - можно настроить его за запуск программы, по приходу запроса установления связи на определённый порт.
И что, в inetd.<номер узла> можно прописать какое то правило, которое при коннекции на определенном порту сделает какие-то действия? (запустить тест > результаты.txt)? Я правильно поняла?
Да, Вы поняли правильно, но можно не "запустить тест > результаты.txt", а можно просто "запустить тест", который выведет в Ваше соединение результат работы теста. И скорее всего inetd.conf, а не inetd.<номер узла>.

И еще, вдогонку. Для подключения к qnx нужно адекватный user-password. Под root коннекчусь. Где пользователя нового завести, что то никак не найду. Просто руками прописать в passwd?
Вам qnx_user правильно сказал, из под root-а сказать:
Код:
passwd talruns
В итоге, после ввода пароля и подтверждения, если я правильно помню, будет создан пользователь talruns с заданным паролем.

PS: Для подключения сервису, запущенному из-под inetd какие-либо login-ы/password-ы не нужны, разве что Вы в своей программе-тесте реализуете аутентификацию.
33  Разработка / Программирование под QNX / Re: Win->TCP->QNX4.25 : Июня 15, 2015, 11:51:51 am
Хотела бы посоветоваться.
Задача:Со стороны Win-машины, по TCP протоколу надо "пнуть" тест на машине с qnx4.25
Результат работы теста вывести в файл и переслать на машину с Win.
По-моему в QNX 4.25 есть inetd - можно настроить его за запуск программы, по приходу запроса установления связи на определённый порт. При подключении на этот порт, будет запущенна указанная программа и её стандартные потоки ввода/вывода будут подключены к сокету. Далее - просто программа выводит результат работы в свой стандартный поток вывода и всё это автоматически пересылается на узел, который сделал запроса. Тестировать такой способ можно хоть через telnet, входящий  штатную поставку в windows, хоть через putty.
34  Разработка / Программирование под QNX / Re: Параллельные вычисления в QNX650 на двух ядрах одного процессора Intel : Июня 10, 2015, 12:53:21 pm
Прошу привести какой-либо конкретный примитивный пример по параллельным вычислениям на двух ядрах двухядерного
процессора фирмы Intel в QNX650. Имеющийся пример в Helpviewer неполный и даже не транслируется, поэтому понять
его трудно! Также не смог пока  найти примеров и в Internet. Хоть и ссылок очень много, но все они от одних и тех же авторов! Буду благодарен за любую подсказку!
Сорри, давно уже не занимаюсь QNX, но, судя по документации, как минимум есть непортабельный способ назначения процессоров, на которых будет выполняться поток через функцию ThreadCtl():
Код: (C)
ThreadCtl(_NTO_TCTL_RUNMASK, (int)runmask);
35  Установка и настройка / Установка и настройка / Re: монтирование qnx4-fs в Linux : Июня 05, 2015, 04:58:32 pm
В ядре левый драйвер. Драйвер Дмитрия Яковлева (http://qnxfs.narod.ru/) спасет отца русской демократии.
А где бы найти этот драйвер ? Ссылка мёртвая Embarrassed
у меня нормально открылась.
36  Разработка / Программирование под QNX / Re: Вопрос по delay() и sleep() : Мая 22, 2015, 05:58:56 pm
Функция printf() выводит данные либо при заполнении буфера, либо сразу как встретит символ перевода строки '\n'.
Угу. Если вывод идёт сразу на консоль. Если смотреть допустим через Momentics - там дальше свои буфера (у псевдотерминала, qconn и, видимо, у самого Momentics) - и по \n оно не пропихивается. По непонятным мне причинам после fflush() обычно пропихивается.
Насколько я понимаю, для консоли, а точнее терминала, обычно включается _IOLBF (построчная буферизация с автоматическим fflush() по "\n"), а для дисковых файлов _IOFBF (полная, на которую "\n", видимо, не влияет). Похоже, что при использовании Momentics stdout программы, указывает не на терминал, а на что-то другое (isatty() возвращает 0).
37  Разработка / Программирование под QNX / Re: Вопрос по delay() и sleep() : Мая 22, 2015, 03:10:19 pm
А чему равен размер буфера по умолчанию?
Очень сильно зависит от системы, есть подозрение, что равен BUFSIZ. Тут пишут, что >= 255
38  Разработка / Программирование под QNX / Re: Вопрос по delay() и sleep() : Мая 22, 2015, 02:44:29 pm
Спасибо, буду пробовать. Только почему всё-таки использование delay() внесло такие непредсказуемые результаты?
Боюсь, я не знаю точных цифр для конкретной ОС, но например возьмём размер буфера в FILE* равным 4096 байт. Если Вы убираете в программе у себя delay(), то буфер заполняется очень и очень быстро и, соответственно, выталкивается на вывод. Если Вы вставляете delay() на 1 секунду после каждого вывода, то получается в цикле Вы выдали printf(), заняли (с нулевым значением счётчика) 1 байт, через секунду - ещё один, через 9 секунду уже по два и т.д. в общем, Вы исчерпаете внутренний буфер через несколько сотен секунд и тогда уже будет произведён вывод буфера на экран и потом буфер начнёт наполняться заново.
39  Разработка / Программирование под QNX / Re: Вопрос по delay() и sleep() : Мая 22, 2015, 02:20:28 pm
Очистка экрана у меня перед циклом один раз : printf("\x0c"); без использования fflush(stdout); помоему он погоды не делает. В цикле я не использую очистку экрана.
PoP, имхо, имел в виду, что все Ваши printf() внутри буферизируются в libc. Если Вы после вызова printf() в цикле поставите fflush() Вы станете видеть каждый свой printf(), иначе - увидите, когда заполнится внутренний буфер. Можно ещё не использовать fflush(), а отключить буферизацию для потока FILE* через setvbuf().
40  Разработка / Программирование под QNX 4.x / Re: Аналог poll() : Мая 15, 2015, 08:32:20 am
Да, поразбирался с select(), вроде получилось (не знаю, в чем было отличие по сравнению с предыдущими попытками, разве что в версии qnx), но оказалось, что она не умеет работать в потоках (второй поток виснет на ней).
Так и должно быть?
По-моему тут на форуме было - у QNX 4.xx не очень хорошо в этом плане с потоками. Вроде даже советовали вынести работу с TCP/IP в отдельный поток.

Ну я как-то надеялся, что этот форум не просто так существует.
Что, может, кто-то альтернативу данной функции поможет написать или еще какой-нибудь выход предложит.
Во всяком случае, на что я точно не надеялся, так это на отсылки к хэлпу.
К сожалению, если альтернативы этой функции нет, то вряд ли Вам кто-то сможет что-то предложить. Если не ошибаюсь, то ни старый (с менеджерами Socket/Socklet) ни новый (с Tcpip) не поддерживают poll().
41  Разработка / Программирование под QNX / Re: не находит утилиту sin : Мая 07, 2015, 12:41:35 pm
запускаю команду например:
sin -P sh

выдает ошибку:
sin: cannot execute - No such file or directory

OS QNX 6

что я не так делаю?где скачать sin?
Насколько я помню, утилита sin всегда была в штатной поставке.. У Вас похоже какая-то другая проблема, какая конкретно у Вас версия ОС, и под каким shell-ом Вы запускаете команду sin -P?

В QNX 6.3.2, при отсутствии команды sin shell-ы /bin/sh, ksh, esh и fesh выводят другие сообщения.
42  Разработка / Программирование под QNX / Re: UDP прием в отдельном потоке : Мая 07, 2015, 09:45:15 am
К напримеру в QNX 4.25 совсем плохо и с потоками и потоко-безопасными функциями. Однако стартуем поток, в нем открываем кучу сокетов, привязываем их к портам. select() юзаем токо в этом потоке - select() в этой версии QNX потоко-небезопасный. Как чо пришло, читаем через recvfrom() с флагом MSG_PEEK скока данных, потом еще раз recvfrom() но уже c MSG_WAITALL выгребаем данные.
Имхо, вызов с MSG_PEEK лишний, если сработал select(), то можно забирать сообщение, просто сразу буфер выставить, чтобы вмещал любое сообщение.
43  Разработка / Программирование под QNX 4.x / Re: Аналог poll() : Мая 07, 2015, 08:31:06 am
Мда, как-то печально тут с ответами.
Если нет одной функции, с которой умеем работать, но есть другая, с которой не умеем, то остаётся научиться работать с той, с которой, на данный момент, не умеем. Какие у Вас проблемы с select()-ом?
44  Разработка / Программирование под QNX / Re: Запуск одного ядра у двух-ядерного процессора Intel : Мая 06, 2015, 10:11:49 am
По какой команде в QNX650 можно определить количество ядел в конкретном физическом процессоре?
Число ядер/процессоров можно определить командами sin info/pidin info

После подачи команды on -C 0 -R 0x1 получил ответ: Need arguments
Чего не хватает в моем запросе - я взял его из прямо из helpviewer?
По-моему, Вы забыли сказать, какую именно команду хотите запустить при помощи on. Как минимум надо сказать
Код:
on -C0 -R0x1 <имя запускаемой программы>
45  Разработка / Встраиваемые системы / Re: Время наработки : Мая 05, 2015, 03:19:41 pm
Угу. До тех пор, пока время истемы никто не переставил. Наприрр, стартовала она без батарейки с 0:0 чего-нибудь 1970,
а потом узнала время/дату - ну там по сети, от GPS или ищё откуда. Ну, и привела себя в порядок...
Тогда, как вариант, попробовать использовать clock_gettime(CLOCK_MONOTONIC, &ts); Из документации следует, что это время идёт всегда вперёд с постоянной скоростью, не может быть переведено и начинает идти с 0с 0нс. Осталось только узнать, является ли 0с 0нс временем запуска системы или временем запуска процесса, к сожалению об этом в документации не написано (или я не увидел).

В Linux, вроде, CLOCK_MONOTONIC считает именно со времени запуска системы, правда в стандарте это не указано, так-что может в разных системах делаться по-разному и даже меняться, сорри за тавтологию, время от времени.
Страниц: 1 2 [3] 4 5 ... 42