Course Outline

Εισαγωγή

  • Στόχοι
  • Ποιός είσαι
  • Το Linux Ίδρυμα
  • Linux Foundation Training
  • Προγράμματα πιστοποίησης και ψηφιακό σήμα
  • Linux Διανομές
  • Πλατφόρμες
  • Προετοιμασία του συστήματός σας
  • Χρήση και λήψη εικονικής μηχανής
  • Τα πράγματα αλλάζουν στο Linux

Προκαταρκτικά

  • Διαδικασίες
  • Πρότυπα και το LSB

Πώς να εργαστείτε σε έργα OSS **

  • Επισκόπηση σχετικά με το πώς να συνεισφέρετε σωστά
  • Μείνετε κοντά στο Mainline για ασφάλεια και ποιότητα
  • Μελετήστε και κατανοήστε το DNA του έργου
  • Καταλάβετε τι φαγούρα θέλετε να Scratch
  • Προσδιορίστε τους συντηρητές και τις ροές και τις μεθόδους εργασίας τους
  • Λάβετε έγκαιρα στοιχεία και εργαστείτε στο ανοιχτό
  • Συνεισφέρετε σταδιακά bits, όχι μεγάλες απορρίψεις κώδικα
  • Αφήστε το εγώ σας στην πόρτα: Μην είστε με λεπτό δέρμα
  • Να είστε υπομονετικοί, να αναπτύξετε μακροχρόνιες σχέσεις, να είστε χρήσιμοι

Μεταγλωττιστές

  • GCC
  • Άλλοι μεταγλωττιστές
  • Κύριες επιλογές gcc
  • Προεπεξεργαστής
  • Ολοκληρωμένα Περιβάλλοντα Ανάπτυξης (IDE)
  • Εργαστήρια

Βιβλιοθήκες

  • Στατικές Βιβλιοθήκες
  • Κοινόχρηστες βιβλιοθήκες
  • Σύνδεση με Βιβλιοθήκες
  • Φορτωτής δυναμικής σύνδεσης
  • Εργαστήρια

Φτιαχνω, κανω

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

Έλεγχος πηγής

  • Έλεγχος πηγής
  • RCS και CVS
  • Ανατροπή
  • git
  • Εργαστήρια

Αποσφαλμάτωση και Core Dumps

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

Εργαλεία εντοπισμού σφαλμάτων

  • Λήψη του χρόνου
  • Προφίλ και Απόδοση
  • valgrind
  • Εργαστήρια

Κλήσεις συστήματος

  • Κλήσεις συστήματος έναντι λειτουργιών βιβλιοθήκης
  • Πώς γίνονται οι κλήσεις συστήματος
  • Επιστροφές τιμές και αριθμοί σφαλμάτων
  • Εργαστήρια

Μνήμη Management και Εκχώρηση

  • Μνήμη Management
  • Δυναμική κατανομή
  • Tuning malloc()
  • Κλείδωμα σελίδων
  • Εργαστήρια

Αρχεία και συστήματα αρχείων σε Linux **

  • Αρχεία, Κατάλογοι και Συσκευές
  • Το εικονικό σύστημα αρχείων
  • Το σύστημα αρχείων ext2/ext3
  • Συστήματα αρχείων περιοδικών
  • Το σύστημα αρχείων ext4/
  • Εργαστήρια

I/O αρχείου

  • I/O αρχείου UNIX
  • Άνοιγμα και κλείσιμο
  • Ανάγνωση, γραφή και αναζήτηση
  • Θέση και Vector I/O
  • Standard I/O Library
  • Υποστήριξη μεγάλων αρχείων (LFS)
  • Εργαστήρια

Προηγμένες λειτουργίες αρχείων

  • Λειτουργίες Stat
  • Λειτουργίες καταλόγου
  • ενωτοποιώ
  • Χαρτογράφηση μνήμης
  • flock() και fcntl()
  • Δημιουργία προσωρινών αρχείων
  • Άλλες κλήσεις συστήματος
  • Εργαστήρια

Διαδικασίες Ι

  • Τι είναι μια Διαδικασία;
  • Όρια διαδικασίας
  • Ομάδες Διαδικασιών
  • Το σύστημα αρχείων proc
  • Μέθοδοι InterProcess Communication
  • Εργαστήρια

Διαδικασίες II

  • Χρησιμοποιώντας το system() για τη δημιουργία μιας διαδικασίας
  • Χρησιμοποιώντας το fork() για να δημιουργήσετε μια διαδικασία
  • Χρησιμοποιώντας την exec() για να δημιουργήσετε μια διαδικασία
  • Χρήση κλώνου()
  • Έξοδος
  • Κατασκευαστές και Καταστροφείς
  • Αναμονή
  • Διαδικασίες Daemon
  • Εργαστήρια

Pipes και Fifos

  • Σωλήνες και InterProcess Communication
  • popen() και pclose()
  • σωλήνας()
  • Named Pipes (FIFOs)
  • splice(), vmsplice() και tee()
  • Εργαστήρια

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

  • Τι είναι το Asynchronous I/O;
  • Το POSIX Asynchronous I/O API
  • Linux Εφαρμογή
  • Εργαστήρια

Σήματα Ι

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

Σήματα II

  • Χειριστές επανεισόδου και σήματος
  • Άλματα και μη τοπικές επιστροφές
  • siginfo και sigqueue()
  • Σήματα σε πραγματικό χρόνο
  • Εργαστήρια

Νήματα POSIX I

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

Νήματα POSIX II

  • Αδιέξοδα και Συνθήκες Αγώνων
  • Λειτουργίες Mutex
  • Σηματοφόροι
  • Futexes
  • Λειτουργίες υπό όρους
  • Εργαστήρια

Networking και Υποδοχές

  • Networking Επίπεδα
  • Τι είναι τα Sockets;
  • Υποδοχές ροής
  • Υποδοχές Datagram
  • Ακατέργαστες πρίζες
  • Παραγγελία byte
  • Εργαστήρια

Υποδοχές Διευθύνσεις και κεντρικοί υπολογιστές

  • Δομές Διεύθυνσης Υποδοχών
  • Μετατροπή διευθύνσεων IP
  • Πληροφορίες οικοδεσπότη
  • Εργαστήρια

Υποδοχές Θύρες και Πρωτόκολλα

  • Πληροφορίες λιμένα εξυπηρέτησης
  • Πληροφορίες πρωτοκόλλου
  • Εργαστήρια

Πελάτες Sockets

  • Βασική ακολουθία πελάτη
  • πρίζα()
  • συνδέω-συωδεομαι()
  • close() και shutdown()
  • Πελάτης UNIX
  • Πελάτης Διαδικτύου
  • Εργαστήρια

Διακομιστές Sockets

  • Βασική ακολουθία διακομιστή
  • δένω()
  • ακούω()
  • αποδέχομαι()
  • Διακομιστής UNIX
  • Διακομιστής Διαδικτύου
  • Εργαστήρια

Υποδοχές Λειτουργίες εισόδου/εξόδου

  • γράψε διάβασε()
  • send(), recv()
  • sendto(), recvfrom()
  • sendmsg(), recvmsg()
  • αποστολή αρχείου()
  • socketpair()
  • Εργαστήρια

Επιλογές υποδοχών

  • Λήψη και ρύθμιση επιλογών υποδοχής
  • fcntl()
  • ioctl()
  • getsockopt() και setsockopt()
  • Εργαστήρια

Netlink Sockets**

  • Τι είναι οι υποδοχές netlink;
  • Άνοιγμα υποδοχής netlink
  • Μηνύματα netlink
  • Εργαστήρια

Sockets Multiplexing και Concurrent Servers

  • Multiplexed και Asynchronous Socket I/O
  • επιλέγω()
  • ψηφοφορία()
  • pselect() και ppoll()
  • επολ
  • Σήμα που οδηγείται και ασύγχρονη I/O
  • Ταυτόχρονοι διακομιστές
  • Εργαστήρια

Διαδικασία μεταξύ Communication

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

Κοινή μνήμη

  • Τι είναι η Κοινόχρηστη Μνήμη;
  • Κοινόχρηστη μνήμη POSIX
  • Κοινόχρηστη μνήμη System V**
  • Εργαστήρια

Σηματοφόροι

  • Τι είναι ο Σηματοφόρος;
  • Σηματοφόροι POSIX
  • System V Semaphores**
  • Εργαστήρια

Ουρές μηνυμάτων

  • Τι είναι οι ουρές μηνυμάτων;
  • Ουρές μηνυμάτων POSIX
  • Ουρές μηνυμάτων System V**
  • Εργαστήρια

Requirements

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

Ακροατήριο

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

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

 28 Hours

Number of participants



Price per participant

Related Courses

Related Categories