Heim  >  Artikel  >  System-Tutorial  >  Ein tiefer Einblick in Linux-Systemaufrufe: Neuer Systemaufruf zum Würfeln und Drucken einer Zahl

Ein tiefer Einblick in Linux-Systemaufrufe: Neuer Systemaufruf zum Würfeln und Drucken einer Zahl

WBOY
WBOYOriginal
2024-07-28 04:29:15571Durchsuche

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

Inhaltsverzeichnis

1. Designzweck und Anforderungen

2. Designinhalte

3. Ausrüstung und Umgebung

4. Design Thinking

5. Hauptdatenstrukturen und -prozesse

6. Experimentelle Testergebnisse und Ergebnisanalyse

7. Zusammenfassung des Kursdesigns

Anhang 1 Kursdesign-Verteidigungsnachweis

Anhang 2 Quellprogrammliste

1. Designzweck und Anforderungen

Dieser Kurs soll es Schülern der Mittelstufe ermöglichen, die Implementierungsprinzipien von Linux-Systemaufrufen zu verstehen, zu beherrschen, wie man den Linux-Kernel-Quellcode ändert und wie man aufrufende Programme kompiliert, um neue Systemaufrufe aufzurufen. Von Mittelschülern wird erwartet, dass sie diesen Kurs selbstständig absolvieren und das Konzept und die Implementierung von Systemaufrufen verstehen.

2. Designinhalte

Mit der kompilierten Kernel-MethodeBetriebssystemprinzipien und Linux-Systemexperimenten können Sie den Linux-Kernel neu kompilieren und einen Systemaufruf unter Linux reduzieren.

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

Anforderungen: (1) Durch Systemaufruf implementierte Funktion: Schätzen Sie die Potenz einer Zahl und kopieren Sie sie. (2) Schreiben Sie ein weiteres aufzurufendes Programm.

3. Ausrüstung und Umgebung

Gerät: VMware Workstation Pro

Umgebung: Ubantu15.0.2

Bild: ubuntu-16.04-desktop-amd64.iso

4. Designgedanke 4.1 Designidee

Ändern Sie den Linux-Kernel und führen Sie einen neuen Systemaufruf aus, um die Funktion zum Schätzen der Potenz einer Zahl und zum Kopieren zu implementieren, einschließlich des Herunterladens des Linux-Kernel-Quellcodes, des Vornehmens von Änderungen, des Kompilierens des geänderten Linux-Kernels und seiner Installation im System. Schreiben Sie ein Programm, das diesen neuen Systemaufruf aufruft.

在这里插入图片描述

4.2 Hauptschritte

(1) Sehen Sie sich den Originalkernel an:

(2)Laden Sie den neuen Kernel herunter:

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

wgetBetriebssystemprinzipien und Linux-SystemexperimentLinux-Transplantation, dann drücken Sie die Eingabetaste. Das Ergebnis ist wie abgebildet

(3) Sambungkan pakej pemasangan yang dimuat turun ke direktori /usr/src, dan kemudian nyahzipnya Masukkan arahan berikut dalam terminal, dan hasilnya adalah seperti yang ditunjukkan

mvlinux-5.6.15.tar.gz/usr/src

cd/usr/src

tar-xvflinux-5.6.15.tar.gz

(4) Muat turun super editor vim (sudah dimuat turun sebelum ini).

在这里插入图片描述

(5) Panggilan sistem baharu:

Tambah pengisytiharan fungsi panggilan: viminclude/linux/syscallls.h

Tambah asmlinkagelongsys_cube(intnum);

sebelum #ifndef

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

Nota: saya memasuki mod penyuntingan, selepas menambah, Esc kembali ke pemindahan linux, dan akhirnya shift+: tekan wq untuk menyimpan dan keluar.

(6) Tambahkan definisi fungsi panggilan, masukkan vimkernel/sys.c, dan tambahkan fungsi pada penghujung artikel

SYSCALL_DEFINE1(kubus,int,bilangan){

intresult=numnumnum;

printk(“Terdapat%d.n”,hasil);

hasil pulangan;

(7)Tambah nombor panggilan sistem

Masukkan vimarch/x86/entry/syscallls/syscall_64.tbl dan tambahkan 439 item dalam fail syscall_64.tbl

(8) Pasang pakej kebergantungan yang diperlukan untuk menyusun kernel:

操作系统原理与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) Konfigurasikan kernel

Masukkan makemenuconfig dan laksanakan [Simpan]->[Ok]->[Keluar]->[Keluar] dalam antara muka timbul

(10)Kompilkan

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

Taip make-j8 dalam [Terminal] (8 utas memulakan kompilasi), ia akan mengambil masa kira-kira sejam, dan kompilasi selesai seperti yang ditunjukkan dalam gambar

Taip arahan makemodules dan makemodules_install untuk melengkapkan penyusunan dan pemasangan modul masing-masing.

(11)Pasang kernel

【Terminal】Input makeinstall

(12)Mulakan semula sistem

[Terminal] Masukkan uname-r untuk menyemak versi kernel Seperti yang ditunjukkan dalam gambar, kernel telah disusun semula

在这里插入图片描述

Kompilasi program panggilan:

Keluar selepas menyimpan, dan jalankan gcctest.c-otest.out dan ./test.out dalam [Terminal] untuk mendapatkan keputusan ujian

5. Struktur dan proses data utama

Das obige ist der detaillierte Inhalt vonEin tiefer Einblick in Linux-Systemaufrufe: Neuer Systemaufruf zum Würfeln und Drucken einer Zahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Nginx-Cluster-Load-BalancerNächster Artikel:Nginx-Cluster-Load-Balancer