《linux內核設計與實現》讀書筆記(五)-系統調用主要內容:什麼是系統調用linux上的系統調用實現原理一個簡單的系統調用的實現1ernel/sys.c我在sys.c中追加了2個函數:sys_foo和sys_bar如果是在x86_64的內核中增加一個系統調用,只需修改 arch/x86/include/asm/unistd_64.h,比如sys_bar。修改內容參見下面的diff文件:diff -r new/arch/x86/ia32/ia32entry.S old/arch/x86/ia32/ia32entry.S855d854< .quad sys_foodiff -r new/arch/x86/include/asm/unistd_32.h old/arch/x86/include/asm/unistd_32.h357d356< #define __NR_foo 349361c360< #define NR_syscalls 350--- > #define NR_syscalls 349diff -r new/arch/x86/include/asm/unistd_64.h old/arch/x86/include/asm/unistd_64.h689,692d688< #define __NR_foo 312< __SYSCALL(__NR_foo, sys_foo)< #define __NR_bar 313< __SYSCALL(__NR_bar, sys_bar)diff -r new/arch/x86/kernel/syscall_table_32.S old/arch/x86/kernel/syscall_table_32.S351d350< .long sys_foodiff -r new/include/asm-generic/unistd.h old/include/asm-generic/unistd.h694,695d693< #define __NR_foo 272< __SYSCALL(__NR_foo, sys_foo)698c696< #define __NR_syscalls 273---> #define __NR_syscalls 272diff -r new/kernel/sys.c old/kernel/sys.c1920,1928d1919<< asmlinkage long sys_foo(void)< {< return 1112223334444555;< }< asmlinkage long sys_bar(void)< {< return 1234567890;< } 3.3 編譯內核#cd linux-3.2.28#make menuconfig (選擇要編譯參數,如果不熟悉內核編譯,用默認選項即可)#make all (這一步真的時間很長......)#make moles_install#make install (這一步會把新的內核加到啟動項中)#reboot (重啟系統進入新的內核)3.4 編寫調用的系統調用的代碼#include <unistd.h>#include <sys/syscall.h>#include <string.h>#include <stdio.h>#include <errno.h>#define __NR_foo 312#define __NR_bar 313 int main(){ printf (result foo is %ld/n, syscall(__NR_foo)); printf(%s/n, strerror(errno)); printf (result bar is %ld/n, syscall(__NR_bar)); printf(%s/n, strerror(errno)); return 0;}編譯運行上面的代碼:#gcc test.c -o test#./test運行結果如下:result foo is 1112223334444555Successresult bar is 1234567890Success
㈡ Linux Mint這幾個版本有什麼區別哪個版本用的人比較多
Mint基於Ubuntu,比Ubuntu更易用些吧,這幾個版本只是安裝的桌面環境不一樣,你可以選擇喜歡的桌面配置版本下載來安裝。
Linux Mint 9默認是GNOME桌面,和KDE一樣都是重量級桌面,樣式和功能都比較全面;
XFCE、LXDE是輕量級桌面環境,快速、簡潔,而LXDE更是比較簡陋,尤其適於老配置機器。
㈢ Linux和Linuxmint有什麼區別
「Linux」不是專指一種操作系統,而是一個內核。所有使用Linux內核的操作系統均可以被稱為「linux發行版(distro)」,如android、Ubuntu等。LinuxMint就是一種linux發行版。LinuxMint基於Ubuntu,Ubuntu基於Debian,Debian則基於Linux。
LinuxMint、Ubuntu、Debian均為linux的發行版。
盡管mint基於Ubuntu、Debian,但在圖中可以看到,mint是distrowatch排行榜第一位,Ubuntu、Debian都在其後。可以看出,linuxmint是目前世界上關注度最高的linux發行版,而且長時間霸榜。(但在國內,mint的人氣並不高,在debian、Ubuntu、archlinux等之後)
linuxmint值得體驗。
作為一個linux發行版,體驗linuxmint就是在體驗linux。
除linuxmint外,其他的發行版還有好多。ubuntu、debian、zorin、archlinux、deepin、Slackware等、都是各具特色,值得體驗的linux發行版。
㈣ 請問大家,linuxmint升級內核重啟就這樣了,該怎麼辦
如果kernel panic 肯定是在kernel內部出的問題。你跑的應用在某處用到的內核功能可能與實際操作系統版本的功能預期的不一致。比較徹底的辦法就是分析下你應用都高頻率地使用什麼內核介面功能。把core mp 仔細看一下。簡單快速的辦法就是查下你的應用依賴什麼版本的內核,把你操作系統的kernel換掉。