《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换掉。