-
Data: 2021-01-09 16:48:54
Temat: Re: Spieszmy się kochać Windows
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> >> POSIX w embedded nie jest dobry.
> > Nadal nie napisałeś, dlaczego.
> Wiele systmów embedded:
> a) nie ma plików
> b) nie ma procesów
> c) nie ma rurek
> d) nie ma sygnałów
> e) nie ma konsoli
> f) a wniej interaktywnych poleceń
No i?
Taki przykładowy QNX jest oparty o mikrojądro, gdzie te wszystkie rzeczy powyżej to
osobne usługi, których można nie mieć, to jest kwestia konfiguracji. I niepotrzebnych
rzeczy nie ma, zwłaszcza w systemach embedded.
Nie zmienia to faktu, że nadal QNX jest POSIX.
I dlatego dalej nie rozumiesz.
> Ale ma 40 programów w dildo
Zaczynam mieć wrażenie, że to jedyna rzecz, o której masz coś do powiedzenia.
> POSIXa w jakiejś implementacji ciężko będzie formalnie weryfikować
Sam sobie zaprzeczasz. "W jakiejś implementacji"? A jeśli mam formalnie zweryfikowaną
implementację, to czy w takiej implementacji będzie ciężko zweryfikować? Nadal nie
odróżniasz API od implementacji. POSIX to tylko API.
> Jednak wolę dalej FreeRTOSa nad POSIXa w respiratrorze,
A jest formalnie zweryfikowany? Bo widzisz - POSIX to API. Natomiast FreeRTOS to
konkretny system. I ten konkretny system nie jest zweryfikowany, nawet nieformalnie.
Dlatego zdecydowanie nie chcesz go w respiratorze.
(ale możesz chcieć SafeRTOS, którego napisali od nowa w tym celu)
> Bo POSIX jest niezwykle trudny do weryfikacji. Z powodu komplikacji
> swojego API.
Od kiedy API utrudnia weryfikację? W jaki sposób?
> > Mogę mieć dobrej jakości implementację
> Możesz. A masz?
Przecież już pisałem.
> > Np. kod, który napisałem na Linuksie zadziałał od ręki na QNX.
> A na freeRTOS? A na Windows CE?
A tam nie zadziałał od ręki, bo autorzy uznali, że musi być ourMutexCreate(), zamiast
pthread_mutex_init().
> Ok, ustalmy wobec tego że masz program *częściowo* przenośny. Tak lepiej?
Nie wiem, czy lepiej. Na pewno program napisany pod API POSIX jest bardziej przenośny
(bo działa na wielu systemach), niż program napisany pod FreeRTOS (bo działa tylko na
jednym).
> W sumie
> bez znaczenia czy masz pthread_mutex_init nazwany dupa. Istotne jest że
> w innym systemie (niezgodnymz POSIX) może w ogóle nie itnieć inicjacja
> poza miejscem deklaracji, albo istnieć przyjmująca paramter resursive.
Może czy istnieje? Pokaż na przykładzie FreeRTOS (skoro już o nim mówimy i chcesz go
w respiratorze).
> Dlatego masz class MyMutex
To mam z innego powodu. Otóż w programie C++ wolę mieć bardziej zunifikowane idiomy.
Np. zwalnianie tego muteksa w destruktorze. Ale robię to z powodu *podniesienia*
poziomu abstrakcji, a nie z powodu zapewnienia przenośności. Do przenośności
wystarczyłby POSIX, gdyby twórcy januszowych RTOSików nie mieli przerostu ego i
presji na wymyślanie własnych nazw.
Dlatego chciałbym mieć *jedną* implementację mojej klasy MyMutex. A nie kilka
różnych.
(oczywiście teraz mamy też std::mutex, ale dyskusja jest ogólna)
> > zrobić mu unit-testy na innym systemie, np. na Linuksie, bo akurat taki jest
łatwiej dostępny.
> A na windowsie?
"U mnie działa"?
Jeśli trzeba puścić unit testy, to Cygwin jest do tego jak najbardziej wystarczający.
> Na codzień piszę kod na POSIXie i
> Windowsie *jednoczesnie*. Powiedzmy że mam zielone pojęcie gdzie POSIX
> jest przenośny. Powiedzmy że nieco powyżej średniej, mam to pojęcie.
> Nijak nie udało mi się zawołać funkjci Posixowych w Windowsie.
"U mnie działa"?
> Zgadnij dlaczego mamy (wreszcie) std:: z obsługą wątków, i to nie jest
> POSIX like API.
A niby jak by miało być "like"? POSIX to jest API dla języka C. Logiczne jest, że API
w std:: będzie inne. I dobrze.
> Najwidoczniej ktoś kombinuje jak ja - abstrakcja na OS.
Pominąłeś szczegół: ktoś z tym std:: kombinuje, że standardy są dobre. I ma nadzieję,
że autorzy implementacji będą tego standardu przestrzegać, bo od przestrzegania
standardu zależy przenośność końcowych programów, jak też obniżenie globalnych
kosztów. Nie przypisuj sobie tego pomysłu, bo do tej pory byłeś od niego daleko.
> > Dlaczego ourMutexCreate jest do embedded a pthread_mutex_init nie jest.
> Bo jest nieprzenośne na inne embedded.
Jest przenośne bardziej (również na embedded), niż ourMutexCreate, który w ogóle nie
jest.
> Ty najwidoczniej możesz sobie pozwolić na ogarnieniae abstrakcji w
> POSIXowym OSie.
Też nie mogę. Bo ktoś olewał standardy.
> Stąd różne opinie. Moja w tym wypadku jest mojsza i tyle.
Już rozumiem. Ty piszesz o tym, jak jest a ja o tym, jak powinno być. Stąd
nieporozumienie. ;-P
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 09.01.21 18:53 heby
- 09.01.21 20:57 Luke
- 09.01.21 21:28 heby
- 10.01.21 14:37 Smok Eustachy
- 10.01.21 15:43 heby
- 10.01.21 16:56 Maciej Sobczak
- 10.01.21 17:25 Maciej Sobczak
- 10.01.21 18:05 heby
- 10.01.21 21:07 Smok Eustachy
- 10.01.21 21:49 heby
- 11.01.21 09:24 Smok Eustachy
- 11.01.21 12:33 heby
- 11.01.21 12:37 Krzysztof Mitko
- 11.01.21 13:03 Mateusz Viste
- 11.01.21 13:26 heby
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
Najnowsze wątki
- 2025-03-18 ulaskawienia
- 2025-03-18 Gdynia => Sales Executive / KAM <=
- 2025-03-18 42 MILIARDY ZŁOTYCH ZYSKU W ROK. DLACZEGO BANKI TYLE ZARABIAJĄ W POLSCE?
- 2025-03-17 Nie matura lecz chęć szczera ...
- 2025-03-17 Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- 2025-03-17 Odkurzacz Smapp Dynamic - dawny Zelmer
- 2025-03-17 Nagra IV i zewnętrzny pilot
- 2025-03-17 Rzeszów => Spedytor Międzynarodowy <=
- 2025-03-17 Warszawa => Junior Account Manager <=
- 2025-03-17 Białystok => Gen AI Engineer <=
- 2025-03-17 Białystok => Generative AI Engineer <=
- 2025-03-17 Częstochowa => Backend Developer (Node + Java) <=
- 2025-03-17 Rzeszów => International Freight Forwarder <=
- 2025-03-17 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-17 Chiny-Kraków => Senior PHP Symfony Developer <=