Konsorcium Linux Foundation představilo svůj nejnovější projekt s názvem OpenSearch Software Foundation zastřešující další vývoj OpenSearch a OpenSearch Dashboards. OpenSearch je forkem vyhledávače Elasticsearch a OpenSearch Dashboards je forkem souvisejícího nástroje pro vizualizaci dat Kibana. V roce 2021 přešly projekty Elasticsearch a Kibana z licence Apache 2.0 na duální licencování pod Server Side Public License (SSPL) a
… více »Valkey, tj. svobodný fork již nesvobodného Redisu, byl vydán v první major verzi 8.0.0 (GitHub). Ve čtvrtek proběhne ve Vídni Valkey Developer Day.
TamaGo je open source framework pro programování ARM a RISC-V systémů na čipu (SoC) v programovacím jazyce Go. Prezentace projektu z OSFC (Open Source Firmware Conference) v pdf na GitHubu.
Konference OpenAlt 2024 – jedinečné fórum, kde se každoročně sdružují lidé se zájmem o vývoj a využití svobodného a otevřeného softwaru a hardwaru, tvorbu, zpracování a zpřístupňování otevřených dat, svobodný přístup k informacím a vzdělávání – hledá přednášející, dobrovolníky a partnery. Konference proběhne 2. a 3. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Po 9 týdnech vývoje od vydání Linuxu 6.10 oznámil Linus Torvalds vydání Linuxu 6.11. Z Vídně, jelikož tam zítra začíná Open Source Summit Europe. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Grocy je open source ERP systém. Ne však pro plánování zdrojů v podnicích ale v domácnostech. Spravovat lze zásoby, povinnosti a úkoly. Vytvářet nákupní seznamy. Ověřovat dostupnost surovin pro recepty. Plánovat jídelníčky. Vyzkoušet lze online demo. Vývoj probíhá na GitHubu.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
3D tiskárny Original Prusa MK4S (a MK4) v kombinaci s Prusamenty PLA a PETG mají mezinárodně uznávanou certifikaci UL 2904 GREENGUARD, která potvrzuje splnění přísných bezpečnostních standardů pro VOC a UFP.
Byla vydána verze R1/beta5 open source operačního systému Haiku (Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání.
Sovereign Tech Fund (Wikipedie), tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří Sambu částkou 688 800 eur.
int main(void){ pid_t id; printf("tento text se vypíše dvakrát"); if ((id = fork()) == 0) { /* synovský proces */ putchar('\n'); } else if (id > 0) { /* otcovský proces */ putchar('\n'); } else { perror("fork"); return 1; /* chyba při fork() */ } return 0; }chtel bych vedet, jaktoze se funkce printf provede 2x? moje myslenka je, ze po vytvoreni procesu jak parent tak child pokracuji dale v programu.
fork()
.
FILE*
, prostě nejdřív cachují do paměti a až když tam pošleš znak konce řádku, tak se to odpálí syscallem do kernelu. (Proto taky ty funkce pracují se strukturou FILE a ne rovnou s číselným deskriptorem.)
Takže co se stane - do té cache uložíš ten text, ale ten se ve skutečnosti nikam nevypíše. Pak rozmnožíš ten proces, takže teď každý proces má svou vlastní verzi cache s tím textem. A v obou procesech ji celou odpálíš tím znakem '\n'
.
Je to evidentní z výpisu programu strace -f
.
printf
vložit fflush(stdout);
nebo dát do printf znak konce řádku (\n
).
man stdout
? Číst zrovna tuhle manuálovou stránku by mě na jeho místě asi taky nenapadlo. I když úplně nejlepší je si přečíst všechny manuálový stránky
PID User space | Kernel space 1 FILE *stream1 → int fd1 --→ int kfd1Situace po forku:
PID User space | Kernel space 1 FILE *stream1 → int fd1 -+→ int kfd1 2 FILE *stream1 → int fd1 -+Je třeba brát na zřetel, že struct FILE obsahuje vlastní buffer a ukazatel v uživatelském prostoru, tudíž po forku dojde k jeho duplikaci a vzájemné nezávislosti. Naopak int fd v uživ. prostoru je jen číslo, které si jádro spolu s PID přemapuje na interní deskriptor. Buffer file/socket descriptoru je v prostoru jádra a je jenom jeden.
Tiskni Sdílej: