Pilih bahasa anda
Kursus Linux System Programming
Lebih daripada 2 juta pelajar di seluruh dunia

Kursus Linux System Programming

Pergi jauh ke dalam kernel Linux dan belajar menulis program C gred pengeluaran yang bercakap terus kepada OS. Kursus ini merangkumi I/O fail, proses, isyarat, IPC, pengurusan memori, soket, dan multithreading dari asas. Setiap topik didasarkan pada panggilan sistem sebenar, kod yang berfungsi, dan model mental yang digunakan oleh profesional setiap hari.

Apa yang anda akan pelajari:

Anda akan membina pemahaman yang tepat tentang cara Linux mengurus proses, memori, fail, dan sambungan rangkaian pada peringkat panggilan sistem. Anda akan menulis program C yang menggunakan API POSIX untuk I/O fail, komunikasi antara proses, dan rangkaian berasaskan soket. Anda akan melaksanakan aplikasi berbilang utas dan menghapuskan perlumbaan data menggunakan primitif penyegerakan pthreads. Anda akan menggunakan alat lanjutan termasuk GDB, strace, Valgrind, AddressSanitizer, perf, dan io_uring. Anda juga akan merangkumi primitif keselamatan Linux seperti ruang nama, seccomp, dan keupayaan. Menjelang akhir, anda akan mempunyai kemahiran untuk mereka bentuk, menyahpepijat, dan mengoptimumkan perisian sistem yang berjalan dengan boleh dipercayai dalam persekitaran Linux pengeluaran.

Bagaimana anda belajar secara praktikal Kursus Linux System Programming

Bagaimana anda berlatih Kursus Linux System Programming

Untuk anda yang mempunyai syarikat dan ingin melatih pasukan

Di Dedika untuk syarikat, kursus disertakan dengan latihan dan contoh yang berkaitan dengan perniagaan anda sendiri serta mengikut keperluan syarikat anda.

Klik di sini

Kandungan kursus

8 Bab • 40 PelajaranTempoh antara 4 dan 360 jam (anda yang tentukan)

Bab 1Lihat butiran

Asas Pengaturcaraan Sistem Linux

  • Pelajaran 1 • Pengenalan kepada Panggilan Sistem

    Menunjukkan cara program pengguna memanggil perkhidmatan kernel melalui panggilan sistem menggunakan pembalut glibc dan syscall mentah. Menghubungkan fungsi pustaka C kepada operasi kernel yang mendasarinya.

  • Pelajaran 2 • Seni Bina Linux dan Gambaran Keseluruhan Kernel

    Meliputi ruang kernel vs. ruang pengguna, reka bentuk kernel monolitik, dan pengabstrakan perkakasan. Mewujudkan rangka kerja konseptual yang menjadi asas kepada semua topik pengaturcaraan seterusnya.

  • Pelajaran 3 • Mengkompil, Memaut, dan Memuatkan

    Menerangkan saluran paip alat penuh dari sumber ke boleh laku, termasuk pemautan statik dan dinamik. Menyediakan pelajar untuk mendiagnosis ralat binaan dan memahami struktur perduaan.

  • Pelajaran 4 • Keperluan Penting C untuk Kerja Sistem

    Mengkaji semula penuding, susun atur memori, struktur, dan operasi bitwise yang penting untuk kod sistem. Merapatkan pengetahuan C umum kepada corak peringkat rendah yang digunakan sepanjang kursus.

  • Pelajaran 5 • Persediaan Persekitaran Pembangunan

    Mengkonfigurasi persekitaran pembangunan Linux dengan GCC, GDB, Make, dan pustaka penting. Memastikan setiap pelajar mempunyai garis dasar binaan yang boleh dihasilkan semula sebelum menulis sebarang kod.

Bab 2Lihat butiran

