LINUX.ORG.RU

помогите с выбором real-time дистрибутива

 реальное время


0

1

всем привет! есть приложение написанное на C++ и Qt. нужно чтобы оно выполнялось на ОС линукс с поддержкой реального времени. че делать? 1)как к ядру стабильной версии прикрутить по своему усмотрению все что потребуется (GUI и тп)? или же есть готовые дистрибутивы, то как из них убрать все не нужное? (платформа X86 + поддержка RS485) 2)как по собственному усмотрению сделать систему встроенной или декстоп вариантах? 3)есть пошаговые руководства? (типо нажми туда пропиши вот это) p.s. в линуксе никогда не сидел и не знаю как там и что


Вы, конечно, уже определились с термином real-time и для чего он нужен в вашей конкретной задаче?

trex6 ★★★★★
()

че делать?

Изучать матчасть. Без этого в проектировании RT-систем - никуда.

AITap ★★★★★
()
Ответ на: комментарий от Homura_Akemi

ну вот как его установить и причесать? дайте направление, а то я только винде работал

vavav
() автор топика

есть приложение написанное на C++ и Qt. нужно чтобы оно выполнялось на ОС линукс с поддержкой реального времени. че делать?

в линуксе никогда не сидел и не знаю как там и что

А приложение, наверное, mission critical?

мне раз в 1мс приходит пакет с данными, вот его и нужно успеть принять

Риальне жесткие требования.

Поставь себе хоть какой-нибудь Linux и поучи немного матчасть.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Ну уж нет. Qt и прочай говногуйня отдельно, реальное время отдельно. У тебя процесс реального времени должен по какому либо простому последовательному протоколу общаться с обычным linux-процессом, который уже будет Qt использовать и тому подобное говно. Читай про архитектуру rt-linux.

anonymous
()
Ответ на: комментарий от vavav

мне раз в 1мс приходит пакет с данными, вот его и нужно успеть принять

Для принятия 1000 пакетов в секунду RT-система не нужна.

Deleted
()
Ответ на: комментарий от tailgunner

Ты будешь удивляться, но искоробочный лялих и 1мс тебе не гарантирует. Более того, он и одну секунду отклика с гарантией не даст.

В общем, пулеметчик в своем амплуа. Ни хера не знает, но вещает с апломбом и гуру из себя корчит.

anonymous
()
Ответ на: комментарий от anonymous

RT-система нужна даже для 1 пакета в секунду.

Нет, не нужна. Она была бы нужна для очень быстрой обработки этого одного пакета в секунду за определённое и жёстко заданное время. Но автор темы про это ничего не сказал.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

real-time
приложение написанное на C++ и Qt.
мне раз в 1мс приходит пакет с данными

это трындец

Reset ★★★★★
()

Adeos patch для kernel-space, xenomai для user-space. Очень советую, можно использовать native,posix,vxworks и т.д. скины.

splinter ★★★★★
()
Ответ на: комментарий от vavav

мне раз в 1мс приходит пакет с данными, вот его и нужно успеть принять

Бред какой-то. Вы понимаете что если вы не примите пакет в 1мс то это будет равноценно отказу систему? Вы знаете как работает hard реал-тайм?

splinter ★★★★★
()
Ответ на: комментарий от Deleted

Для «очень быстрой» не нужна. Для гарантированного времени отклика (пусть то будет 1мс, 1с или даже 10с) - нужна. Автор, я думаю, это понимает.

anonymous
()
Ответ на: комментарий от anonymous

Ты будешь удивляться, но искоробочный лялих и 1мс тебе не гарантирует.

Телепат?

Более того, он и одну секунду отклика с гарантией не даст.

И даже год.

В общем, пулеметчик в своем амплуа. Ни хера не знает, но вещает с апломбом и гуру из себя корчит.

Заполни и отправь: http://www.scribd.com/doc/7771818/Butt-Hurt-Report-Form

tailgunner ★★★★★
()

