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

Antal deltagare


Price per participant

Upcoming Courses

Relaterade Kategorier