I/O Fail dan Lapisan VFS

  • Pelajaran 1 • Operasi Direktori dan Metadata

    Mengajar stat(), lintasan direktori, dan pengurusan pautan termasuk pautan keras dan simbolik. Membolehkan program memeriksa dan memanipulasi struktur sistem fail secara atur cara.

  • Pelajaran 2 • Operasi Fail POSIX

    Meliputi open(), read(), write(), lseek(), dan close() dengan semua bendera dan mod yang berkaitan. Mengajar corak penggunaan yang betul dan perangkap biasa seperti baca dan tulis separa.

  • Pelajaran 3 • Fail yang Dipetakan Memori

    Menunjukkan mmap() untuk memetakan fail ke dalam ruang alamat proses untuk I/O pantas dan data kongsi. Menghubungkan I/O fail kepada konsep memori maya yang diperkenalkan dalam bab kemudian.

  • Pelajaran 4 • Deskriptor Fail dan Fail Terbuka

    Menerangkan jadual fail terbuka, integer deskriptor fail, dan struktur data kernel di belakangnya. Mendasari semua kerja I/O seterusnya dalam model tepat tentang cara kernel mengesan fail terbuka.

  • Pelajaran 5 • Operasi Fail Lanjutan

    Memperkenalkan I/O serakan-kumpul, pemotongan fail, dan tebukan lubang untuk fail jarang. Memanjangkan kemahiran I/O asas kepada senario berprestasi tinggi dan cekap storan.

Bab 3Lihat butiran

Proses: Penciptaan, Kawalan, dan Penamatan

  • Pelajaran 1 • Dalaman Proses dan Atribut

    Memeriksa PID, PPID, UID, GID, dan medan deskriptor proses yang diselenggara oleh kernel. Menyediakan perbendaharaan kata dan model data yang diperlukan untuk mengawal proses secara atur cara.

  • Pelajaran 2 • Menunggu dan Menuai Anak

    Mengajar wait(), waitpid(), dan waitid() untuk mengumpul status keluar anak dan mencegah zombi. Memastikan pelajar menulis program berbilang proses tanpa kebocoran.

  • Pelajaran 3 • Melaksanakan Program dengan exec()

    Menerangkan keluarga exec, penghantaran hujah dan persekitaran, dan apa yang dipelihara merentas exec. Membolehkan pelajar membina shell dan pelancar proses yang menggantikan imej proses dengan betul.

  • Pelajaran 4 • Mencipta Proses dengan fork()

    Meliputi semantik salin-semasa-tulis, pengendalian nilai pulangan, dan pewarisan sumber selepas fork(). Membina asas untuk semua corak pengaturcaraan berbilang proses dalam kursus ini.

  • Pelajaran 5 • Kelayakan Proses dan Keistimewaan

    Meliputi bit setuid/setgid, set keupayaan, dan penurunan keistimewaan untuk reka bentuk proses selamat. Menyediakan pelajar untuk menulis program yang mengendalikan kebenaran tinggi dengan selamat.

Bab 4Lihat butiran

Isyarat: Penghantaran, Pengendalian, dan Penopengan

  • Pelajaran 1 • Konsep Isyarat dan Isyarat Piawai

    Memperkenalkan nombor isyarat, disposisi lalai, dan mekanisme penghantaran kernel. Mewujudkan model konseptual yang diperlukan sebelum menulis sebarang kod pengendalian isyarat.

  • Pelajaran 2 • Topeng Isyarat dan Penyekatan

    Mengajar sigprocmask(), manipulasi sigset_t, dan perlindungan bahagian genting melalui penyekatan. Membolehkan pelajar mencegah perlumbaan isyarat dalam operasi berbilang langkah.

  • Pelajaran 3 • Pengaturcaraan Selamat Tak Segerak-Isyarat

    Mengenal pasti fungsi selamat tak segerak-isyarat dan corak untuk menulis pengendali yang betul dan boleh masuk semula. Mencegah pepijat halus yang timbul daripada memanggil fungsi tidak selamat di dalam pengendali.

  • Pelajaran 4 • Isyarat Masa Nyata dan signalfd

    Meliputi isyarat masa nyata POSIX, jaminan baris gilir, dan antara muka signalfd() untuk pengendalian segerak. Memanjangkan kemahiran isyarat kepada seni bina dipacu peristiwa dan kebolehpercayaan tinggi.

  • Pelajaran 5 • Memasang Pengendali Isyarat

    Meliputi struktur sigaction(), bendera SA_, dan perbezaan daripada signal() legasi. Mengajar cara yang betul dan mudah alih untuk memasang pengendali yang mengelakkan keadaan perlumbaan.

Bab 5Lihat butiran