не пацаны.. есть конкретный вопрос-кто знает дайте конкретный ответ. я НИКОГДА не работал с линукс, и для начала помогите сделать ПЕРВЫЕ шаги в ВЕРНОМ направлении: - вот взял я и скачал с kernek.org ядро и чё? как его установить на комп и включить режим реального времени? как к нему прикрутить рабочее окружение? как на это все загрузить приложение с отладочной средой?

vavav
() автор топика
Ответ на: комментарий от vavav

Для этого ненужно патчить ядро или юзать realtime.

Достаточно смоделировать свое приложение так чтоб оно принимало эти пакеты.

anonymous
()
Ответ на: комментарий от anonymous

каждые 1-2 милисекунды приходят данные- вот их надо по любому принять- т.е. говорим системе , чтоб бросала все дела(отрисовка, вычисления) и принимала, данные, как только данные получены пусть дальше проц занимается вычилениями и прочим

vavav
() автор топика
Ответ на: комментарий от vavav

Для начала читай документацию: https://rt.wiki.kernel.org/index.php/Main_Page

Ну и определись уже, нужен ли тебе жесткий real time. А то тут люди подозревают, что пакеты тебе только принимать нужно, а отклика за гарантированное время не требуется.

anonymous
()
Ответ на: комментарий от vavav

не пацаны.. есть конкретный вопрос-кто знает дайте конкретный ответ. я НИКОГДА не работал с линукс, и для начала помогите сделать ПЕРВЫЕ шаги в ВЕРНОМ направлении: - вот взял я и скачал с kernek.org ядро и чё? как его установить на комп и включить режим реального времени? как к нему прикрутить рабочее окружение? как на это все загрузить приложение с отладочной средой?

Тебе стоит поставить любой обычный дистрибутив linux и хоть чуть чуть разобраться с тем, как он работает.

Просто с ядром ты ничего не сделаешь. Тебе нужен ещё как минимум загрузчик и какой-то юзерспейсный процесс. Загрузчик загружает ядро, ядро инициализируется и инициализирует железо, а затем запускает первый процесс (обычно - init).

Если тебя интересует сборка системы с нуля из минимальных «запчастей» - посмотри в сторону LFS.

Deleted
()
Ответ на: комментарий от vavav

Откуда «принять»? Что с ними надо потом делать? Похоже, я был неправ, и ты таки не понимаешь, что такое real time.

anonymous
()
Ответ на: комментарий от AITap

а с этого Debian'a я смогу потом убрать все не нужно мне и причесать по собственному как нравиться (оконный интерфейс убрать и тд ) чтоб максимально разгрузить процессор? если можно ссылки пожалуйста

vavav
() автор топика
Ответ на: комментарий от vavav

каждые 1-2 милисекунды приходят данные- вот их надо по любому принять- т.е. говорим системе , чтоб бросала все дела(отрисовка, вычисления) и принимала, данные, как только данные получены пусть дальше проц занимается вычилениями и прочим

Расскажи что в твоём понимании значит «принять данные». Если просто считать с порта и куда-то записать (без ограничений по времени обработки), то RT тут не нужно. Система в общем случае не способна «пропустить» данные. Она их примет и запишет в некий внутренний буфер, из которого затем эти данные будут прочитаны твоей программой.

Deleted
()
Ответ на: комментарий от vavav

Ты сначала определись, что тебе вообще нужно. А то, похоже, ты какой-то херней маешься.

anonymous
()
Ответ на: комментарий от vavav

а с этого Debian'a я смогу потом убрать все не нужно мне и причесать по собственному как нравиться (оконный интерфейс убрать и тд )

Сможешь. Но на современных x86 это не нужно.

если можно ссылки пожалуйста

man apt-get

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

по интерфейсу RS 485 приходят данные каждые 1-2 мс. дальше данные обрабатываются «не спеша», но вот именно процесс который отвечает за прием он критичен в плане реального времени - я должен быть уверен на 100 % , что если в процессе разработки задам время и скажу программе - вот ты давай делай что хочешь но будь готов в определенное время принять данные- вот это для меня реальное время

