На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (17) « Первая ... 13 14 [15] 16 17  все  ( Перейти к последнему сообщению )  
> WinAPI и POSIX , бой насмерть
    Цитата D_KEY @
    А WinAPI?

    :blink:
      Ну все тогда, холивар считаем закрытым :lol:
        Цитата D_KEY @
        Потому что не продакшн окружение, не продакшн нагрузки и не продакшн поведение запросов.
        Ну это вы у себя никогда RFS не проводили, оно у нас занимает ~месяца со 100% нагрузкой всех подключённых исполнительных устройств. И ещё WCET, который увеличивает нагрузку раз в 10. Но так-то да, в обычном режиме нагрузка невелика. Если не считать, что в это время стенд обслуживает "кривые поделки", ещё не отлаженные.
        Цитата D_KEY @
        Не знаю, о чем ты, но серваки в основном на linux'ах по всему миру. Не помню точно статистику, но под 90%.
        Потому что им не требуется сертифицировать процессы жизненных циклов. WinAPI создаёт вокруг них предсказуемое операционное окружение со свойствами, оцениваемое и измеряемое количественно, а без метрик отраслевые стандарты жить не могут, сразу фтопку. Но ключевое слово всё ж – предсказуемое.
        Цитата D_KEY @
        А разве это не linux?
        Вопрос Majestio был за API, а не ОС. И я сразу предупредил, что это не совсем то.
        Цитата D_KEY @
        Чем это лучше-то?
        Два результата сразу: bool и int, причём смысл последнего разный в зависимости от bool. Удобно

        Добавлено
        Цитата D_KEY @
        А WinAPI?
        Наш лучший в 0-ых импортный партнёр Honeywell, чьим подрядчиком был наш основной московский заказчик, и который сам был одним из подрядчиков Boeing, вовсю использовал свою DEOS. Она использовалась на куче всякоразного коммерческого летающего, от Агусты и Цесны до Эмбрайров и Хоризонов. DEOS построена на WinAPI.
        И кстати, процессы у Honeywell были бесподобные. Мы в своё время многое из них почерпнули как образец для подражания. (Я даже с их подсистемы групп, основанных на скриптовании тестовых воздействий и исполнении их прямо на исполнительных устройствах, слизал архитектуру реал-тайм чеков для внедрения в функциональных тестовых окружениях. И улучшил, конечно :) .) Наши нынешние отечественные заказчики и близко по их качеству не валялись. Ну вот Labs разве что похожа, но пока рано судить, мы с ними только начали.
        Сообщение отредактировано: Qraizer -
          Цитата Qraizer @
          Цитата D_KEY @
          Потому что не продакшн окружение, не продакшн нагрузки и не продакшн поведение запросов.
          Ну это вы у себя никогда RFS не проводили, оно у нас занимает ~месяца со 100% нагрузкой всех подключённых исполнительных устройств. И ещё WCET, который увеличивает нагрузку раз в 10.

          Ну нагрузочное проходит регулярно. И все равно продакшн - это продакшн :D

          Цитата Qraizer @
          Цитата D_KEY @
          Не знаю, о чем ты, но серваки в основном на linux'ах по всему миру. Не помню точно статистику, но под 90%.
          Потому что им не требуется сертифицировать процессы жизненных циклов. WinAPI создаёт вокруг них предсказуемое операционное окружение со свойствами, оцениваемое и измеряемое количественно, а без метрик отраслевые стандарты жить не могут, сразу фтопку. Но ключевое слово всё ж – предсказуемое.

          А что-то сертифицируется на WinAPI? Я пока так и не увидел примеров от тебя.

          Цитата Qraizer @
          Цитата D_KEY @
          А разве это не linux?
          Вопрос Majestio был за API, а не ОС. И я сразу предупредил, что это не совсем то.

          Ну т.е. там POSIX поддержан хотя бы отчасти, а winapi - нет. Верно?

          Цитата Qraizer @
          Наш лучший в 0-ых импортный партнёр Honeywell, чьим подрядчиком был наш основной московский заказчик, и который сам был одним из подрядчиков Boeing, вовсю использовал свою DEOS. Она использовалась на куче всякоразного коммерческого летающего, от Агусты и Цесны до Эмбрайров и Хоризонов.

          Гуглится довольно плохо. И вроде как там тоже POSIX (но не уверен). А с HeartOS не работал? Она точно POSIX, как я понял.

          Цитата Qraizer @
          DEOS построена на WinAPI.

          А можно подробнее? Гуглится плохо, вместе с winapi вообще ничего не нашел. Есть упоминание POSIX, но как-то невнятно.

          Без обид, но ты как-то очень сильно зациклен на довольно узкую нишу, в которой работаешь :)
          Сообщение отредактировано: D_KEY -
            Цитата Qraizer @
            Цитата D_KEY @
            Чем это лучше-то?
            Два результата сразу: bool и int, причём смысл последнего разный в зависимости от bool. Удобно

            Чем это лучше std::expected того же? Я уже не говорю про безопасный код и пр.
              Цитата Qraizer @
              DEOS построена на WinAPI.

              Гугыль молчит. А чят-гпт крутит пальцем у виска. Но последнему доверие так себе - научился врать ппц.
                Вот офсайт вроде: DEOS

                Про WinAPI ни слова.

                Есть немного про POSIX:

                Цитата
                Deos™, DDC-I’s safety-critical time and space partitioned real-time operating system (RTOS) that has been verified to the guidance of DO-178C/ED-12C Design Assurance Level A (DAL A) for Avionics Applications, supports ARINC 653 APEX, Rate Monotonic Scheduling (RMS), and is targeted at the Future Airborne Capability Environment (FACE™) Safety Extended and Safety Base Profiles. Deos is the first RTOS to receive OSS Conformance Certification for the FACE Technical Standard, Edition 3.1. The Safety Extended Profile, which adds support for TCP/IP communications, multi-process support, and expanded POSIX capability (80 extra functions), is a superset of the functionality required by the Safety Base and Security Profiles


                :-?

                Добавлено
                И от них же вроде есть HeartOS, которая POSIX.
                  Цитата D_KEY @
                  Про WinAPI ни слова.

                  Возможно Qraizer где-то немного попутал :lol: Там действительно есть упоминания про Венду. Но это в плане окружения для разработки, но не исполнения. Скриню:

                  Прикреплённая картинка
                  Прикреплённая картинка
                    Хе-хе ... немножко про WinAPI ;)

                    В моем "личном зачёте" для WinAPI я бы поставил оценку "удовлетворительно". Нельзя сказать что сей стандарт полное удобрение. Кстати, я пишу с Венды. Нет, в нем есть очень и очень здравые моменты проектирования. Меня больше всего радует объектно-событийный подход к проектированию. Мое скромное ИМХО, это - та бомба, которую до сих пор не изобрели и не унифицировали в POSIX. Да, как писали выше, уже есть костыли в виде epool/kqueue. Но тут, положа честную руку на моё самое доброе сердце - венда тут на этаж впереди.

                    Но есть и тяжелое наследие

                    Я имею ввиду Си-наследие. Когда зарплаты платились по 1.5 индийских рупий за килограмм кода. Нужно было добывать, майнить строки и объёмы. Посмотрите на количество аргументов функций, а-ля CreateProcess, NtCreateUserProcess, CreateProcessAsUser, RegCreateKeyEx, NtCreateSection. Это же не хухры-мухры, это уже просто мама-дарагая! :blink:

                    Я вот тоже решил немножко закинуть гиперболоид в тему топика. Как вам моя функция в стиле WinAPI Futures? :lol:

                    ExpandedWrap disabled
                      BOOL OpeningMicrosoftMortgage(
                          LPCSTR lpApplicantName,
                          LPCSTR lpPropertyAddress,
                          LPCSTR lpLoanType,
                          double dLoanAmount,
                          int nLoanTerm,
                          double dInterestRate,
                          BOOL bFixedRate,
                          LPCSTR lpCreditScore,
                          LPCSTR lpEmploymentStatus,
                          LPCSTR lpIncomeVerification,
                          BOOL bCoApplicant,
                          LPCSTR lpCoApplicantName,
                          LPCSTR lpCoApplicantCreditScore,
                          LPCSTR lpDownPaymentSource,
                          double dDownPaymentAmount,
                          LPCSTR lpPropertyType,
                          BOOL bFirstTimeHomeBuyer,
                          LPCSTR lpLoanOfficerName,
                          LPCSTR lpApplicationID,
                          BOOL bPreApproval,
                          LPCSTR lpReferralSource,
                          LPCSTR lpContactMethod,
                          BOOL bEmailUpdates,
                          LPCSTR lpPreferredClosingDate,
                          LPCSTR lpInsuranceProvider,
                          LPCSTR lpPropertyInspectionStatus,
                          LPCSTR lpAppraisalValue,
                          BOOL bEscrowAccount,
                          LPCSTR lpMonthlyPaymentEstimate,
                          LPCSTR lpLoanDisclosureDocuments,
                          LPCSTR lpAdditionalNotes,
                          BOOL bSubmitApplication
                      );


                    Ради прикола, ну и кому не лениво, посмотрите, пожалуйста, как красиво и изящно это обыгрывается в языке программирования Dart. Сорян, ссылаюсь на свой же сайт - но это во благо :lol: Поищите там подраздел "Именованные аргументы". Там очень-очень красиво - ящетаю!
                      Да, я уже упоминал про количество аргументов. У меня язык не повернется назвать это безумие хорошим дизайном.

                      Добавлено
                      Цитата Majestio @
                      Да, как писали выше, уже есть костыли в виде epool/kqueue. Но тут, положа честную руку на моё самое доброе сердце - венда тут на этаж впереди.

                      Я еще раз напомню, что сранивать некорректно. Захотели MS ввести какой-нибудь IOCP и все, в следующей версии ждите. Одна компания, одно семейство ОС. А теперь для POSIX. Когда-то унифицировали select/poll. Потом времена поменялись, стало недостаточно, разные *nix системы пошли чуть разными путями, придумали epoll(linux), kqueue(*bsd), а сейчас в linux все больше обороты набирает io_uring. И это круто, что в разных ОС продолжают эксперементировать. Это развитие. Но что вы хотите от POSIX? Чтобы он побежал описывать разные эксперементальные штуки и обязал тем самым кучу разных компаний и ОС это все реализовывать? Это же требует согласований. И сертификации.

                      Еще раз, winapi корректно сравнивать с API какой-то конкретной ОС. А не с POSIX.

                      Добавлено
                      Цитата Majestio @
                      красиво и изящно это обыгрывается в языке программирования Dart

                      Dart не изучал, мне нравится, как в Swift сделано
                      Сообщение отредактировано: D_KEY -
                        Цитата D_KEY @
                        Dart не изучал

                        Ну я сцылку дал - не поленись, посмотри :lol:

                        Добавлено
                        Цитата D_KEY @
                        как в Swift сделано

                        Бегло глянул - мне кажется почти один-в-один :-?
                          Цитата D_KEY @
                          Еще раз, winapi корректно сравнивать с API какой-то конкретной ОС. А не с POSIX.

                          Не - ну ту без вопросов! WinAPI - это местячковая корпоративная спецификация. А вот POSIX - хош-не-хош, а это уже стандарт.
                            Цитата D_KEY @
                            А что-то сертифицируется на WinAPI? Я пока так и не увидел примеров от тебя.
                            Какие тебе примеры? Falcon, Boeing, Embraer — недостаточно? Могу ещё с десяток наименований накидать. Вся авионика, с которой я сталкивался, разрабатывается и сертифицируется под виндой. У нас как-то был один проект на LynxOS, договора благополучно подохли (потому что французы; и это не первый раз с ними, никогда с французами не работайте) в 18-м, наклюнулся было ещё один, на этот раз отечественный, сдулся из-за недостатка финансирования.
                            Цитата D_KEY @
                            Вот офсайт вроде: DEOS
                            Это не та DEOS, то была собственная. Нафик им вовне выкладывать собственные IP. Хошь кусочек заголовков?
                            ExpandedWrap disabled
                              #ifndef DEOS_H
                              #define DEOS_H
                               
                              #include <windows.h>
                               
                              #define semaphoreHandle HANDLE
                              #define semaphoreStatus int
                              #define timeoutSpecifier unsigned int
                              #define waitIndefinitely 0xFFFFFFFF
                              #define semaphoreSuccess 0
                              #define process_handle_t HANDLE
                               
                              int waitSemaphore( HANDLE handle, unsigned int timeout );
                              int signalSemaphore( HANDLE handle );
                              void waitUntilNextPeriod( );
                               
                              ...
                            ExpandedWrap disabled
                              #ifndef EVENTAPI_H
                              #define EVENTAPI_H
                               
                              /*
                               ** HHdr-beg ****************************************************************
                               **
                               ** Copyright Honeywell Inc 03/01/96
                               ** All Rights Reserved
                               **
                               ** Honeywell Proprietary
                               **
                               ** Include File name: EVENTAPI.H
                               **
                               ** Purpose:
                               **   Everything needed to call event related DEOS API functions.
                               **   Note:  This header file MUST be compatible with a "C" compiler.
                               **
                               **
                               ** HPrj-beg ****************************************************************
                               **
                               ** HPrj-end ****************************************************************
                               ** HHdr-end ****************************************************************
                               */
                               
                              ...
                               
                              #ifdef __cplusplus
                              extern "C" {
                              #endif
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI createEvent(const char * name, eventHandle *createdEvent);
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI getEventHandle(
                                            const char * name, process_handle_t procHand, eventHandle *createdEvent);
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI waitForEvent(eventHandle theEventHandle, timeoutSpecifier timeout, DWORD currentCount);
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI pulseEvent( eventHandle theEventHandle );
                               
                              DEOSBASEAPI DWORD DEOSKERNAPI eventPulseCount( eventHandle theEventHandle );
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI deleteEvent( eventHandle theEventHandle );
                               
                              DEOSBASEAPI eventStatus DEOSKERNAPI grantEventAccess( eventHandle theEventHandle, process_handle_t processHandle, eventAccessRightsType access, bool grantToAllProcesses );
                               
                              #ifdef __cplusplus
                              }
                              #endif
                               
                              ...
                            Думаю, хватит. Вроде ничего из конфиденциального не слил, но плз, не распространяйте. Этому коду 15 лет от последнего использования нами. Контракты кончились в кризис 08-09 годов, как у них там нынче, беспонятия.
                            Цитата Majestio @
                            Посмотрите на количество аргументов функций, а-ля CreateProcess, NtCreateUserProcess, CreateProcessAsUser, RegCreateKeyEx, NtCreateSection. Это же не хухры-мухры, это уже просто мама-дарагая!
                            И что с ними не так? Регистров не хватает, компилеру приходится стек юзать? Ай-яй-яй.

                            Добавлено
                            Цитата Majestio @
                            Ради прикола, ну и кому не лениво, посмотрите, пожалуйста, как красиво и изящно это обыгрывается в языке программирования Dart
                            Ну так VB.NET. И ещё VBA. А ещё так можно в IDispatch. Только какое отношение это имеет в API?
                              Цитата Qraizer @
                              И что с ними не так? Регистров не хватает, компилеру приходится стек юзать? Ай-яй-яй.

                              С ними не хватает ... Нормального подхода. Просто подход - полное говно! :lol: Очень часто туча параметров задаётся по умолчанию. И их всех нужно явно указывать. Но если мы более внимательно, чем менее, зададимся вопросом "а как бы лучше сделать", то сразу обратим свое внимание на паттерн проектирования "Строитель". Иными словами, сперва просто создаем объект/сущность. А потом из его 32-х параметров задаём там три нам очень нужные путём вызова сеттеров. И замечу, это не обязательно С++, такое и в Си можно и нужно было бы сделать, в рамках WinAPI.

                              Добавлено
                              В языках программирования нового поколения (Dart, и как оказалось, и Swift) ввели понятие "именованных параметров". Там это решается проще - просто при инициализации указываем те параметры, которые явно нужно определить (по именам параметров), остальные инициализируются по умолчанию. В этом случае можно обойтись и без "строителя", но и вызов будет гораздо компактнее.

                              Добавлено
                              Цитата Qraizer @
                              Ну так VB.NET. И ещё VBA. А ещё так можно в IDispatch. Только какое отношение это имеет в API?

                              Такое не говори! У меня от такого бабки в подъезде крестятся! :rolleyes:
                                Цитата Qraizer @
                                Какие тебе примеры? Falcon, Boeing, Embraer — недостаточно? Могу ещё с десяток наименований накидать.

                                Тут проблема в том, что в публичной информации нет никакого упоминания про windows, есть информация про разные rtos и они основаны не на винде, а или на чем-то своем или на линуксах. И даже когда на своем, то есть как минимум частичная реализация posix. Про WinAPI ни слова.

                                Добавлено
                                Цитата Qraizer @
                                Вся авионика, с которой я сталкивался, разрабатывается и сертифицируется под виндой.

                                Ты сам пишешь про rtos, но винда к ним не относится :-? (были какие-то древние rtos виндовоподобные, но мы холиварим сейчас).

                                Добавлено
                                Цитата Qraizer @
                                Цитата D_KEY @
                                Вот офсайт вроде: DEOS
                                Это не та DEOS, то была собственная.

                                Так DEOS они и делают вроде :-?
                                Может раньше была какая-то старая и другая, а сейчас перешли на что-то новое? Почему не гуглится ничего?

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

                                Добавлено
                                Цитата Qraizer @
                                Хошь кусочек заголовков?

                                Извини за нубские вопросы. Ты хочешь сказать, что в их "RTOS" под капотом была винда?
                                Сообщение отредактировано: D_KEY -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0798 ]   [ 16 queries used ]   [ Generated: 16.06.25, 13:44 GMT ]