Komunikasi Antara Proses

  • Pelajaran 1 • Baris Gilir Mesej POSIX

    Mengajar mq_open(), mq_send(), mq_receive(), dan penghantaran mesej berasaskan keutamaan. Menyediakan alternatif berstruktur dan ditaip kepada paip strim bait untuk IPC berorientasikan mesej.

  • Pelajaran 2 • Membandingkan dan Memilih Mekanisme IPC

    Menganalisis pertukaran daya pemprosesan, kependaman, kerumitan, dan kegigihan merentas semua jenis IPC. Melengkapkan pelajar untuk membuat keputusan seni bina yang termaklum dalam reka bentuk sistem sebenar.

  • Pelajaran 3 • Semafor POSIX

    Meliputi semafor bernama dan tidak bernama, sem_wait/sem_post, dan corak saling kucil. Menyediakan lapisan penyegerakan yang diperlukan untuk menggunakan memori kongsi dengan selamat.

  • Pelajaran 4 • Paip dan FIFO

    Meliputi paip tanpa nama, penciptaan FIFO, dan corak pengeluar-pengguna untuk proses berkaitan dan tidak berkaitan. Memperkenalkan IPC strim bait sehala sebagai primitif koordinasi yang paling mudah.

  • Pelajaran 5 • Memori Kongsi POSIX

    Menunjukkan shm_open(), ftruncate(), dan mmap() untuk mencipta kawasan memori kongsi antara proses. Membolehkan pertukaran data kopi-sifar daya pemprosesan tinggi dan menyediakan pelajar untuk penyegerakan berasaskan semafor.

Bab 6Lihat butiran

Pengurusan Memori dan Memori Maya

  • Pelajaran 1 • Penggunaan mmap() Lanjutan

    Menunjukkan MAP_ANONYMOUS, MAP_FIXED, halaman besar, dan madvise() untuk penalaan prestasi. Memanjangkan kemahiran mmap() daripada I/O fail kepada pengurusan memori tujuan umum.

  • Pelajaran 2 • Peruntukan Longgokan dan Pengumpul

    Meliputi malloc(), calloc(), realloc(), free(), dan dalaman pengumpul glibc termasuk arena. Mengajar corak peruntukan yang betul dan cara mengelakkan kerosakan longgokan.

  • Pelajaran 3 • Perlindungan Memori dan Kebenaran

    Mengajar mprotect() untuk menukar kebenaran halaman dan halaman pengawal untuk pengesanan limpahan penimbal. Membolehkan pelajar melaksanakan teknik pengerasan keselamatan di peringkat memori.

  • Pelajaran 4 • Seni Bina Memori Maya

    Menerangkan jadual halaman, susun atur ruang alamat maya, dan antara muka /proc/pid/maps. Menyediakan model mental yang diperlukan untuk memahami kelakuan pengumpul dan semantik mmap().

  • Pelajaran 5 • Mengesan dan Membaiki Ralat Memori

    Menggunakan Valgrind, AddressSanitizer, dan LeakSanitizer untuk mencari kebocoran, guna-selepas-bebas, dan limpahan. Membina kemahiran diagnostik yang diperlukan untuk mengekalkan keselamatan memori tahap pengeluaran.

Bab 7Lihat butiran

Benang POSIX dan Penyegerakan

  • Pelajaran 1 • Penciptaan Benang dan Kitaran Hayat

    Meliputi pthread_create(), atribut benang, keadaan lepas, dan pthread_join(). Mewujudkan model kitaran hayat benang yang menjadi asas kepada semua topik penyegerakan.

  • Pelajaran 2 • Kunci Baca-Tulis dan Penghadang

    Meliputi rwlock untuk beban kerja berat baca dan pthread_barrier untuk penyegerakan fasa. Memanjangkan kit alat penyegerakan kepada corak di mana penguncian eksklusif terlalu kasar.

  • Pelajaran 3 • Pembolehubah Keadaan

    Menunjukkan pthread_cond_wait(), kebangkitan palsu, dan corak gelung predikat. Membolehkan benang menunggu perubahan keadaan dengan cekap tanpa menunggu sibuk.

  • Pelajaran 4 • Mutex dan Bahagian Genting

    Mengajar inisialisasi mutex, disiplin kunci/buka kunci, dan jenis mutex pemeriksaan ralat. Menyediakan alat utama untuk melindungi data kongsi daripada pengubahsuaian konkuren.

  • Pelajaran 5 • Storan Setempat Benang dan Keselamatan

    Menerangkan __thread, pthread_key_t, dan keselamatan tak segerak-isyarat dalam program berbilang benang. Mengajar corak untuk keadaan setiap benang yang mengelakkan perkongsian dan mengurangkan pertikaian kunci.

