Kursplan

Introduksjon

  •  Mål
  •  Hvem du er
  •  The Linux Foundation
  •  Linux Foundation Training
  •  Sertifiseringsprogrammer og Digital Badging
  •  Linux distribusjoner
  •  Plattformer
  •  Forberedelse av systemet
  •  Bruk og nedlasting av en virtuell maskin
  •  Ting endrer seg i Linux

Forberedelser

  •  Prosedyrer
  •  Standarder og LSB

Hvordan arbeide i OSS-prosjekter **

  •  Oversikt over hvordan du bidrar riktig
  •  Hold deg nær hovedlinjen for sikkerhet og kvalitet
  •  Studér og forstå prosjektets DNA
  •  Finn ut hva du vil gjøre
  •  Identifiser vedlikeholdere og deres arbeidsflyt og metoder
  •  Få tidlig input og arbeid åpent
  •  Bidra med små biter, ikke store kodedump
  •  La egoset være utenfor døren: Ikke være sensitiv
  •  Vær tålmodig, utvikl langvarige forhold, vær hjelpsom

Kompilatorer

  •  GCC
  •  Andre kompilatorer
  •  Hovedalternativer for gcc
  •  Forhåndskompilerer
  •  Integrerte utviklingsmiljøer (IDE)
  •  Laboratorier

Biblioteker

  •  Statiske biblioteker
  •  Delte biblioteker
  •  Linking til biblioteker
  •  Dynamisk lenkerlastning
  •  Laboratorier

Make

  •  Bruk av make og Makefiles
  •  Bygging av store prosjekter
  •  Mer kompliserte regler
  •  Innbygde regler
  •  Laboratorier

Kildekontroll

  •  Kildekontroll
  •  RCS og CVS
  •  Subversion
  •  git
  •  Laboratorier

Feilsøking og Core Dumps

  •  gdb
  •  Hva er Core Dump-filer?
  •  Generering av Core Dumps
  •  Eksamen av Core Dumps
  •  Laboratorier

Feilsøkingsverktøy

  •  Å få tiden
  •  Profilering og ytelse
  •  valgrind
  •  Laboratorier

Systemkall

  •  Systemkall vs. biblioteksfunksjoner
  •  Hvordan systemkall utføres
  •  Returverdier og feilkoder
  •  Laboratorier

Minnehåndtering og tilordning

  •  Minnehåndtering
  •  Dynamisk tilordning
  •  Tuning av malloc()
  •  Låsing av sider
  •  Laboratorier

Filer og filsystemer i Linux **

  •  Filer, mapper og enheter
  •  Det virtuelle filsystemet
  •  Det ext2/ext3-filsystemet
  •  Journalerende filsystemer
  •  Det ext4-filsystemet
  •  Laboratorier

Fil-I/O

  •  UNIX-fil-I/O
  •  Åpning og lukking
  •  Lesing, skriving og søking
  •  Posisjonell og vektor I/O
  •  Standard I/O-bibliotek
  •  Støtte for store filer (LFS)
  •  Laboratorier

Avanserte filoperasjoner

  •  Stat-funksjoner
  •  Mappefunksjoner
  •  inotify
  •  Minneavbilding
  •  flock() og fcntl()
  •  Oppretting av midlertidige filer
  •  Andre systemkall
  •  Laboratorier

Prosesser  I

  •  Hva er en prosess?
  •  Prosessgrenser
  •  Prosessgrupper
  •  Proc-filsystemet
  •  Muligheter for interprosesskommunikasjon
  •  Laboratorier

Prosesser  II

  •  Bruk av system() for å opprette en prosess
  •  Bruk av fork() for å opprette en prosess
  •  Bruk av exec() for å opprette en prosess
  •  Bruk av clone()
  •  Avslutting
  •  Konstruktører og destruktører
  •  Venting
  •  Demonprosesser
  •  Laboratorier

Rør og FIFO'er

  •  Rør og interprosesskommunikasjon
  •  popen() og pclose()
  •  pipe()
  •  Navngitte rør (FIFO'er)
  •  splice(), vmsplice() og tee()
  •  Laboratorier

Asynkron I/O **

  •  Hva er asynkron I/O?
  •  POSIX-asynkron I/O-API
  •  Linux-implementering
  •  Laboratorier

Signaler  I

  •  Hva er signaler?
  •  Tilgjengelige signaler
  •  Sending av signaler
  •  Alarmer, pausing og sovning
  •  Oppsett av signalhåndterer
  •  Signalgrupper
  •  sigaction()
  •  Laboratorier

Signaler  II

  •  Gjengjeldbarhet og signalhåndterere
  •  Hopp og ikke-lokale returer
  •  siginfo og sigqueue()
  •  Ekte tids signaler
  •  Laboratorier

POSIX-tråder  I

  •  Multithreading under Linux
  •  Grundleggende programstruktur
  •  Oppretting og sletting av tråder
  •  Signaler og tråder
  •  Forking vs. threading
  •  Laboratorier

POSIX-tråder  II

  •  Deadlocks og race conditions
  •  Mutex-operasjoner
  •  Semaforer
  •  Futexes
  •  Betingede operasjoner
  •  Laboratorier

Nettverks- og sokkelprogrammering

  •  Nettverkssjikt
  •  Hva er sokkeler?
  •  Stream-sokkeler
  •  Datagramsokkeler
  •  Rå sokkeler
  •  Byte-ordering
  •  Laboratorier

Sokkeler  Adresser og verter

  •  Sokkeladresse-strukturer
  •  Konvertering av IP-adresser
  •  Vertsinformasjon
  •  Laboratorier

Sokkeler  Porter og protokoller

  •  Tjenesteportinformasjon
  •  Protokollinformasjon
  •  Laboratorier

Sokkeler  Klienter

  •  Grundleggende klientsekvens
  •  socket()
  •  connect()
  •  close() og shutdown()
  •  UNIX-klient
  •  Internettklient
  •  Laboratorier

Sokkeler  Tjenere

  •  Grundleggende tjenesekvens
  •  bind()
  •  listen()
  •  accept()
  •  UNIX-tjener
  •  Internett-tjener
  •  Laboratorier

Sokkeler  Inn-/utdataoperasjoner

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Laboratorier

Sokkeler  Alternativer

  •  Å hente og sette sokkelalternativer
  •  fcntl()
  •  ioctl()
  •  getsockopt() og setsockopt()
  •  Laboratorier

Netlink-sokkeler **

  •  Hva er netlink-sokkeler?
  •  Åpning av en netlink-sokkel
  •  Netlink-meldinger
  •  Laboratorier

Sokkeler  Multiplexing og konkurranse tjenere

  •  Multiplexert og asynkron sokkel I/O
  •  select()
  •  poll()
  •  pselect() og ppoll()
  •  epoll
  •  Signaldrevet og asynkron I/O
  •  Konkurranse tjenere
  •  Laboratorier

Inter prosess kommunikasjon

  •  Metoder for IPC
  •  POSIX IPC
  •  System V IPC **
  •  Laboratorier

Delt minne

  •  Hva er delt minne?
  •  POSIX delt minne
  •  System V delt minne **
  •  Laboratorier

Semaforer

  •  Hva er en semafor?
  •  POSIX-semaforer
  •  System V-semaforer **
  •  Laboratorier

Meldebokser

  •  Hva er meldingkøer?
  •  POSIX-meldingkøer
  •  System V meldingkøer **
  •  Laboratorier

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

Antall deltakere


Price per participant

Upcoming Courses

Related Categories