Course Outline

Εισαγωγή

  •  Στόχοι
  •  Ποιοί Είστε
  •  Η Linux Foundation
  •  Εκπαίδευση της Linux Foundation
  •  Προγράμματα Απόδειξης και Διαφημιστικά Σήματα
  •  Διανομές του Linux
  •  Πλατφόρμες
  •  Ετοιμασία του συστήματος
  •  Χρήση και Εγκατάσταση μιας Virtual Machine
  •  Τα πράγματα αλλάνε στο Linux

Προεισαγωγικά Θέματα

  •  Процедуры (Note: This is in Russian, the correct translation should be "_PROCEDURES_")
  •  Στандάρδ και LSB

Πώς να εργαστείτε σε Προγράμματα Δημόσιου Κώδικα (OSS) **

  •  Πανόραμα για τη Σωστή Συμβολή
  •  Μείνε Νόστιμος στο Mainline για Ασφάλεια και Ποιότητα
  •  Εξέταση και Συνειδητοποίηση του ΔΝΑ του Προγράμματος
  •  Βρες ποιο νεύρο θες να σβήσεις (Φράση που δεν μπόρεσε να μεταφραστεί χωρίς τη χάθηκε κατάληψη)
  •  Αναγνώριση Διαχειριστών και Τρόποι Εργασίας
  •  Πήγαινε για Πρώτη Συμβουλή και Λάβε την Έρευνα Κατά Υπόθεση
  •  Συμβάλλε με Μικροσκοπικά Σημεία, όχι Μεγάλες Δυσχέρειες Κώδικα
  •  Αφήστε τον Εγωϊσμό Ξύψιο: Δεν Θα Πρέπει να Μηδενίζετε
  •  Είσαι Αποτελεσματικός, Επικεφαλής στα Χρόνια και Καθοστερημένος

Επεξεργαστές (Compilers)

  •  GCC
  •  Άλλοι Επεξεργαστές
  •  Μεγάλες επιλογές gcc
  •  Προεπεξεργασία
  •  Integrated Development Environments (IDE)
  •  Εργαστήρια

Βιβλιοθήκες

  •  Στατικές Βιβλιοθήκες
  •  Κοινές Βιβλιοθήκες
  •  Σύνδεση με Βιβλιοθήκες
  •  Dynamic Linking Loader
  •  Εργαστήρια

Make

  •  Χρήση make και Makefiles
  •  Δημιουργία μεγάλων προγραμμάτων
  •  Πιόπλέος Κανόνες
  •  Εμπερισθεικότα Κανόνες
  •  Εργαστήρια

Πηγαίος Ελέγχος

  •  Πηγαίος Ελέγχος
  •  RCS και CVS
  •  Subversion
  •  git
  •  Εργαστήρια

Στίβουνες Λάθους (Debugging and Core Dumps)

  •  gdb
  •  Τι είναι τα αρχεία core dump;
  •  Παραγωγή Core Dumps
  •  Εξέταση Core Dumps
  •  Εργαστήρια

Eργαλεία Στίβουνες (Debugging Tools)

  •  Πήρε το χρόνο
  •  Προσωπικοποίηση και Εφαρμογή
  •  valgrind
  •  Εργαστήρια

Κλήσεις σύστημα (System Calls)

  •  Συναφείς κλήσεις σύστημα vs. Βιβλιοθήκη
  •  Πώς γίνονται οι επικλήσεις του συστήματος
  •  Τιμές επιστροφής και αριθμοί λάθους
  •  Εργαστήρια

Διαχείριση Μνήμης και Ανάπτυξη (Memory Management and Allocation)

  •  Διαχείριση μνήμης
  •  Ελεύθερη προσόδωση
  •  Επικυρώσεις malloc()
  •  Κλείσιμο Σελίδων (Locking Pages)
  •  Εργαστήρια

Αρχεία και Δικτύωση στο Linux **

  •  Αρχεία, Καταλόγους και Εξωτερικά μέσα
  •  Το Πραγματικό Δίκτυο των Αρχείων (Virtual File System)
  •  Το ext2/ext3 Filesystem
  •  Δικτύωση και Journaling Filesystems
  •  Το ext4/ Δίκτυο αρχείων
  •  Εργαστήρια

File I/O

  •  UNIX File I/O
  •  Άνοιγμα και Κλείσιμο
  •  Ανάγνωση, Γραφή και Ευρετήριο
  •  Ποθότυπη και Vector I/O
  •  Στανδάρτος Βιβλιοθήκης I/O
  •  Υποστήριξη μεγάλων αρχείων (LFS)
  •  Εργαστήρια

Προχωρημένες Επεξεργασίες Αρχείου

  •  Συνάρτησες Stat
  •  Συνάρτησες Καταλόγων
  •  inotify
  •  Μνημόπληξη
  •  flock() και fcntl()
  •  Δημιουργία Μεσαίων αρχείων
  •  Άλλες Κλήσεις σύστημα
  •  Εργαστήρια

Προγράμματα (Processes) I

  •  Τι είναι ένα πρόγραμμα;
  •  Ορισμοί προγραμμάτων
  •  Ομάδες προγραμμάτων
  •  Το οχήμα proc Filesystem
  •  Μέθοδοι Διαπείρωσης Προγραμμάτων (InterProcess Communication Methods)
  •  Εργαστήρια