Bab 8Lihat butiran

Soket dan Pengaturcaraan Rangkaian

  • Pelajaran 1 • I/O Tidak Menyekat dan epoll

    Melaksanakan pelayan dipacu peristiwa menggunakan soket tidak menyekat, epoll_create(), dan mod picu-tepi. Menskala pengendalian sambungan melebihi model satu-benang-per-sambungan.

  • Pelajaran 2 • Asas API Soket

    Meliputi socket(), bind(), listen(), accept(), connect(), dan struktur alamat untuk IPv4 dan IPv6. Mewujudkan permukaan API teras yang menjadi asas kepada semua pengaturcaraan rangkaian.

  • Pelajaran 3 • Soket UDP dan Datagram

    Meliputi sendto(), recvfrom(), dan corak komunikasi tanpa sambungan untuk UDP. Membandingkan penghantaran tidak boleh dipercayai UDP dengan TCP dan mengenal pasti kes penggunaan yang sesuai.

  • Pelajaran 4 • Pilihan Soket dan Ciri Lanjutan

    Mengajar getsockopt()/setsockopt() untuk menala penimbal, keepalive, dan kawalan algoritma Nagle. Membolehkan penalaan prestasi dan kebolehpercayaan yang terperinci bagi sambungan rangkaian.

  • Pelajaran 5 • Pengaturcaraan Pelayan-Klien TCP

    Melaksanakan pelayan dan klien gema TCP penuh dengan pengendalian dan penutupan sambungan yang betul. Mengajar komunikasi strim yang boleh dipercayai dan kepentingan mengendalikan hantar dan terima separa.

Sijil

Sijil sah anda untuk tamat pengajian

Kursus ini sesuai untuk anda:

  • Pembangun backend yang ingin memahami apa yang berlaku di bawah framework mereka.

  • Jurutera terbenam yang beralih ke platform berasaskan Linux dan API POSIX.

  • Graduan sains komputer yang merapatkan jurang antara kerja kursus dan kerja sistem industri.

  • Jurutera DevOps yang ingin mendiagnosis isu peringkat kernel tanpa meneka.

  • Pengaturcara C hobi yang bersedia untuk melangkaui tutorial ke interaksi OS sebenar.

  • Penyelidik keselamatan yang perlu memahami dalaman Linux untuk mencari kelemahan.

Apa Kata Pelajar Kami

Kelas-kelas beliau sangat sempurna. Saya membeli pakej setahun dan akhirnya, saya berpeluang mengikuti pelbagai topik yang menarik minat saya tanpa perlu menukar platform... terima kasih atas semua yang anda lakukan, saya sudah mengesyorkan anda kepada orang lain...
Giulio Carlo
Giulio CarloPelajar Pemasaran Digital
Saya suka bagaimana pelajaran-pelajaran terus ke inti perkara dan bagaimana saya boleh menukar bab dan melangkau kandungan yang tidak saya perlukan.
Mariana Ferres
Mariana FerresPelajar Fotografi
Saya suka kandungan dan cara persembahan serta transkripsi video, yang mempercepatkan proses!
Luciana Alvarenga
Luciana AlvarengaPelajar Reka Bentuk Kuku
Platform ini pantas, mudah digunakan. Kepelbagaian kandungan dan video tambahan sangat membantu dalam pembelajaran.
André Felipe
André FelipePelajar Kejuruteraan Prompt

Latihan utama

Soalan Lazim

Siapakah Dedika?

Adakah sijil ini sah di Malaysia?

Adakah kursus percuma?

Apakah beban kerja kursus?

Bagaimanakah bentuk kursus?

Bagaimanakah kursus berfungsi?

Berapakah tempoh kursus?

Berapakah kos atau harga kursus?

Apakah itu kursus EAD atau kursus dalam talian dan bagaimana ia berfungsi?

Kursus PDF