Cara Mempelajari Lebih Lanjut Tentang Kernel Linux dari Mesin Anda Sendiri



Coba Instrumen Kami Untuk Menghilangkan Masalah

Belajar bekerja dengan GNU / Linux umumnya memerlukan belajar bekerja dengan lingkungan desktop. Teknologi tema memungkinkan lingkungan desktop ini meniru antarmuka perangkat iOS, Microsoft Windows, dan OS X. Ini membantu meminimalkan hal ini sebagaimana mestinya. Banyak orang melangkah lebih jauh dan mempelajari administrasi baris perintah Unix dengan shell Bash atau tcsh. Namun, menjadi pengetahuan tentang internal kernel Linux dapat membantu Anda lebih memahami bagaimana berbagai bagian opcode berinteraksi satu sama lain.



Beberapa orang akan berpendapat bahwa akan lebih baik jika melangkah lebih jauh dan sebagai tambahan mempelajari bagaimana kompiler mentransmutasikan kode C menjadi instruktur mesin untuk mikroprosesor. Pendukung kode assembly kemudian akan berpendapat bahwa yang terbaik adalah mempelajari ASM untuk benar-benar memahami pemrograman pada platform x86 dan x86_64. Terlepas dari posisi ini, perintah Linux dasar dapat memberikan banyak informasi tentang bagaimana kernel melihat komputer Anda. Mempelajari melalui tampilan tetapi tidak menyentuh paradigma adalah cara yang bagus untuk menguasai kernel itu sendiri. Meskipun akun root digunakan untuk contoh di halaman ini, sangat disarankan agar Anda hanya melihat direktori yang terhubung dengan kernel melalui akun pengguna.



Metode 1: Direktori / proc

Direktori / proc berada di salah satu region utama dari direktori root level teratas dalam struktur file Unix apa pun. Ini berisi apa yang disebut sistem file proc, lebih dikenal sebagai procfs yang berisi informasi tentang cara berbagai sumber daya mengakses memori kernel. Itu dipetakan ke / proc pada saat sistem melakukan booting. Karena struktur file proxy ini berfungsi sebagai antarmuka ke struktur data internal di dalam kernel Linux, sekali lagi yang terbaik adalah menjelajahinya melalui akun pengguna. Kebanyakan file diklasifikasikan menurut struktur file sistem yang terlihat sebagai hanya-baca, tetapi yang terbaik adalah berada di sisi yang aman.



Karena itu, masing-masing adalah file teks, jadi Anda dapat melihatnya jika mau. Gunakan perintah cd untuk masuk ke direktori / proc, lalu terbitkan ls untuk melihat apa yang ada di sana. Gunakan perintah cat, less or more dengan salah satu file untuk melihatnya. File cpuinfo adalah tempat yang baik untuk memulai, karena ini menampilkan bagaimana kernel melihat mikroprosesor Anda. Lihat file stat untuk melihat proses yang sedang berjalan.

2016-11-25_020006

Perangkat pengetikan kucing akan memberi Anda gambaran tentang hal-hal apa yang terpasang ke mesin Anda.



2016-11-25_020109

Omong-omong, Anda selalu bisa mengeluarkan perintah man proc untuk mengetahui bagaimana struktur file / proc berhubungan dengan kernel. Halaman yang disajikan berasal dari Manual Programmer Linux.

2016-11-25_020156

Metode 2: Direktori / sys

Perhentian Anda berikutnya dalam tur kernel Anda adalah / sys, yang merupakan direktori lain yang dipetakan ke struktur file pura-pura. Ini mengikuti konsep Unix umum yang sama seperti / proc, tetapi sebaliknya secara aktif mengekspor informasi tentang drive perangkat terkait dan sejumlah subsistem kernel. Jika Anda pernah bekerja dengan sistem berbasis BSD, Anda mungkin lebih familiar dengan sysctl yang menyediakan fungsi-fungsi ini. Perangkat bus PCI, USB dan S / 390 semuanya dipetakan ke direktori / sys.

Gunakan cd / sys untuk menuju ke direktori dan kemudian jalankan perintah ls atau dir. Anda mungkin memiliki direktori yang berjudul block, class, devices, fs, kernel dan mungkin lainnya. Anda dapat menjelajahi ini untuk file datar lebih lanjut yang berisi informasi tentang sistem, tetapi sekali lagi melakukannya dari akun pengguna dan tetap melihat tetapi jangan sentuh mentalitas tentang diri Anda.

Metode 3: Direktori / dev

Gunakan perintah cd / dev untuk menuju ke direktori / dev, yang mungkin merupakan satu struktur virtual kernel yang paling Anda kenal. Namanya berarti perangkat, dan berisi representasi file dari perangkat yang terpasang ke sistem Anda. Perintah ls di direktori ini akan mengembalikan banyak file bahkan pada distribusi server yang paling sederhana.

2016-11-25_020242

Beberapa di antaranya sangat istimewa. File / dev / null adalah perangkat null yang tidak melakukan apa-apa. Jika Anda mengetik cat / dev / null, Anda tidak akan mendapatkan apa-apa darinya. Ini disebut bit bucket, dan keluaran dapat dialihkan ke sana untuk menjaga layar tetap bersih. Sebuah file bernama / dev / zero tidak berisi apa-apa selain data nol, yang dapat ditulis ke disk untuk mengosongkannya. File acak dan urandom berisi data sampah acak untuk membuat hash keamanan.

Jika Anda pernah memformat disk, Anda mungkin memiliki setidaknya beberapa pengalaman dengan cara kernel Linux melihatnya. Setiap disk yang terpasang ke sistem mendapat nama seperti sda, sdb, dan seterusnya untuk setiap disk. Jenis disk yang berbeda mendapatkan nama yang berbeda. Perlu diingat bahwa direktori / dev menggunakan satu kemungkinan definisi disket ilmu komputer formal, bukan cara kami biasanya menggunakan istilah itu. Ini berarti hard drive, SSD, Kartu SD, kartu microSDHC, sistem file smartphone yang terpasang melalui USB, stik USB, dan bahkan tablet yang terpasang semuanya merupakan disk ke kernel.

Setiap nama disk di Linux kemudian menerima angka setelah itu menunjukkan nomor partisi. Jika Anda memiliki SSD dengan dua partisi utama, Anda mungkin memiliki / dev / sda1 dan / dev / sda2 sebagai volume yang valid. Kemungkinan besar jika Anda menjalankan Linux dari desktop atau laptop dengan partisi gaya MBR, maka Anda telah menyetel / dev / sda1 ke partisi ext4 yang sebenarnya telah menginstal Linux di dalamnya. Kemungkinan besar / dev / sda2 adalah partisi extended yang kemudian berisi / dev / sda5 sebagai partisi swap. Skema ini umum, tetapi sama sekali tidak perlu. Perhatikan bahwa karena partisi swap dalam contoh umum ini adalah disk logis di dalam partisi extended, ia menerima 5, bukan 3 sebagai angka.

Jika Anda ingin mempelajari lebih lanjut tentang cara tampilan kernel dan memformat partisi, Anda sebenarnya dapat melihat daftar partisi yang didukung dengan perintah fdisk. Sementara fdisk tidak menulis tabel partisi sampai Anda memintanya, yang terbaik adalah mencobanya dengan sesuatu yang tidak Anda pedulikan untuk dipanggang. Sebaiknya arahkan ke sesuatu seperti stik USB kosong yang dapat Anda format ulang dengan mudah.

Misalkan tongkat Anda muncul sebagai / dev / sdc , maka Anda bisa menggunakan sudo fdisk / dev / sdc untuk memuatnya. Jika Anda memiliki partisi yang valid di dalamnya, ketik t untuk mengubah jenis dan jenis L untuk memuat daftar kode hex. Perhatikan bahwa skema partisi MBR dan GUID berbicara dengan kernel secara berbeda, dan oleh karena itu memiliki tugas yang berbeda.

2016-11-25_020331

Lebih sering daripada tidak, Anda akan memiliki drive yang disetel ke tipe 83, yang untuk drive Linux, 82, yang untuk partisi swap Linux, atau salah satu jenis file FAT. FAT berasal dari beberapa bentuk atau lainnya ke 1977, dan masih disukai untuk banyak jenis perangkat seluler serta banyak drive yang dapat dilepas. Perhatikan bahwa beberapa tipe partisi, seperti tipe 0x0c, menampilkan sesuatu yang disebut dukungan LBA.

Ketika seorang programmer mendesain kernel untuk sistem operasi, mereka memiliki beberapa cara berbeda untuk melihat disk. Salah satunya adalah membagi piringan menjadi silinder, kepala dan sektor. Ini adalah cara klasik untuk merujuk ke hard drive untuk waktu yang paling lama. Geometri disk asli tidak pernah benar-benar penting bagi Linux, dan sayangnya skema ini kehabisan alamat setelah sekitar 8 Gigabyte biner. Cara kedua adalah menggunakan pengalamatan Logical C / H / S, yang melakukan ini, tetapi kemudian memungkinkan pengontrol disk untuk memetakan nomor silinder, kepala dan sektor di mana pun mereka mau. Inilah sebabnya mengapa sistem operasi secara teoritis dapat mengklaim ada kepala di kartu SD atau stik USB ketika ini secara fisik tidak mungkin.

Metode ketiga adalah melalui Logical Block Addressing, yang merupakan singkatan dari LBA. Setiap blok fisik dalam volume menerima angka dalam skema ini. Sistem operasi memberi tahu pengontrol disk untuk menulis ke blok bernomor tertentu, tetapi tidak benar-benar tahu apakah itu blok langsung pada disk. Ini adalah skema yang paling banyak digunakan saat ini, dan sudah pasti telah digunakan pada sebagian besar hard disk sejak pertengahan 1990-an.

Linux menawarkan dukungan kernel untuk memasang berbagai jenis partisi tanpa input langsung, tetapi sebaiknya jangan terlalu aneh saat memilihnya. Anda dapat memanggang data Anda jika Anda membuat jenis partisi yang sangat aneh untuk pilihan pencocokan sistem file.

Metode 4: Panggilan Sistem dari Panduan Pemrogram Linux

Pembaca halaman manual onboard yang disertakan dengan sebagian besar distribusi Linux sebenarnya dapat memberi Anda kursus kilat tentang panggilan sistem, yang dapat sangat membantu dalam mempelajari tentang kernel. Jalankan peramban halaman manual grafis xman baik dari tautan .desktop jika Anda memilikinya, atau sebagai alternatif dengan menahan tombol super dan R pada saat yang bersamaan kemudian mengetik xman dan menekan enter. Pilih opsi 'Halaman Manual' dan kemudian pilih 'Bagian' dan terakhir '(2) Panggilan Sistem' dari menu drop-down.

2016-11-25_020430

Setelah opsi membaca ' intro ”Muncul, pilih itu. Halaman dari Panduan Pemrogram Linux yang akan mengajarkan Anda sedikit tentang panggilan sistem akan menyambut Anda.

2016-11-25_020518

6 menit baca