Tutorial {Pengembangan} Pemrograman Tingkat Lanjut <br /> Bagian 1 Kernel Linux Bagian 2 Panduan Pemrograman Modul Kernel Linux Bagian 3 Panduan Pemrogram Linux Bagian 4 Struktur Sistem Konsep Kernel Linux Bagian 5 Struktur Sistem Spesifik Kernel Linux
Daftar Isi Pengantar Raymond Kata Pengantar
Grup Teknik Dokumentasi Linux "Pengumuman"
Kata Pengantar Penerjemah Bagian Satu Kata Pengantar Kernel Linux
Bab 1 Dasar-Dasar Perangkat Keras dan Dasar-Dasar Perangkat Lunak 6
1.1 Dasar-dasar Perangkat Keras 6
1.1.1 CPU7
1.1.2 Memori 8
1.1.3 Bis 8
1.1.4 Pengendali dan Periferal 8
1.1.5 Ruang alamat 9
1.1.6 Jam 9
1.2 Dasar-dasar Perangkat Lunak 9
1.2.1 Bahasa Komputer 9
1.2.2 Apa yang dimaksud dengan sistem operasi 11
1.2.3 Struktur data kernel 13
Bab 2 Manajemen Memori 15
2.1 Model abstrak memori virtual 15
2.1.1 Meminta halaman 17
2.1.2 Pertukaran 17
2.1.3 Memori virtual bersama 18
2.1.4 Mode pengalamatan fisik dan mode pengalamatan virtual 18
2.1.5 Kontrol akses 18
2.2 Penyimpanan dalam cache 19
2.3 Tabel halaman Linux 20
2.4 Alokasi halaman dan daur ulang 21
2.4.1 Alokasi Halaman 22
2.4.2 Daur ulang halaman 22
2.5 Pemetaan memori 22
2.6 Meminta halaman 23
2.7 cache halaman Linux 24
2.8 Pertukaran dan eliminasi halaman 25
2.8.1 Mengurangi ukuran buffer dan cache halaman 25
2.8.2 Mengganti halaman memori bersama Sistem V 26
2.8.3 Menukar dan menghentikan halaman 27
2.9 Tukar Cache 27
2.10 perubahan halaman 28
Bab 3 Proses 29
3.1 Proses Linux 29
3.2 Pengidentifikasi 31
3.3 Penjadwalan 32
3.4 Dokumentasi 34
3.5 Memori Virtual 35
3.6 Membuat proses 36
3.7 Waktu dan Timer 37
3.8 Menjalankan program 38
3.8.1 PERI 39
3.8.2 File skrip 40
Bab 4 Mekanisme Komunikasi Antar Proses 41
4.1 Mekanisme persinyalan 41
4.2 Pipa 42
4.3 Soket 44
4.3.1 Mekanisme komunikasi antar proses Sistem V 44
4.3.2 Antrian Pesan 44
4.3.3 Semafor 45
4.3.4 Penyimpanan bersama 47
Bab 5 PCI 49
5.1 Ruang alamat PCI 49
5.2 Tajuk konfigurasi PCI 50
5.3 PCI I/O dan ruang alamat penyimpanan 51
5.4 Jembatan PCI-ISA 51
5.5 Jembatan PCI-PCI 51
5.5.1 Jembatan PCI-PCI: PCI I/O dan Alamat Penyimpanan
Jendela ke luar angkasa 51
5.5.2 Jembatan PCI-PCI: Siklus Konfigurasi PCI dan PCI
Bus nomor 52
5.6 Inisialisasi PCI Linux 53
5.6.1 Struktur data PCI kernel Linux 53
5.6.2 Driver perangkat PCI 53
5.6.3 Fungsi PCI BIOS 56
5.6.4 Proses koreksi PCI 57
Bab 6 Penanganan Interupsi dan Driver Perangkat 60
6.1 Interupsi dan penanganan interupsi 60
6.1.1 Pengontrol interupsi yang dapat diprogram 61
6.1.2 Inisialisasi struktur data pemrosesan interupsi 61
6.1.3 Penanganan interupsi 62
6.2 Driver Perangkat 63
6.2.1 Pengujian dan Interupsi 64
6.2.2 Akses Memori Langsung (DMA) 65
6.2.3 Memori 66
6.2.4 Antarmuka antara driver perangkat dan kernel 66
6.2.5 Harddisk 69
6.2.6 Peralatan jaringan 74
Bab 7 Sistem File 77
7.1 Sistem file diperpanjang kedua EXT2 78
7.1.1 Node inode sistem EXT2 79
7.1.2 Blok super di sistem EXT2 80
7.1.3 Deskriptor grup untuk sistem EXT2 80
7.1.4 Direktori sistem EXT2 81
7.1.5 Menemukan file dalam sistem file EXT2 81
7.1.6 Mengubah file dalam sistem file EXT2
Ukuran 82
7.2 Sistem File Virtual 83
7.2.1 Blok super sistem file VFS 84
7.2.2 Node inode sistem file VFS 84
7.2.3 Mendaftarkan sistem file 85
7.2.4 Merakit sistem file 85
7.2.5 Menemukan file dalam sistem file virtual 87
7.2.6 Melepas sistem file 87
7.2.7 Cache inode sistem file VFS 87
7.2.8 Caching Direktori 88
7.3 Penyimpanan cache 88
7.3.1 daemon kernel bdflush 90
7.3.2 proses pembaruan 90
7.4 /proc sistem berkas 91
7.5 File perangkat khusus 91
Bab 8 Jaringan 92
8.1 Ikhtisar Jaringan TCP/IP 92
8.2 Hierarki jaringan TCP/IP di Linux 95
8.3 antarmuka soket BSD 96
8.4 Lapisan soket INET 97
8.4.1 Membuat soket BSD 98
8.4.2 Alamat pengikatan untuk INET BSD Socket 99
8.4.3 Membangun koneksi Socket INET BSD 99
8.4.4 Mendengarkan Soket INET BSD 100
8.4.5 Menerima permintaan koneksi 100
8.5 lapisan IP 100
8.5.1 Penyangga Soket 100
8.5.2 Menerima pesan IP 101
8.5.3 Mengirim paket IP 102
8.5.4 Pembagian Data 102
8.6 Protokol Resolusi Alamat 103
8.7 Perutean IP 104
Bab 9 Mekanisme dan Modul Kernel 107
9.1 Mekanisme Kernel 107
9.1.1 Pengendalian Bagian Bawah 107
9.1.2 Antrian Tugas 108
9.1.3 Pengatur Waktu 109
9.1.4 Menunggu antrian 110
9.1.5 Kunci putaran 110
9.1.6 Semafor 110
9.2 Modul 111
9.2.1 Pemuatan modul 112
9.2.2 Penghapusan modul 113
Bab 10 Prosesor 115
10.1X86 115
10.2 LENGAN 115
10.3 Prosesor Alfa AXP 115
Bab 11 Kode Sumber Kernel Linux 117
11.1 Cara mendapatkan kode sumber kernel Linux 117
11.2 Susunan kode sumber kernel 117
11.3 Mulai dari mana 118
Bab 12 Struktur Data Linux 120
Lampiran A Situs Web dan FTP yang Berguna 138
Lampiran B Glosarium 139
Bagian 2 Panduan Pemrograman Modul Kernel Linux Ucapan Terima Kasih Kata Pengantar Bab 1 Halo, Dunia 145
1.1 Makefile dari modul kernel 146
1.2 Modul kernel multi-file 147
Bab 2 File Perangkat Karakter 149
Bab 3 /proc Sistem File 158
Bab 4 Menggunakan /proc untuk Input 162
Bab 5 Menggunakan File Perangkat untuk Input 170
Bab 6 Parameter Startup 182
Bab 7 Panggilan Sistem 185
Bab 8 Penanganan Pemblokiran 190
Bab 9 Mengganti printk 199
Bab 10 Penjadwalan Tugas 202
Bab 11 Penangan Interupsi 207
Bab 12 Multiprosesor simetris 211
Bab 13 Kesalahan Umum 212
Lampiran A Perbedaan antara 2.0 dan 2.2 213
Lampiran B Sumber Daya Lainnya 214
Lampiran C Berikan penilaian Anda 215
Bagian 3 Panduan Pemrogram Linux Bab 1 Sistem Operasi Linux 219
Bab 2 Kernel Linux 220
Bab 3 Paket libc Linux 221
Bab 4 Panggilan Sistem 222
Bab 5 “Pisau Tentara Swiss”: ioctl 223
Bab 6 Komunikasi Antar-Proses Linux 224
6.1 Pendahuluan 224
6.2 Pipa Unix setengah dupleks 224
6.2.1 Konsep dasar 224
6.2.2 Membuat pipeline dalam bahasa C 225
6.2.3 Metode sederhana 229
6.2.4 Operasi atom pada pipa 233
6.2.5 Beberapa hal yang perlu diperhatikan tentang pipa half-duplex
Edisi 233
6.3 Pipa Bernama 234
6.3.1 Konsep dasar 234
6.3.2 Membuat FIFO 234
6.3.3 Operasi FIFO 235
6.3.4 Tindakan pemblokiran pada FIFO 236
6.3.5 Sinyal SIGPIPE 237
6.4 Sistem V IPC 237
6.4.1 Konsep dasar 237
6.4.2 Antrian Pesan 239
6.4.3 Semafor 251
6.4.4 semtool: operasi semaphore interaktif
Program 260
6.4.5 Memori bersama 267
Bab 7 Pemrograman Suara 274
7.1 Pemrograman Pembicara Internal 274
7.2 Pemrograman kartu suara 274
Bab 8 Grafik Unit Karakter 276
8.1 Fungsi I/O di libc 277
8.1.1 Keluaran yang diformat 277
8.1.2 Masukan yang diformat 278
8.2 perpustakaan termcap 278
8.2.1 Kata Pengantar 278
8.2.2 Memperoleh deskripsi terminal 279
8.2.3 Lihat deskripsi terminal 279
8.2.4 kemampuan termcap 280
8.3 Pengantar Kutukan 280
8.4 Inisialisasi 282
8.5 jendela 283
8.6 Keluaran 284
8.6.1 Keluaran yang diformat 285
8.6.2 Memasukkan karakter/baris 286
8.6.3 Menghapus karakter/baris 286
8.6.4 Kotak dan Garis 287
8.6.5 Karakter latar belakang 287
8.7 Masukan 288
8.8 Pilihan 289
8.8.1 Pilihan keluaran 289
8.8.2 Pilihan masukan 290
8.8.3 Properti terminal 291
8.8.4 Menggunakan opsi 291
8.9 Perbarui terminal 292
8.10 Properti dan warna video 293
8.11 Koordinat kursor dan layar 294
8.12 Menggulung 294
8.13 Papan tombol 295
8.14 Tag lunak 295
8.15 Lain-lain 295
8.16 Akses tingkat rendah 296
8.17 Pembuangan Layar 296
8.18 Simulasi Termcap 296
8.19 Fungsi terminfo 296
8.20 Fungsi debugging 297
8.21 Kemampuan Terminfo 297
8.21.1 Kemampuan Boolean 297
8.21.2 Kemampuan numerik 298
8.21.3 Kemampuan string 299
8.22 [N]Ikhtisar fungsi kutukan 306
Bab 9 Pemrograman Port I/O 307
9.1 Pemrograman Tikus 307
9.2 Pemrograman Modem 308
9.3 Pemrograman Pencetak 308
9.4 Pemrograman Joystick 308
Bab 10 Memindahkan Aplikasi ke Linux 309
10.1 Pendahuluan 309
10.2 Pemrosesan sinyal 309
10.2.1 Pada SVR4, BSD dan POSIX.1
Sinyal 310
10.2.2 Opsi sinyal Linux 310
10.2.3 Sinyal di Linux 310
10.2.4 Sinyal didukung oleh Linux 311
10.3 Terminal I/O 311
10.4 Memproses informasi dan mengendalikan 311
Proses 10.4.1 kvm 312
10.4.2 sistem file ptrace dan /proc 312
10.4.3 Kontrol proses di Linux 312
10.5 Kompilasi bersyarat portabel 313
10.6 Instruksi tambahan 314
Lampiran Panggilan Sistem Abjad 315
Bagian 4 Ringkasan Struktur Sistem Konsep Kernel Linux 323
Kata Pengantar 324
Bab 1 Struktur Sistem 325
1.1 Ikhtisar Sistem 325
1.2 Tujuan dari kernel 325
1.3 Ikhtisar struktur kernel 325
1.4 Mendukung banyak pengembang 327
1.5 Struktur data sistem 328
1.5.1 Daftar Tugas 328
1.5.2 Pemetaan memori 328
1.5.3 Indeks node 328
1.5.4 Koneksi data 329
Bab 2 Struktur Sistem Subsistem 330
2.1 Struktur sistem penjadwal proses 330
2.1.1 Sasaran 330
2.1.2 Modul 330
2.1.3 Ekspresi data 331
2.1.4 Ketergantungan, aliran data dan aliran kontrol 331
2.2 Struktur sistem manajer memori 331
2.2.1 Sasaran 331
2.2.2 Modul 331
2.2.3 Representasi data 331
2.2.4 Aliran data, aliran kontrol dan ketergantungan 332
2.3 Struktur sistem sistem file virtual 333
2.3.1 Sasaran 333
2.3.2 Modul 333
2.3.3 Representasi data 333
2.3.4 Aliran data, aliran kontrol dan ketergantungan 334
2.4 Struktur sistem antarmuka jaringan 334
2.4.1 Sasaran 334
2.4.2 Modul 334
2.4.3 Representasi data 335
2.4.4 Aliran data, aliran kontrol dan ketergantungan 335
2.5 Struktur sistem komunikasi antar proses 335
Bab 3 Kesimpulan 336
Lampiran A Definisi Istilah 337
Lampiran B Referensi 338
Bagian 5 Ringkasan struktur sistem spesifik kernel Linux 341
Bab 1 Kata Pengantar 342
1.1 Sasaran 342
1.2 Pengenalan Linux 342
1.3 Latar belakang pengetahuan struktur sistem perangkat lunak 342
1.4 Metode dan pendekatan 343
1.5 Pembaca yang menjadi tujuan buku ini 344
1.6 Susunan bab bagian ini 344
Bab 2 Struktur Sistem 345
Bab 3 Struktur Subsistem 346
3.1 Penjadwal Proses 346
3.1.1 Sasaran 346
3.1.2 Antarmuka eksternal 346
3.1.3 Deskripsi subsistem 346
3.1.4 Struktur data 347
3.1.5 Struktur subsistem 348
3.1.6 Ketergantungan subsistem 348
3.2 Manajer Memori 348
3.2.1 Sasaran 348
3.2.2 Antarmuka eksternal 349
3.2.3 Deskripsi subsistem 349
3.2.4 Struktur data 350
3.2.5 Struktur subsistem 350
3.2.6 Ketergantungan subsistem 351
3.3 Sistem file virtual 352
3.3.1 Sasaran 352
3.3.2 Antarmuka eksternal 352
3.3.3 Deskripsi subsistem 353
3.3.4 Driver Perangkat 353
3.3.5 Sistem file logis 354
3.3.6 Modul 354
3.3.7 Struktur data 355
3.3.8 Struktur subsistem 355
3.3.9 Ketergantungan subsistem 355
3.4 Komunikasi antar proses 355
3.4.1 Sasaran 355
3.4.2 Antarmuka eksternal 357
3.4.3 Deskripsi subsistem 357
3.4.4 Struktur data 358
3.4.5 Struktur subsistem 359
3.4.6 Ketergantungan subsistem 359
3.5 Antarmuka jaringan 360
3.5.1 Sasaran 360
3.5.2 Antarmuka eksternal 361
3.5.3 Deskripsi subsistem 361
3.5.4 Struktur data 362
3.5.5 Struktur subsistem 363
3.5.6 Ketergantungan subsistem 363
Bab 4 Kesimpulan 365
Lampiran A Definisi Istilah 366
Lampiran B Referensi 368
Bagian Keenam Lampiran Lampiran A Lisensi Salinan Proyek Dokumen Linux 372
Lampiran B Lisensi Publik Umum GNU 374
Memperluas