Cara Pelajari Lebih Lanjut Mengenai Kernel Linux dari Mesin Anda Sendiri



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Belajar bekerja dengan GNU / Linux secara amnya memerlukan pembelajaran untuk bekerja dengan persekitaran desktop. Teknologi tema membolehkan persekitaran desktop ini meniru antara muka peranti iOS, Microsoft Windows dan OS X. Ini membantu mengurangkan ini seperti dulu. Ramai orang melangkah lebih jauh dan mempelajari pentadbiran baris perintah Unix dengan shell Bash atau tcsh. Walau bagaimanapun, menjadi berpengetahuan mengenai dalaman kernel Linux dapat membantu anda memahami dengan lebih baik bagaimana sekeping opcode berinteraksi antara satu sama lain.



Sebilangan orang berpendapat bahawa lebih baik melangkah lebih jauh dan juga belajar bagaimana penyusun mentransmisikan kod C menjadi instruktur mesin untuk mikropemproses. Penyokong kod pemasangan kemudiannya berpendapat bahawa lebih baik untuk mempelajari ASM untuk benar-benar memahami pengaturcaraan pada platform x86 dan x86_64. Terlepas dari kedudukan ini, perintah dasar Linux dapat memberikan banyak maklumat tentang bagaimana kernel melihat komputer anda. Belajar melalui rupa tetapi jangan sentuh paradigma adalah kaedah terbaik untuk menguasai kernel itu sendiri. Walaupun akaun root digunakan untuk contoh di halaman ini, sangat disarankan agar anda hanya melihat direktori yang berkaitan dengan kernel melalui akaun pengguna.



Kaedah 1: Direktori / proc

Direktori / proc berada di salah satu wilayah utama direktori root tingkat atas dalam struktur fail Unix mana pun. Ini mengandungi apa yang disebut sistem fail proc, yang lebih dikenali sebagai procfs yang mengandungi maklumat mengenai cara sumber yang berbeza mengakses memori kernel. Ia dipetakan ke / proses pada masa sistem boot. Oleh kerana struktur fail proksi ini berfungsi sebagai antara muka ke struktur data dalaman di dalam kernel Linux, sebaiknya sekali lagi meneroka ini melalui akaun pengguna. Sebilangan besar fail diklasifikasikan oleh struktur fail sistem yang kelihatan sebagai baca sahaja, tetapi lebih baik berada di pihak yang selamat.



Yang dikatakan, masing-masing adalah fail teks, jadi anda dapat melihatnya jika anda mahu. Gunakan perintah cd untuk memasuki direktori / proc, dan kemudian mengeluarkan ls untuk melihat apa yang ada. Gunakan perintah kucing, kurang atau lebih dengan mana-mana fail untuk melihatnya. Fail cpuinfo adalah tempat yang baik untuk dimulakan, kerana ia memperlihatkan bagaimana kernel melihat mikropemproses anda. Lihat fail stat untuk melihat proses yang sedang berjalan.

2016-11-25_020006

Menaip peranti kucing akan memberi anda gambaran mengenai perkara yang dilekatkan pada mesin anda.



2016-11-25_020109

Ngomong-ngomong, anda selalu dapat mengeluarkan perintah command man untuk mengetahui bagaimana struktur file / proc berkaitan dengan kernel. Halaman yang dilayan berasal dari Manual Programmer Linux.

2016-11-25_020156

Kaedah 2: Direktori / sys

Perhentian anda seterusnya dalam tur kernel anda adalah / sys, yang merupakan direktori lain yang dipetakan ke struktur fail berpura-pura. Ini mengikuti konsep Unix umum yang sama seperti / proc, tetapi sebaliknya secara aktif mengeksport maklumat mengenai pemacu peranti yang berkaitan dan sejumlah subsistem kernel. Sekiranya anda pernah bekerja dengan sistem berasaskan BSD, maka anda mungkin lebih biasa dengan sysctl yang menyediakan fungsi-fungsi ini. Peranti bas PCI, USB dan S / 390 semuanya dipetakan ke direktori / sys.

Gunakan cd / sys untuk menuju ke direktori dan kemudian mengeluarkan perintah ls atau dir. Anda mungkin mempunyai direktori berjudul blok, kelas, peranti, fs, kernel dan mungkin yang lain. Anda boleh meneroka ini untuk fail rata lebih lanjut yang mengandungi maklumat mengenai sistem, tetapi sekali lagi melakukannya dari akaun pengguna dan perhatikan tetapi jangan menyentuh mentaliti tentang diri anda.

Kaedah 3: Direktori / dev

Gunakan perintah cd / dev untuk menuju ke direktori / dev, yang mungkin merupakan struktur maya kernel yang paling Anda kenal. Nama itu bermaksud peranti, dan berisi perwakilan fail peranti yang dilampirkan ke sistem anda. Perintah ls dalam direktori ini akan mengembalikan banyak fail pada pengedaran pelayan yang paling mudah.

2016-11-25_020242

Sebilangannya sangat istimewa. Fail / dev / null adalah peranti kosong yang tidak melakukan apa-apa. Sekiranya anda menaip kucing / dev / null, anda tidak akan mendapat apa-apa. Ia dipanggil bit bucket, dan output dapat dialihkan ke sana untuk menjaga layar tetap bersih. Fail yang disebut / dev / zero tidak mengandungi apa-apa kecuali data sifar, yang boleh ditulis ke cakera untuk mengeluarkannya. Fail rawak dan urandom mengandungi data sampah rawak untuk membuat hash keselamatan.

Sekiranya anda pernah memformat cakera, anda mungkin mempunyai sekurang-kurangnya pengalaman dengan cara kernel Linux melihatnya. Setiap cakera yang dilampirkan ke sistem mendapat nama seperti sda, sdb dan sebagainya untuk setiap cakera. Jenis cakera yang berbeza mendapat nama yang berbeza. Perlu diingat bahawa direktori / dev menggunakan satu definisi disk komputer sains formal yang berpotensi daripada cara yang biasa kita gunakan untuk istilah itu. Ini bermaksud cakera keras, SSD, Kad SD, kad microSDHC, sistem fail telefon pintar terpasang yang dilampirkan melalui USB, tongkat USB dan tablet yang dipasang juga semuanya adalah cakera ke kernel.

Setiap nama cakera di Linux kemudian menerima angka setelah menunjukkan nombor partisi. Sekiranya anda mempunyai SSD dengan dua partisi utama, maka anda mungkin mempunyai / dev / sda1 dan / dev / sda2 sebagai jilid yang sah. Kemungkinan besar jika anda menjalankan Linux dari desktop atau komputer riba dengan partition gaya MBR, maka anda telah / dev / sda1 menetapkan ke partisi ext4 yang sebenarnya telah dipasang Linux di dalamnya. Lebih daripada kemungkinan / dev / sda2 adalah partisi lanjutan yang kemudian mengandungi / dev / sda5 sebagai partisi swap. Skema ini biasa, tetapi tidak semestinya diperlukan. Perhatikan bahawa kerana partisi pertukaran dalam contoh biasa ini adalah cakera logik di dalam partisi yang diperluas, ia menerima 5 dan bukannya 3 sebagai angka.

Sekiranya anda ingin mengetahui lebih lanjut mengenai cara kernel melihat dan memformat partisi, maka anda sebenarnya dapat melihat senarai partisi yang disokong dengan perintah fdisk. Semasa fdisk tidak menulis jadual partition sehingga anda memaklumkannya, masih baik untuk mencuba ini dengan sesuatu yang tidak anda gemari untuk membakar roti. Sebaiknya arahkan ke sesuatu seperti stik USB kosong yang boleh anda format semula dengan mudah.

Katakan tongkat anda muncul sebagai / dev / sdc , maka anda boleh menggunakan sudo fdisk / dev / sdc untuk memuatkannya. Sekiranya anda mempunyai partisi yang sah di dalamnya, ketik t untuk menukar jenis dan jenis L untuk memuat senarai kod hex. Perhatikan bahawa skema partisi MBR dan GUID bercakap dengan kernel secara berbeza, dan oleh itu mempunyai tugasan yang berbeza.

2016-11-25_020331

Selalunya anda akan mempunyai pemacu yang ditetapkan untuk menaip 83, iaitu untuk pemacu Linux, 82, yang untuk partisi pertukaran Linux, atau salah satu jenis fail FAT. FAT bermula dari beberapa bentuk hingga tahun 1977, dan masih disukai untuk banyak jenis peranti mudah alih dan juga banyak pemacu yang boleh ditanggalkan. Perhatikan bahawa beberapa jenis partisi, seperti jenis 0x0c, menampilkan sesuatu yang dipanggil sokongan LBA.

Apabila pengaturcara merancang kernel untuk sistem operasi, mereka mempunyai beberapa cara yang berbeza untuk melihat cakera. Salah satunya ialah membahagikan pinggan mangkuk menjadi silinder, kepala dan sektor. Ini adalah cara klasik untuk merujuk pada cakera keras untuk jangka masa yang paling lama. Geometri cakera asli tidak pernah penting bagi Linux, dan sayangnya skema ini kehabisan alamat setelah kira-kira 8 Gigabyte binari. Cara kedua adalah menggunakan pengalamatan Logik C / H / S, yang melakukan ini, tetapi kemudian membolehkan pengawal cakera memetakan nombor silinder, kepala dan sektor di mana sahaja mereka mahu. Inilah sebabnya mengapa sistem operasi secara teorinya boleh mendakwa terdapat kepala dalam kad SD atau USB stick apabila ini tidak mungkin dilakukan secara fizikal.

Kaedah ketiga adalah melalui Logical Block Address, yang dimaksudkan dengan LBA. Setiap blok fizikal dalam jumlah menerima angka dalam skema ini. Sistem operasi memberitahu pengawal cakera untuk menulis ke blok bernombor tertentu, tetapi sebenarnya tidak tahu apakah itu blok langsung pada cakera. Ini adalah skema yang paling banyak digunakan hari ini, dan sudah pasti digunakan pada sebahagian besar cakera keras sejak pertengahan 1990-an.

Linux menawarkan sokongan kernel untuk memasang pelbagai jenis partisi tanpa input langsung, tetapi yang terbaik adalah tidak terlalu keterlaluan ketika memilihnya. Anda boleh membuat roti data jika anda membuat jenis partisi yang sangat pelik untuk memadankan pilihan sistem fail.

Kaedah 4: Panggilan Sistem dari Manual Programmer Linux

Pembaca halaman manual onboard yang disertakan dengan sebilangan besar pengedaran Linux sebenarnya dapat memberi anda kursus kemerosotan pada panggilan sistem, yang dapat sangat membantu dengan mempelajari kernel. Mulakan penyemak imbas halaman man grafik xman sama ada dari pautan. Desktop jika anda memilikinya, atau sebagai alternatif dengan menekan kekunci super dan R pada masa yang sama kemudian taip xman dan tekan enter. Pilih pilihan 'Halaman Manual' dan kemudian pilih 'Bahagian' dan akhirnya '(2) Panggilan Sistem' dari menu drop-down.

2016-11-25_020430

Sekali pilihan membaca ' pengenalan 'Muncul, pilih itu. Halaman dari Manual Programmer Linux yang akan memberi anda sedikit maklumat mengenai panggilan sistem kemudian akan memberi salam.

2016-11-25_020518

6 minit membaca