Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Kursplan
Introduktion
- Mål
- Vem du är
- The Linux Foundation
- Linux Foundation Training
- Certifieringsprogram och Digitala Insignier
- Linux Distributioner
- Plattformar
- Förbered din system
- Användning och nedladdning av en Virtuell Maskin
- Ting ändras i Linux
Förberedelser
- Procedurer
- Standarder och LSB
Hur man arbetar i OSS-projekt **
- Översikt över hur man bidrar korrekt
- Stanna nära huvudlinjen för säkerhet och kvalitet
- Studera och förstå projektets DNA
- Bestäm vilken kli du vill kamma
- Identifiera underhållare och deras arbetsflöden och metoder
- Få tidig input och arbete i öppet
- Bidra med inkrementella bitar, inte stora koddumpningar
- Låt ditt ego vid dörren: Var inte känslig
- Var tålig, utveckla långvariga relationer, vara till hjälp
Kompilatorer
- GCC
- Andra kompilatorer
- Huvudsakliga GCC-alternativ
- Förbehandlare
- Integrerade utvecklingsmiljöer (IDE)
- Laborationer
Bibliotek
- Statiska bibliotek
- Delade bibliotek
- Länka till bibliotek
- Dynamisk länkarbete
- Laborationer
Make
- Användning av make och Makefiles
- Bygga stora projekt
- Mer komplicerade regler
- Inbyggda regler
- Laborationer
Källkontroll
- Källkontroll
- RCS och CVS
- Subversion
- git
- Laborationer
Debugging och Core Dumps
- gdb
- Vad är Core Dump-filer?
- Produktion av Core Dumps
- Undersökning av Core Dumps
- Laborationer
Debuggingsverktyg
- Få tid
- Profilering och prestanda
- valgrind
- Laborationer
Systemanrop
- Systemanrop vs. Biblioteksfunktioner
- Hur systemanrop görs
- Returvärden och felnummer
- Laborationer
Minnehantering och -tilldelning
- Minnehantering
- Dynamisk tilldelning
- Inställning av malloc()
- Låsning av sidor
- Laborationer
Filer och filsystem i Linux **
- Filer, kataloger och enheter
- Den virtuella filsystemet
- ext2/ext3-filsystemet
- Journalfilsystem
- ext4-filsystemet
- Laborationer
Fil-I/O
- UNIX Fil-I/O
- Öppning och stängning
- Läsning, skrivning och sökning
- Positionell och vektor-I/O
- Standard I/O-bibliotek
- Stöd för stora filer (LFS)
- Laborationer
Avancerade filoperationer
- Stat-funktioner
- Katalogfunktioner
- inotify
- Minnekoppling
- flock() och fcntl()
- Skapande av tillfälliga filer
- Andra systemanrop
- Laborationer
Processer I
- Vad är en process?
- Processgränser
- Processgrupper
- proc-filsystemet
- Metoder för interprocesskommunikation
- Laborationer
Processer II
- Användning av system() för att skapa en process
- Användning av fork() för att skapa en process
- Användning av exec() för att skapa en process
- Användning av clone()
- Avslutning
- Konstruktörer och destruktörer
- Väntan
- Daemon-processer
- Laborationer
Rör och FIFOs
- Rör och interprocesskommunikation
- popen() och pclose()
- pipe()
- Namngivna rör (FIFOs)
- splice(), vmsplice() och tee()
- Laborationer
Asynkron I/O **
- Vad är asynkron I/O?
- POSIX Asynkron I/O API
- Linux-implementation
- Laborationer
Signaler I
- Vad är signaler?
- Tillgängliga signaler
- Dispatching av signaler
- Alarmklockor, paus och sömn
- Inställning av en signalhanterare
- Signalsatser
- sigaction()
- Laborationer
Signaler II
- Återkommande och signalhanterare
- Hopp och icke-lokala återgångar
- siginfo och sigqueue()
- Real-tidssignaler
- Laborationer
POSIX-trådar I
- Multitrådning under Linux
- Grundläggande programstruktur
- Skapande och förstörande av trådar
- Signaler och trådar
- Forkning vs. trådning
- Laborationer
POSIX-trådar II
- Dödlägen och race conditions
- Mutex-operationer
- Semaforer
- Futexes
- Villkorliga operationer
- Laborationer
Nätverk och Socketar
- Nätverkslager
- Vad är socketar?
- Strömmen socketar
- Datagram socketar
- Rå socketar
- Byteordning
- Laborationer
Socketar Adresser och Vävar
- Socketadressstruktur
- Konvertering av IP-adresser
- Väginformation
- Laborationer
Socketar Portar och Protokoll
- Tjänstportinformation
- Protokollinformation
- Laborationer
Socketar Klienter
- Grundläggande klientsekvens
- socket()
- connect()
- close() och shutdown()
- UNIX-klient
- Internet-klient
- Laborationer
Socketar Servrar
- Grundläggande serversekvens
- bind()
- listen()
- accept()
- UNIX-server
- Internet-server
- Laborationer
Socketar In- och Utdataoperationer
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laborationer
Socketar Alternativ
- Hämtning och inställning av socketalternativ
- fcntl()
- ioctl()
- getsockopt() och setsockopt()
- Laborationer
Netlink Socketar **
- Vad är netlink socketar?
- Öppning av en netlink socket
- Netlink-meddelanden
- Laborationer
Socketar Multiplexering och parallella servrar
- Multiplexad och asynkron socket I/O
- select()
- poll()
- pselect() och ppoll()
- epoll
- Signalstyrd och asynkron I/O
- Parallella servrar
- Laborationer
Inter Process Communication
- Metoder för IPC
- POSIX IPC
- System V IPC **
- Laborationer
Delat minne
- Vad är delat minne?
- POSIX delat minne
- System V delat minne **
- Laborationer
Semaforer
- Vad är en semafor?
- POSIX semaforer
- System V semaforer **
- Laborationer
Meddelandeköer
- Vad är meddelandeköer?
- POSIX meddelandeköer
- System V meddelandeköer **
- Laborationer
Krav
Den här kursen är för erfarna utvecklare. Eleverna bör vara skickliga i C-programmering och vara bekanta med grundläggande Linux verktyg och textredigerare.
Publik
Den här kursen är för erfarna utvecklare. Eleverna bör vara skickliga i C-programmering och vara bekanta med grundläggande Linux verktyg och textredigerare.
Erfarenhetsnivå: Medel
28 timmar