Rumah  >  Artikel  >  Tutorial sistem  >  Menyelam Lebih Dalam ke Panggilan Sistem Linux: Panggilan Sistem Baharu untuk Kiub Nombor dan Cetaknya

Menyelam Lebih Dalam ke Panggilan Sistem Linux: Panggilan Sistem Baharu untuk Kiub Nombor dan Cetaknya

WBOY
WBOYasal
2024-07-28 04:29:15564semak imbas

深入探究 Linux 系统调用:新增计算数字三次方并打印的系统调用

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.

操作系统原理与linux系统实验_linux操作系统原理与应用_操作系统原理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:

操作系统原理linux篇_操作系统原理与linux系统实验_linux操作系统原理与应用

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 #ifndef

linux操作系统原理与应用_操作系统原理linux篇_操作系统原理与linux系统实验

Remarque : 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 :

操作系统原理与linux系统实验_linux操作系统原理与应用_操作系统原理linux篇

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

操作系统原理linux篇_linux操作系统原理与应用_操作系统原理与linux系统实验

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Pengimbang beban kelompok NginxArtikel seterusnya:Pengimbang beban kelompok Nginx