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
Införandet
- Mål
- Vem du är
- Stiftelsen Linux
- Linux Grundläggande utbildning
- Certifieringsprogram och digital märkning
- Linux Distributioner
- Plattformar
- Förbereda ditt system
- Använda och ladda ned en virtuell dator
- Saker och ting förändras i Linux
Förberedelser
- Procedurer
- standarder och LSB
Hur man arbetar i OSS-projekt **
- Översikt över hur du bidrar på rätt sätt
- Håll dig nära huvudlinjen för säkerhet och kvalitet
- Studera och förstå projektets DNA
- Ta reda på vilken klåda du vill Scratch
- Identifiera förvaltare och deras arbetsflöden och metoder
- Få tidig input och arbeta öppet
- Bidra med inkrementella bitar, inte stora koddumpar
- Lämna ditt ego vid dörren: Var inte tunnhudad
- Ha tålamod, utveckla långsiktiga relationer, var hjälpsam
Kompilatorer
- GCC
- Andra kompilatorer
- Större gcc-alternativ
- Preprocessor
- Integrerade utvecklingsmiljöer (IDE)
- Labs
Bibliotek
- Statiska bibliotek
- Delade bibliotek
- Länka till bibliotek
- Dynamisk länkande lastare
- Labs
Göra
- Använda make och makefiles
- Bygga stora projekt
- Mer komplicerade regler
- Inbyggda regler
- Labs
Kontroll av källa
- Kontroll av källa
- RCS och CVS
- Subversion
- Git
- Labs
Felsökning och kärndumpar
- Gdb
- Vad är Core Dump-filer?
- Producera kärndumpar
- Undersöka kärndumpar
- Labs
Felsökningsverktyg
- Att få tiden
- Profilering och prestanda
- valgrind
- Labs
Systemanrop
- Systemanrop kontra biblioteksfunktioner
- Hur systemanrop görs
- Returvärden och felnummer
- Labs
Minne Management och allokering
- Minne Management
- Dynamisk allokering
- Stämning malloc()
- Låsa sidor
- Labs
Filer och filsystem i Linux **
- Filer, kataloger och enheter
- Det virtuella filsystemet
- Filsystemet ext2/ext3
- Journalföring av filsystem
- Ext4/ Filsystemet
- Labs
Fil I/O
- UNIX-fil I/O
- Öppning och stängning
- Läsa, skriva och söka
- Positionell och vektor-I/O
- Standard I/O-bibliotek
- Stöd för stora filer (LFS)
- Labs
Avancerade filåtgärder
- Stat-funktioner
- Katalogfunktioner
- inotify
- Mappning av minne
- flock() och fcntl()
- Skapa temporära filer
- Andra systemanrop
- Labs
Processer I
- Vad är en process?
- Processgränser
- Processgrupper
- Proc-filsystemet
- InterProcess Communication-metoder
- Labs
Processer II
- Använda system() för att skapa en process
- Använda fork() för att skapa en process
- Använda exec() för att skapa en process
- Använda clone()
- Spännande
- Konstruktörer och destruktörer
- Väntan
- Daemon-processer
- Labs
Rör och Fifos
- Rör och InterProcess Communication
- popen() och pclose()
- rör()
- Namngivna pipes (FIFOs)
- splice(), vmsplice() och tee()
- Labs
Asynkron I/O**
- Vad är asynkron I/O?
- POSIX:s asynkrona I/O-API
- Linux Genomförande
- Labs
Signaler I
- Vad är signaler?
- Tillgängliga signaler
- Skicka signaler
- Larm, paus och sömn
- Ställa in en signalhanterare
- Signaluppsättningar
- sigaction()
- Labs
Signaler II
- Återinträdes- och signalhanterare
- Hoppning och icke-lokala returer
- siginfo och sigqueue()
- Signaler i realtid
- Labs
POSIX-trådar I
- Multitrådning under Linux
- Grundläggande programstruktur
- Skapa och förstöra trådar
- Signaler och trådar
- Gaffling vs. gängning
- Labs
POSIX-gängor II
- Dödlägen och tävlingsförhållanden
- Mutex-åtgärder
- Semaforer
- Futexes
- Villkorliga åtgärder
- Labs
Networking och uttag
- Networking Skikt
- Vad är uttag?
- Strömma uttag
- Sockets för datagram
- Råa uttag
- Byte ordning
- Labs
Socketadresser och värdar
- Strukturer för socketadresser
- Konvertera IP-adresser
- Information om värden
- Labs
Socket-portar och protokoll
- Information om serviceport
- Information om protokollet
- Labs
Sockets-klienter
- Grundläggande klientsekvens
- uttag()
- ansluta()
- close() och shutdown()
- UNIX-klient
- Internetklient
- Labs
Sockets-servrar
- Grundläggande serversekvens
- bind()
- lyssna()
- acceptera()
- UNIX-server
- Internet-server
- Labs
Sockets in-/utgångsoperationer
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
Alternativ för uttag
- Hämta och ställa in uttagsalternativ
- fcntl()
- ioctl()
- getsockopt() och setsockopt()
- Labs
Netlink-uttag**
- Vad är netlink Sockets?
- Öppna ett nätlänkuttag
- netlink Meddelanden
- Labs
Sockets , multiplexering och samtidiga servrar
- Multiplexad och asynkron socket-I/O
- Välj()
- poll()
- pselect() och ppoll()
- epoll epoll
- Signaldriven och asynkron I/O
- Samtidiga servrar
- Labs
Inter Process Communication
- Metoder för IPC
- POSIX IPC
- System V IPC**
- Labs
Delat minne
- Vad är delat minne?
- POSIX-delat minne
- System V delat minne**
- Labs
Semaforer
- Vad är en semafor?
- POSIX-semaforer
- System V-semaforer**
- Labs
Meddelandeköer
- Vad är meddelandeköer?
- POSIX-meddelandeköer
- System V-meddelandeköer**
- Labs
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