Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
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