vavav
() автор топика
Ответ на: комментарий от vavav

Пишешь бред.

В системы есть разные сервисы с разным приоритетом.И внезапно подумай о банальном-ты просматривая эту страницу и трафик не спрашивает у твоей системы когда она свободна для принятия очередных данных....и вот какже оно работает?

anonymous
()
Ответ на: комментарий от vavav

а с этого Debian'a я смогу потом убрать все не нужно мне и причесать по собственному как нравиться

Да.

если можно ссылки пожалуйста

Пакетная система Debian описана в Reference Guide, см. ссылку выше.
Вы также можете собрать минимальную систему при помощи debootstrap (см. man debootstrap) или multistrap (http://emdebian.org/).

AITap ★★★★★
()
Ответ на: комментарий от vavav

Ктото ему скажет что он необразованный идиот,непонимающий как работает ЭВМ?

anonymous
()
Ответ на: комментарий от Deleted

да и соответсвенно обработать за определенный промежуток- если не успевает - то сброс либо тп

vavav
() автор топика
Ответ на: комментарий от vavav

я должен быть уверен на 100 % , что если в процессе разработки задам время и скажу программе - вот ты давай делай что хочешь но будь готов в определенное время принять данные

Почитай что-нибудь про прерывания.

Deleted
()
Ответ на: комментарий от vavav

Тебе же не надо этот интерфейс poll-ить? Собирай по прерыванию и обрабатывай потом без суеты.

anonymous
()
Ответ на: комментарий от vavav

да и соответсвенно обработать за определенный промежуток- если не успевает - то сброс либо тп

Ага, а несколькими постами выше ты пишешь:

дальше данные обрабатываются «не спеша»

Так в котором посте содержится верная информация?

Deleted
()
Ответ на: комментарий от Deleted

в смысле , что сейчас приложение работает под управлением WIndows и основной косяк который надо устранить это именно прием, поэтому я сделал акцент. а так и обработка данных по идее тоже RT задача но обычно мощности проца хватает с лихвой

vavav
() автор топика
Ответ на: комментарий от vavav

А какой косяк именно с приёмом? При такой смешной нагрузке пакеты в принципе не должны теряться. Если теряются - проблема в считывающей программе или вообще аппаратная.

Deleted
()
Ответ на: комментарий от vavav

Ну так значит драйвер устройства был написан рукожопым идиотом. Править драйвер надо, а не переходить на RT OS.

anonymous
()
Ответ на: комментарий от vavav

короче надо линукс. здесь масса причин ( пожелания начальства , лицензии, и тд)

Бери любой понравившийся линукс, скачивай дистрибутив, ставь на свой рабочий ПК, бери документацию...

Deleted
()
Ответ на: комментарий от vavav

Линух может и надо, а рт не надо, если только железка не совсем тупая и ее не надо поллить.

anonymous
()

всем спасибо!

vavav
() автор топика

man QProcess, man sched_setscheduler(0, SCHED_RR, ...) + какая нибудь межпроцессорная неблокируемая труба для байтиков достаточного объёма, тисячи их.

nanoolinux ★★★★
()
Ответ на: комментарий от vavav

Отвечать что-нибудь надо? Или только читать данные? Если второе, то никакой RT не нужен - все данные и так сохранятся в буфер.

man прерывания

Ну а ещё у нормальных железок (не которая отправляет данные, а которая стоит внутри компьютера, принимает по RS 485 и отдаёт данные процессору) есть аппаратный FIFO буфер.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Отвечать что-нибудь надо? Или только читать данные? Если второе, то никакой RT не нужен - все данные и так сохранятся в буфер.

man прерывания

Ну а ещё у нормальных железок (не которая отправляет данные, а которая стоит внутри компьютера, принимает по RS 485 и отдаёт данные процессору) есть аппаратный FIFO буфер.

может нужно дернуть другой девайс. ТС не раскрывает всех исходных данных.

exception13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.