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
Introduksjon
- Mål
- Hvem du er
- Stiftelsen Linux
- Linux Grunnleggende opplæring
- Sertifiseringsprogrammer og digital merking
- Linux Distribusjoner
- Plattformer
- Klargjøring av systemet ditt
- Bruke og laste ned en virtuell maskin
- Ting endrer seg i Linux
Innledende
- Prosedyrer
- Standarder og LSB
Hvordan jobbe i OSS-prosjekter **
- Oversikt over hvordan du kan bidra på riktig måte
- Hold deg nær hovedlinjen for sikkerhet og kvalitet
- Studer og forstå prosjektets DNA
- Finn ut hva du vil klø Scratch
- Identifiser vedlikeholdere og deres arbeidsflyter og metoder
- Få tidlig input og arbeid i det åpne
- Bidra med inkrementelle biter, ikke store kodedumper
- La ditt ego stå ved døren: Ikke vær tynnhudet
- Vær tålmodig, utvikle langsiktige forhold, vær hjelpsom
Kompilatorer
- GCC
- Andre kompilatorer
- Store gcc-alternativer
- Forbehandler
- Integrerte utviklingsmiljøer (IDE)
- Labs
Biblioteker
- Statiske biblioteker
- Delte biblioteker
- Lenke til biblioteker
- Dynamic Linking Loader
- Labs
Gjøre
- Bruker make og Makefiles
- Bygge store prosjekter
- Mer kompliserte regler
- Innebygde regler
- Labs
Kildekontroll
- Kildekontroll
- RCS og CVS
- Subversion
- git
- Labs
Debugging og Core Dumps
- gdb
- Hva er Core Dump-filer?
- Produserer kjernedumper
- Undersøker kjernedumper
- Labs
Feilsøkingsverktøy
- Får tiden
- Profilering og ytelse
- valgrind
- Labs
Systemanrop
- Systemanrop vs. bibliotekfunksjoner
- Hvordan systemanrop foretas
- Returverdier og feiltall
- Labs
Minne Management og allokering
- Minne Management
- Dynamisk tildeling
- Tuning malloc()
- Låse sider
- Labs
Filer og filsystemer i Linux **
- Filer, kataloger og enheter
- Det virtuelle filsystemet
- ext2/ext3 filsystemet
- Journalføring filsystemer
- ext4/ filsystemet
- Labs
Fil I/O
- UNIX-fil I/O
- Åpning og lukking
- Lese, skrive og søke
- Posisjonell og vektor I/O
- Standard I/O-bibliotek
- Støtte for store filer (LFS)
- Labs
Avanserte filoperasjoner
- Statistiske funksjoner
- Katalogfunksjoner
- inotifisere
- Minnekartlegging
- flock() og fcntl()
- Lage midlertidige filer
- Andre systemanrop
- Labs
Prosesser I
- Hva er en prosess?
- Prosessgrenser
- Prosessgrupper
- Proc-filsystemet
- InterProcess Communication Metoder
- Labs
Prosesser II
- Bruke system() for å lage en prosess
- Bruke fork() for å lage en prosess
- Bruke exec() for å lage en prosess
- Bruke klone()
- Avslutter
- Konstruktører og destruktorer
- Venter
- Demonprosesser
- Labs
Rør og Fifos
- Rør og interprosess Communication
- popen() og pclose()
- rør()
- Navngitte rør (FIFOer)
- splice(), vmsplice() og tee()
- Labs
Asynkron I/O**
- Hva er Asynkron I/O?
- POSIX Asynchronous I/O API
- Linux Implementering
- Labs
Signaler I
- Hva er signaler?
- Signaler tilgjengelig
- Sender ut signaler
- Alarmer, pause og sove
- Sette opp en signalbehandler
- Signalsett
- sigaction()
- Labs
Signaler II
- Reentrancy og signalbehandlere
- Hopp og ikke-lokale returer
- siginfo og sigqueue()
- Sanntidssignaler
- Labs
POSIX-tråder I
- Multithreading under Linux
- Grunnleggende programstruktur
- Opprette og ødelegge tråder
- Signaler og tråder
- Forking vs Threading
- Labs
POSIX-tråder II
- Vranglås og løpsforhold
- Mutex-operasjoner
- Semaforer
- Futexes
- Betingede operasjoner
- Labs
Networking og stikkontakter
- Networking Lag
- Hva er Sockets?
- Stream Sockets
- Datagram kontakter
- Raw Sockets
- Bytebestilling
- Labs
Sockets adresser og verter
- Socket adressestrukturer
- Konvertering av IP-adresser
- Vertsinformasjon
- Labs
Sockets Porter og protokoller
- Serviceportinformasjon
- Protokollinformasjon
- Labs
Sockets klienter
- Grunnleggende klientsekvens
- stikkontakt()
- koble()
- close() og shutdown()
- UNIX-klient
- Internett-klient
- Labs
Sockets servere
- Grunnleggende serversekvens
- binde()
- lytte()
- aksepterer()
- UNIX-server
- Internett-server
- Labs
Sockets Input/Output operasjoner
- Skriv les()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- Send fil()
- socketpair()
- Labs
Alternativer for stikkontakter
- Få og stille inn socketalternativer
- fcntl()
- ioctl()
- getsockopt() og setsockopt()
- Labs
Netlink Sockets**
- Hva er netlink Sockets?
- Åpne en netlink-socket
- netlink meldinger
- Labs
Sockets multipleksing og samtidige servere
- Multipleks og asynkron socket I/O
- plukke ut()
- avstemming()
- pselect() og ppoll()
- epoll
- Signaldrevet og asynkron I/O
- Samtidige servere
- Labs
Interprosess Communication
- Metoder for IPC
- POSIX IPC
- System V IPC**
- Labs
Delt minne
- Hva er delt minne?
- POSIX delt minne
- System V delt minne**
- Labs
Semaforer
- Hva er en semafor?
- POSIX semaforer
- System V semaforer**
- Labs
Meldingskøer
- Hva er meldingskøer?
- POSIX meldingskøer
- System V meldingskøer**
- Labs
Krav
Dette kurset er for erfarne utviklere. Studentene bør være dyktige i C-programmering, og være kjent med grunnleggende Linux-verktøy og tekstredigerere.
Publikum
Dette kurset er for erfarne utviklere. Studentene bør være dyktige i C-programmering, og være kjent med grunnleggende Linux-verktøy og tekstredigerere.
Erfaringsnivå: Middels
28 timer