
Linux Rendszerprogramozás Tanfolyam
Merüljön el mélyen a Linux rendszermagjában, és tanuljon meg olyan éles szintű C programokat írni, amelyek közvetlenül kommunikálnak az operációs rendszerrel. Ez a kurzus a fájl I/O-t, folyamatokat, jeleket, IPC-t, memóriakezelést, socketeket és a többszálú feldolgozást az alapoktól fedi le. Minden témakör valós rendszerhívásokon, működő kódon és azokon a mentális modelleken alapul, amelyeket a szakemberek nap mint nap használnak.
Mit fogsz megtanulni:
Pontos megértést fog kialakítani arról, hogy a Linux hogyan kezeli a folyamatokat, memóriát, fájlokat és hálózati kapcsolatokat rendszerszintű hívás szinten. C programokat fog írni, amelyek POSIX API-kat használnak fájl I/O-hoz, folyamatközi kommunikációhoz és socket-alapú hálózatkezeléshez. Többszálú alkalmazásokat fog megvalósítani és kiküszöböli az adatütközéseket a pthreads szinkronizációs primitívek segítségével. Olyan fejlett eszközöket fog alkalmazni, mint a GDB, strace, Valgrind, AddressSanitizer, perf és io_uring. Továbbá foglalkozni fog a Linux biztonsági primitívjeivel, például névterekkel, seccomppal és képességekkel. A kurzus végére rendelkezni fog azokkal a készségekkel, amelyek szükségesek a rendszerszoftverek tervezéséhez, hibakereséséhez és optimalizálásához, amelyek megbízhatóan futnak éles Linux környezetekben.
Hogyan tanulhatsz gyakorlatiasan Linux Rendszerprogramozás Tanfolyam
Hogyan gyakorolsz Linux Rendszerprogramozás Tanfolyam
Önnek, ha vállalatként szeretné képezni a csapatát
A Dedika vállalatoknak szóló képzésein a tanfolyam saját üzleti példákkal és gyakorlatokkal, az Ön cégének igényeihez igazítva érhető el.
A kurzus tartalma
8 Fejezet • 40 Óra4 és 360 óra közötti időtartam (te döntesz)
1. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseLinux Rendszerprogramozási Alapok
Linux Rendszerprogramozási Alapok
1. óra • Bevezetés a Rendszerhívásokba
Bemutatja, hogyan hívhatnak meg a felhasználói programok kernelszolgáltatásokat a glibc burkolófüggvényeken és a nyers syscall-on keresztül. Összeköti a C könyvtárfüggvényeket az alapul szolgáló kernelműveletekkel.
2. óra • Linux Architektúra és Kernel Áttekintés
Leírja a kernel és a felhasználói tér közötti különbséget, a monolitikus kerneltervet és a hardver-absztrakciós réteget. Megalapozza azt a koncepcionális keretrendszert, amelyre az összes további programozási téma épül.
3. óra • Fordítás, Linkelés és Betöltés
Elmagyarázza a teljes eszközlánc-folyamatot a forráskódtól a végrehajtható állományig, beleértve a statikus és dinamikus linkelést. Felkészíti a hallgatókat a fordítási hibák diagnosztizálására és a bináris szerkezet megértésére.
4. óra • C Nyelvi Alapismeretek Rendszerprogramozáshoz
Áttekinti a mutatók, a memóriaelrendezés, a struktúrák és a bitenkénti műveletek kritikus fontosságú elemeit a rendszerkódokban. Áthidalja az általános C ismereteket a kurzus során használt alacsony szintű mintákhoz.
5. óra • Fejlesztői Környezet Beállítása
Konfigurál egy Linux fejlesztői környezetet GCC-vel, GDB-vel, Make-val és az alapvető könyvtárakkal. Biztosítja, hogy minden hallgató rendelkezzen egy reprodukálható fordítási alapkonfigurációval, mielőtt bármilyen kódot írna.
2. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseFájl I/O és a VFS Réteg
Fájl I/O és a VFS Réteg
1. óra • Könyvtár- és Metaadat-műveletek
A stat() függvény, a könyvtárbejárás és a linkek kezelését tanítja, beleértve a kemény és szimbolikus linkeket is. Lehetővé teszi, hogy a programok programozottan vizsgálják és módosítsák a fájlrendszer szerkezetét.
2. óra • POSIX Fájlműveletek
Lefedi az open(), read(), write(), lseek() és close() függvényeket az összes releváns jelzővel és móddal. Megtanítja a helyes használati mintákat és a gyakori buktatókat, mint például a részleges olvasások és írások.
3. óra • Memórialeképezett Fájlok
Bemutatja az mmap() használatát fájlok folyamatcímterébe történő leképezésére a gyors I/O és a megosztott adatok érdekében. Összeköti a fájl I/O-t a későbbi fejezetekben bemutatott virtuális memória fogalmakkal.
4. óra • Fájlleírók és Megnyitott Fájlok
Elmagyarázza a megnyitott fájlok tábláját, a fájlleíró egész számokat és a mögöttük álló kernel adatszerkezeteket. Minden további I/O munkát a kernel által a megnyitott fájlok nyomon követésére használt pontos modellre alapoz.
5. óra • Haladó Fájlműveletek
Bemutatja a szórvány-gyűjtő I/O-t, a fájl csonkítást és a lyukasztást ritka fájlokhoz. Kiterjeszti az alapvető I/O készségeket a nagy teljesítményű és tárhelyhatékony forgatókönyvekre.
3. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseFolyamatok: Létrehozás, Vezérlés és Befejezés
Folyamatok: Létrehozás, Vezérlés és Befejezés
1. óra • Folyamat Belső Működés és Attribútumok
Vizsgálja a PID, PPID, UID, GID értékeket és a kernel által karbantartott folyamatleíró mezőket. Megadja a folyamatok programozott vezérléséhez szükséges szókincset és adatmodellt.
2. óra • Gyermekfolyamatokra Várakozás és Befejezésük
A wait(), waitpid() és waitid() függvények tanítása a gyermek kilépési státuszának begyűjtésére és a zombik megelőzésére. Biztosítja, hogy a hallgatók szivárgásmentes, többfolyamatos programokat írjanak.
3. óra • Programok Végrehajtása az exec() segítségével
Elmagyarázza az exec családot, az argumentum- és környezetátadást, valamint azt, hogy mi marad meg az exec során. Lehetővé teszi a hallgatók számára, hogy héjakat és folyamatindítókat építsenek, amelyek helyesen cserélik le a folyamat képmását.
4. óra • Folyamatok Létrehozása a fork() segítségével
Lefedi a másolás íráskor szemantikát, a visszatérési érték kezelését és az erőforrás-öröklést fork() után. Megalapozza a kurzus összes többfolyamatos programozási mintáját.
5. óra • Folyamat Hitelesítő Adatok és Jogosultságok
Lefedi a setuid/setgid biteket, a képességhalmazokat és a jogosultságok eldobását a biztonságos folyamattervezés érdekében. Felkészíti a hallgatókat olyan programok írására, amelyek biztonságosan kezelik a megemelt jogosultságokat.
4. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseJelek: Kézbesítés, Kezelés és Maszkolás
Jelek: Kézbesítés, Kezelés és Maszkolás
1. óra • Jel Fogalmak és Szabványos Jelek
Bemutatja a jelszámokat, az alapértelmezett dispozíciókat és a kernel kézbesítési mechanizmusát. Megalapozza azt a koncepcionális modellt, amely a jelkezelő kód megírása előtt szükséges.
2. óra • Jel Maszkok és Blokkolás
A sigprocmask(), a sigset_t manipuláció és a kritikus szakaszok blokkolással történő védelmének tanítása. Lehetővé teszi a hallgatók számára, hogy megelőzzék a jelversenyhelyzeteket a több lépésből álló műveletekben.
3. óra • Aszinkron-Jel-Biztos Programozás
Azonosítja az aszinkron-jel-biztos függvényeket és mintákat a helyes, reentráns kezelők írásához. Megelőzi azokat a finom hibákat, amelyek a nem biztonságos függvények kezelőkön belüli meghívásából származnak.
4. óra • Valós Idejű Jelek és a signalfd
Lefedi a POSIX valós idejű jeleket, a sorba állítási garanciákat és a signalfd() felületet a szinkron kezeléshez. Kiterjeszti a jelkészségeket a nagy megbízhatóságú és eseményvezérelt architektúrákra.
5. óra • Jelkezelők Telepítése
Lefedi a sigaction() struktúrát, az SA_jelzőket és a különbségeket a régi signal() függvénytől. Megtanítja a helyes, hordozható módot a versenyhelyzeteket elkerülő kezelők telepítésére.
5. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseFolyamatok Közötti Kommunikáció
Folyamatok Közötti Kommunikáció
1. óra • POSIX Üzenetsorok
Az mq_open(), mq_send(), mq_receive() és a prioritás alapú üzenetkézbesítés tanítása. Strukturált, típusos alternatívát nyújt a bájfolyam-csövek helyett az üzenet-orientált IPC-hez.
2. óra • IPC Mechanizmusok Összehasonlítása és Kiválasztása
Elemzi az átviteli sebesség, késleltetés, komplexitás és perzisztencia közötti kompromisszumokat az összes IPC típus között. Felkészíti a hallgatókat a megalapozott architekturális döntések meghozatalára valós rendszertervekben.
3. óra • POSIX Szemaforok
Lefedi a névvel ellátott és névtelen szemaforokat, a sem_wait/sem_post függvényeket és a kölcsönös kizárás mintáit. Biztosítja a szinkronizációs réteget, amely a megosztott memória biztonságos használatához szükséges.
4. óra • Csövek és FIFO-k
Lefedi a névtelen csöveket, a FIFO létrehozást és a termelő-fogyasztó mintát rokon és nem rokon folyamatok számára. Bemutatja az egyirányú bájfolyam IPC-t, mint a legegyszerűbb koordinációs primitívet.
5. óra • POSIX Megosztott Memória
A shm_open(), ftruncate() és mmap() használatának bemutatása megosztott memóriaterületek létrehozására folyamatok között. Lehetővé teszi a nagy áteresztőképességű, nulla másolású adatcserét, és felkészíti a hallgatókat a szemafor alapú szinkronizációra.
6. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseMemóriakezelés és Virtuális Memória
Memóriakezelés és Virtuális Memória
1. óra • Fejlett mmap() Használat
Bemutatja a MAP_ANONYMOUS, MAP_FIXED, az óriáslapokat és az madvise() használatát a teljesítmény hangolásához. Kiterjeszti az mmap() készségeket a fájl I/O-ról az általános célú memóriakezelésre.
2. óra • Heap Foglalás és a Foglaló
Lefedi a malloc(), calloc(), realloc(), free() függvényeket és a glibc foglaló belső működését, beleértve az arénákat is. Megtanítja a helyes foglalási mintákat és a heap sérülésének elkerülését.
3. óra • Memória Védelem és Engedélyek
Az mprotect() tanítása a lapengedélyek megváltoztatására és az őrző lapok használatára puffer túlcsordulás észlelésére. Lehetővé teszi a hallgatók számára, hogy biztonsági megerősítési technikákat valósítsanak meg a memória szintjén.
4. óra • Virtuális Memória Architektúra
Elmagyarázza a laptáblákat, a virtuális címtér elrendezését és a /proc/pid/maps felületet. Megadja azt a mentális modellt, amely a foglaló viselkedésének és az mmap() szemantikájának megértéséhez szükséges.
5. óra • Memóriahibák Észlelése és Javítása
A Valgrind, AddressSanitizer és LeakSanitizer használata szivárgások, használat utáni felszabadítás és túlcsordulások megtalálására. Kiépíti a termelési minőségű memóriabiztonság fenntartásához szükséges diagnosztikai készségeket.
7. fejezetElrejtésRészletek elrejtéseRészletek megtekintésePOSIX Szálak és Szinkronizáció
POSIX Szálak és Szinkronizáció
1. óra • Szál Létrehozás és Életciklus
Lefedi a pthread_create() függvényt, a szál attribútumokat, a leválasztott állapotot és a pthread_join() függvényt. Megalapozza azt a szál életciklus modellt, amelyre az összes szinkronizációs téma épül.
2. óra • Olvasás-Írás Zárak és Korlátok
Lefedi az rwlock-ot az olvasás-igényes munkaterhelésekhez és a pthread_barrier-t a fázis szinkronizációhoz. Kiterjeszti a szinkronizációs eszközkészletet azokra a mintákra, ahol a kizárólagos zárolás túl durva.
3. óra • Feltételváltozók
Bemutatja a pthread_cond_wait() függvényt, a hamis felébresztéseket és a predikátum ciklus mintát. Lehetővé teszi a szálak számára, hogy hatékonyan várjanak állapotváltozásokra anélkül, hogy foglalt várakozást végeznének.
4. óra • Mutexek és Kritikus Szakaszok
A mutex inicializálás, a lock/unlock fegyelem és a hibajelző mutex típusok tanítása. Biztosítja az elsődleges eszközt a megosztott adatok egyidejű módosítástól való védelmére.
5. óra • Szál-Helyi Tárhely és Biztonság
Elmagyarázza a __thread, pthread_key_t és az aszinkron-jel biztonságot a többszálú programokban. Olyan mintákat tanít a szálonkénti állapothoz, amelyek elkerülik a megosztást és csökkentik a lock versengést.
8. fejezetElrejtésRészletek elrejtéseRészletek megtekintéseSocketek és Hálózati Programozás
Socketek és Hálózati Programozás
1. óra • Nem Blokkoló I/O és epoll
Megvalósít egy eseményvezérelt szervert nem blokkoló socketek, az epoll_create() és az élvezérelt mód használatával. A kapcsolatkezelést a szálankénti egy kapcsolat modellen túlra skálázza.
2. óra • Socket API Alapok
Lefedi a socket(), bind(), listen(), accept(), connect() függvényeket és a címstruktúrákat IPv4 és IPv6 esetén. Megalapozza azt a mag API felületet, amelyre az összes hálózati programozás épül.
3. óra • UDP és Datagram Socketek
Lefedi a sendto(), recvfrom() függvényeket és a kapcsolat nélküli kommunikációs mintákat UDP esetén. Szembeállítja az UDP megbízhatatlan kézbesítését a TCP-vel, és azonosítja a megfelelő használati eseteket.
4. óra • Socket Opciók és Fejlett Funkciók
A getsockopt()/setsockopt() használatának tanítása pufferek hangolására, keepalive beállítására és a Nagle algoritmus vezérlésére. Lehetővé teszi a hálózati kapcsolatok finomhangolását a teljesítmény és a megbízhatóság érdekében.
5. óra • TCP Kliens-Szerver Programozás
Megvalósít egy teljes TCP echo szervert és klienst a megfelelő kapcsolatkezeléssel és bontással. Megtanítja a megbízható adatfolyam-kommunikációt és a részleges küldések és fogadások kezelésének fontosságát.
Érvényes befejezési tanúsítványod
Ez a kurzus neked szól:
Háttérrendszer-fejlesztők, akik szeretnék megérteni, mi történik a keretrendszereik alatt.
Beágyazott rendszermérnökök, akik Linux-alapú platformokra és POSIX API-kra váltanak.
Számítástechnika-szakos diplomások, akik áthidalják a szakmai képzés és az ipari rendszerfejlesztés közötti szakadékot.
DevOps mérnökök, akik rendszermagszintű problémákat szeretnének diagnosztizálni találgatás nélkül.
Hobbiból C-t programozók, akik készen állnak a gyakorlati útmutatókon túllépve a valódi operációs rendszerrel való interakcióra.
Biztonsági kutatók, akiknek meg kell érteniük a Linux belső működését a biztonsági rések megtalálásához.
Mit mondanak a diákjaink
Az órái tökéletesek. Megvettem az egyéves csomagot, és végre lehetőségem van különböző érdekes témákat követni anélkül, hogy platformot kellene váltanom... köszönöm mindazt, amit csinálnak, már ajánlottam is másoknak...

Szeretem, hogy a leckék egyenesen a lényegre térnek, és hogy tudok fejezeteket váltani és átugrani olyan tartalmakat, amikre nincs szükségem.

Szeretem a tartalmat és a videók bemutatási és átírási módját, ami felgyorsítja a folyamatot!

A platform gyors, egyszerű használni. A tartalom sokfélesége és a kiegészítő videók nagyon sokat segítenek a tanulásban.

Főbb képzések
GYIK
Mi a Dedika?
Érvényes a tanúsítvány Magyarországon?
Ingyenesek a tanfolyamok?
Mennyi a tanfolyamok óraszáma?
Milyenek a tanfolyamok?
Hogyan működnek a tanfolyamok?
Mennyi ideig tartanak a tanfolyamok?
Mennyibe kerülnek a tanfolyamok?
Mi az az EAD vagy online tanfolyam, és hogyan működik?
PDF tanfolyam




