Προγράμματα (Processes) II

  •  Χρήση system() για τη Δημιουργία ενός Προγράμματος
  •  Χρήση fork() για τη Δημιουργία ενός Προγράμματος
  •  Χρήση exec() για τη Δημιουργία ενός Προγράμματος
  •  Χρήση clone()
  •  Εξέλιξη
  •  Κατασκευαστές και Διαχειριστές
  •  Μίληση
  •  Daemon Προγράμματα
  •  Εργαστήρια

Σωλήνες και FIFOs

  •  Σωλήνες και Διαπείρωση Προγραμμάτων (Pipes and InterProcess Communication)
  •  popen() και pclose()
  •  pipe()
  •  Ονομαστικός Σωλήνες (FIFOs)
  •  splice(), vmsplice() και tee()
  •  Εργαστήρια

Ασύγχρονη I/O**

  •  Τι είναι η ασύγχρονη I/O;
  •  Η API Ασύγχρονης I/O του POSIX
  •  Εφαρμογή Linux
  •  Εργαστήρια

Σήματα (Signals) I

  •  Τι είναι τα Σήματα;
  •  Διαθέσιμοι από τα Signals
  •  Ανάθεση Συστημικών
  •  Εξονυχισμός, Παύση και Νυσταγμός
  •  Ρύθμιση Επεξεργασίας Signals
  •  Σύνολα Σήματων (Signal Sets)
  •  sigaction()
  •  Εργαστήρια

Σήματα (Signals) II

  •  Ανεπανάληψη και Επεξεργασία Signals
  •  Κινητοποίηση και NonLocal Returns
  •  siginfo και sigqueue()
  •  Πρακτικά Σήματα
  •  Εργαστήρια

Threads POSIX I

  •  Multithreading υπό το Linux
  •  Βασική Συνάρτηση πρόγραμμα
  •  Δημιουργία και Διαγραφή Threads
  •  Σήματα και Threads
  •  Forking vs. Threading
  •  Εργαστήρια

Threads POSIX II

  •  Συμπίεση και Race Conditions
  •  Εργασίες Mutexes
  •  Sempahores
  •  Futexes
  •  Υποθέτουν Επιχειρήσεις
  •  Εργαστήρια

Δίκτυα και Διαδόχη (Networking and Sockets)

  •  Μεθοδολογίες Δικτύου
  •  Τι είναι οι διαδόχες;
  •  Stream Sockets
  •  Datagram Sockets
  •  Raw Sockets
  •  Η τάξη Βυτών (Byte Ordering)
  •  Εργαστήρια

Sockets Addresses και Hosts

  •  Συνεχόμενες Στοιχείων Sockets
  •  Μεταφράστηκαν IP Adresses
  •  Πληροφορίες Hosts
  •  Εργαστήρια

Sockets Ports και Protocols

  •  Πληροφορίες Service Port
  •  Πληροφορίες Πρωτόκολου
  •  Εργαστήρια

Sockets Clients

  •  Βασική Επίσημη Τάξη
  •  socket()
  •  connect()
  •  close() και shutdown()
  •  UNIX Client
  •  Internet Client
  •  Εργαστήρια

Sockets Servers

  •  Βασική Επίσημη Τάξη
  •  bind()
  •  listen()
  •  accept()
  •  UNIX Server
  •  Internet Server
  •  Εργαστήρια

Sockets Input/Output Operations

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Εργαστήρια

Sockets Options

  •  Απόκτηση και Εγκατάσταση Socket Options
  •  fcntl()
  •  ioctl()
  •  getsockopt() και setsockopt()
  •  Εργαστήρια

Netlink Sockets**

  •  Τι είναι τα netlink διαδόχες;
  •  Άνοιγμα ήρωα netlink Socket
  •  netlink Message
  •  Εργαστήρια

Sockets Multiplexing και Concurrent Servers

  •  Multiplexed και Asynchronous Socket I/O
  •  select()
  •  poll()
  •  pselect() και ppoll()
  •  epoll
  •  Σήματα που θέλουν και Asynchronous I/O
  •  Concurrent Servers
  •  Εργαστήρια

Inter Process Communication

  •  Μέθοδοι IPC
  •  POSIX IPC
  •  System V IPC**
  •  Εργαστήρια

Συνημμένη Μνήμη (Shared Memory)

  •  Τι είναι η συνημμένη μνήμη;
  •  POSIX Shared Memory
  •  System V Shared Memory**
  •  Εργαστήρια

Semaphores

  •  Τι είναι ένα Semaphore;
  •  POSIX Semaphores
  •  System V Semaphores**
  •  Εργαστήρια

Message Queues

  •  Τι είναι τα Message Queues;
  •  POSIX Message Queues
  •  System V Message Queues**
  •  Εργαστήρια

Requirements

Αυτό το μάθημα απευθύνεται σε έμπειρους προγραμματιστές. Οι μαθητές θα πρέπει να είναι ικανοί στον προγραμματισμό C και να είναι εξοικειωμένοι με βασικά βοηθητικά προγράμματα Linux και επεξεργαστές κειμένου.

Ακροατήριο

Αυτό το μάθημα απευθύνεται σε έμπειρους προγραμματιστές. Οι μαθητές θα πρέπει να είναι ικανοί στον προγραμματισμό C και να είναι εξοικειωμένοι με βασικά βοηθητικά προγράμματα Linux και επεξεργαστές κειμένου.

Επίπεδο εμπειρίας: Μέσο

 28 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories