Rumah > Artikel > Tutorial sistem > Menyelam Lebih Dalam ke Panggilan Sistem Linux: Panggilan Sistem Baharu untuk Kiub Nombor dan Cetaknya
Daftar Kandungan
1. Tujuan dan keperluan reka bentuk
2. Kandungan reka bentuk
3. Peralatan dan persekitaran
4. Pemikiran reka bentuk
5. Struktur dan proses data utama
6. Keputusan ujian eksperimen dan analisis keputusan
7. Ringkasan tentu saja reka bentuk
Lampiran 1 Rekod Pertahanan Reka Bentuk Kursus
Lampiran 2 senarai program sumber
1. Tujuan dan keperluan reka bentuk
Kursus ini direka bentuk untuk membolehkan pelajar sekolah menengah memahami prinsip pelaksanaan panggilan sistem Linux, menguasai cara menukar kod sumber kernel Linux dan cara menyusun atur cara panggilan untuk memanggil panggilan sistem baharu. Pelajar sekolah menengah dikehendaki melengkapkan kursus ini secara bebas dan memahami konsep dan pelaksanaan panggilan sistem.
2. Kandungan reka bentuk
Menggunakan kaedah kernel yang disusunPrinsip sistem pengendalian dan eksperimen sistem Linux, susun semula kernel Linux dan kurangkan panggilan sistem dalam Linux.
Keperluan: (1) Fungsi yang dilaksanakan oleh panggilan sistem: anggaran kubus nombor dan salinnya. (2) Tulis program lain untuk dipanggil.
3. Peralatan dan persekitaran
Peranti: VMware Workstation Pro
Persekitaran: Ubantu15.0.2
Imej: ubuntu-16.04-desktop-amd64.iso
4. Pemikiran Reka Bentuk 4.1 Idea Rekaan
Tukar kernel Linux dan turunkan panggilan sistem baharu untuk melaksanakan fungsi menganggarkan kubus nombor dan menyalinnya, termasuk memuat turun kod sumber kernel Linux, membuat perubahan, menyusun kernel Linux yang diubah dan memasangnya ke dalam sistem, Tulis program yang memanggil panggilan sistem baharu ini.
4.2 Langkah utama
(1) Lihat isirong asal:
(2)Muat turun kernel baharu:
wgetPrinsip sistem pengendalian dan percubaan sistem LinuxPemindahan Linux, kemudian tekan Enter. Hasilnya adalah seperti yang ditunjukkan
(3) Connectez le package d'installation téléchargé au répertoire /usr/src, puis décompressez-le. Entrez la commande suivante dans le terminal, et le résultat est tel qu'indiqué
.mvlinux-5.6.15.tar.gz/usr/src
cd/usr/src
tar-xvflinux-5.6.15.tar.gz
(4) Téléchargez le super éditeur vim (déjà téléchargé auparavant). Je l'ai déjà téléchargé ici S'il n'est pas téléchargé, vous pouvez utiliser sudoapt-get-yinstallvim pour le télécharger
.(5) Nouvel appel système :
Ajouter une déclaration de fonction appelante : viminclude/linux/syscalls.h
Ajoutez asmlinkagelongsys_cube(intnum);
avant #ifndefRemarque : j'entre en mode édition, après l'ajout, Esc revient à la transplantation Linux, et enfin shift+ : appuyez sur wq pour enregistrer et quitter.
(6) Ajoutez la définition de la fonction appelante, entrez vimkernel/sys.c et ajoutez la fonction à la fin de l'article
SYSCALL_DEFINE1(cube,int,num){
intresult=numnumnum;
printk("Theresultis%d.n",result);
retour du résultat ;
(7)Ajouter un numéro d'appel système
Entrez vimarch/x86/entry/syscalls/syscall_64.tbl et ajoutez 439 éléments dans le fichier syscall_64.tbl
(8) Installez les packages de dépendances requis pour compiler le noyau :
apt-get -y install make apt-get -y install libncurses5-dev apt-get -y install flex apt-get -y install bison apt-get -y install libssl-dev apt-get -y install libelf-dev
(9) Configurer le noyau
Entrez makemenuconfig et exécutez [Save]->[Ok]->[Exit]->[Exit] dans l'interface contextuelle
(10)Compiler
Tapez make-j8 dans [Terminal] (8 threads démarrent la compilation), cela prendra environ une heure et la compilation est terminée comme indiqué sur l'image
Tapez les commandes makemodules et makemodules_install pour terminer respectivement la compilation et l'installation du module.
(11)Installer le noyau
【Terminal】Entrée makeinstall
(12)Redémarrez le système
[Terminal] Entrez uname-r pour vérifier la version du noyau Comme le montre l'image, le noyau a été recompilé
.Compile programme d'appel :
Quittez après avoir enregistré et exécutez gcctest.c-otest.out et ./test.out dans [Terminal] pour obtenir les résultats du test
5. Principales structures et processus de données
Atas ialah kandungan terperinci Menyelam Lebih Dalam ke Panggilan Sistem Linux: Panggilan Sistem Baharu untuk Kiub Nombor dan Cetaknya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!