Portál AbcLinuxu, 6. května 2025 20:34
takže by především měli dodat nějaký dostatečně pádný argument ti, kdož by tam jeho podporu rádi viděli.Zvýšení výkonu dbusu (meziprocesového zasílání zpráv) s minimálním dopadem na zbytek jádra pro ty, kteří to v konfiguraci vypnou.
Zkrátka k tomu, aby se do jádra přesouvalo něco, co lze vyřešit v uživatelském prostoru, by měly být setsakramentsky pádné důvody.V takovém případě by se z jádra měla odstranit třeba podpora pro sdílenou paměť. Lze ji vyřešit v uživatelském prostoru zapisováním sdílených dat do souboru.
Zvýšení výkonu dbusu (meziprocesového zasílání zpráv) s minimálním dopadem na zbytek jádra pro ty, kteří to v konfiguraci vypnou.Jenže to zvýšení výkonu mi nepřišlo zas tak zásadní. Navíc, když už někdo chce tlačit skrz DBUS tisíce transakcí za sekundu, stálo by za to zamyslet se spíš nad tím, jestli je potřeba ty zprávy procesům posílat po jedné. Třeba u hlášení stavu IM kontaktů by agregace rozhodně pomohla.
Naprosto cokoliv lze zrychlit přesunem do jádra, ale to neznamená, že dává smysl tam postupně přestěhovat úplně celý user space.Určitě souhlasím, nicméně rychlé IPC by tam být mohlo, ne?
Posilani zprav.
Abych mohl posilat zpravy mezi N procesy, budu potrebovat N socketu a drzet si nejakou mapu toho, ktery socket kam vede. To bych za trivialni neprohlasil.
Jiste ze to staci. Ale mit mechanismus pro predavani by bylo rychlejsi a pohodlnejsi.
Koneckoncu, kdyby to nebylo potreba, nebude Dbus nacpany v kazde aplikaci. Jiste ze pokud aplikace kterou delam zavisi na rychlem rpedavani zprav, muzu ji proste napsat v erlangu a bude, ale to porad neznamena, ze by to nebylo fajn.
Ale mit mechanismus pro predavani by bylo rychlejsi a pohodlnejsi.Ale sendmsg() je mechanismus pro předávání zpráv.
Koneckoncu, kdyby to nebylo potreba, nebude Dbus nacpany v kazde aplikaci.Z více než 2500 balíčků, které mám na své pracovní stanici nainstalované, potřebuje D-bus sotva několik desítek. Takže tvrzení o tom, že je nacpaný v každé aplikaci, bych bral se značnou rezervou
Použití XML pro konfigurační soubory ukazuje absolutní absenci citu pro návrh softwaru.Vždycky když se lidé podobně otírají o nasazení XML na nějakém místě, ptám se jich, co by bylo na tom místě lepší. Takže jaký formát bys pro konfiguraci D-Busu použil spíš a proč?
spíš dávám přednost formátům se složenýma závorkama, středníkama a klíčovýma slovama, prostě nějakou variantou takového toho c-like formátu.Souhlasím, že tenhle formát je dobrý, problém je, že (AFAIK) bohužel neexsituje jednotný standard, a tak si to každá aplikace implementuje jinak... což je problém.
A jedna klíčová věc... JSON je sice obecný datový formát s podporou polí a key-value slovníků, ale pokud vím tak neumí komentáře. Smysluplný konfigurační jazyk komentáře umět prostě *musí*.Hm, jo no, to je u JSONu problém. Některé parsery nicméně komentáře neoficiálně podporují, jako např.
jsoncpp
, který trochu znám. Ve standardu to ale už není, bohužel.
ale hlavně... aplikace nezná čísla řádků!Hm, tohle bude spíš záležitost parseru, než formátu jako takového, ne?
a tak si to každá aplikace implementuje jinak... což je problém.Zas tak velký problém to není. Trochu to komplikuje tvorbu specializovaných editorů těch konfiguračních souborů (různých grafických nebo web rozhraní apod).
Hm, jo no, to je u JSONu problém. Některé parsery nicméně komentáře neoficiálně podporují, jako např. jsoncpp, který trochu znám. Ve standardu to ale už není, bohužel.Potom to chce se shodnout aspoň na commented JSON :).
Hm, tohle bude spíš záležitost parseru, než formátu jako takového, ne?Teoreticky ano. Šlo by ty čísla řádků pro aplikaci ukládat. Nějaký SAX-like parser by to mohl umět, objektový parser taky, pokud to neni nějaké implicitní mapování. Ale dělá to nějaký?
Vždycky když se lidé podobně otírají o nasazení XML na nějakém místě, ptám se jich, co by bylo na tom místě lepší.Obecná odpověď je, že S-expressions (alias lisp-like uzávorkované výrazy) jsou v každém případě lepší než XML, protože umějí totéž a daleko jednoduššími prostředky. Ale ačkoliv jsou lepší, od optima mají v případě konfigurace stále propastně daleko. Použil bych formát, který je především rozumně čitelný pro lidi (věci se v něm nepíší zbytečně komplikovaně) a který umožňuje konfiguraci snadno skládat z více částí (včetně toho, že lze předefinovat cokoliv už nadefinovaného, tedy například distribuční defaulty). Jeden takový jsme kdysi s Robertem Špalkem spáchali (viz popis) a myslím, že se osvědčil. Je to docela dobrý kompromis mezi strojovou zpracovatelností, příjemností pro lidi a flexibilitou.
V takovém případě by se z jádra měla odstranit třeba podpora pro sdílenou paměť. Lze ji vyřešit v uživatelském prostoru zapisováním sdílených dat do souboru.Az na to, ze presne tak je to naimplementovane. Udela se soubor v "ramdisku" v /dev/shm a ten si procesy namapuji :P
Podstatné je pro mě to, že to jde vyřešit a to je podle všeho jediné kritérium, které toto vlákno má.Až na to, že ty jsi reagoval na Martina, který rozhodně toto za jediné kritérium neoznačil. Dokonce ve všech třech větách toho příspěvku dává najevo úplně jiné kritérium.
+1
A nakonec tu jsou signály - ty jsou ale kvůli asynchronnosti jednak příšerné řešení a jednak se dá předat samotná informace „nastal signál“, ale už se nedají předat žádná data.Daji se predat data minimalne o velikosti adresy. A vubec toho jde delat mnohem vic - RTFM signal(7). Pak tu jsou jeste SYS-V zpravy a sockety. A sdilena pamet jde udelat i tak, aby potom, co ji vsichni odmapuji, byla uvolnena.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.