Linux的系统调用
系统调用通过0x80中断实现,其中eax为调用号,ebx、ecx、edx等通用寄存器用来传递参数。常见的系统调用有WRITE系统调用,调用号为4,EXIT系统调用,调用号为1。
系统库和退出码
我们平时的main程序中的return的数值会返回给系统库,由系统库将该数值传递给EXIT系统调用,这样父进程就可以通过接收子进程的退出码。下面的指令可以产看bash命令执行的程序的退出码:
$ echo $?
Console&Telnet
用户终端与系统间的通信方法。提供Console或Telnet的连接方式。那么,到底什么是Console,又什么是Telnet呢?有关Console,Shell,Telnet的概念一直不是很清楚。
Linux Command
软件包安装
开源软件传统的安装模式是从源码包编译安装:
./configure && make && make test &&make install
源码包安装方式,维护成本高:
- 采用源码包方式安装,100个管理员有100个部署方法
- 源码包方式编译,由于依赖软件包改变(升级),导致软件工作异常
- 源码包方式的软件升级过程过程不可控。
- 可能造成配置文件的覆盖,服务中断等。
“群英汇”不采用源码包部署方式,而是提供标准的拆包即装的方式
- 标准化部署
- 有效解决了软件包间依赖
- 可控的软件包升级
Linux SHELL学习
- 《Bash_Beginners_Guide_CHS.pdf》
- 《Linux基础命令教程豪华版.chm》
经典和高深的书籍
- 《ABS_Guide_cn.pdf》
Minix的代码可以在网上(www.minix.org)找到,也可以在《操作系统设计与实现(下册)》找到,后者有经过精炼的针对x86架构Minix 3代码,只有几百页。
如果要看Linx的话,可以先看看一个叫于渊的人写的《自己动手写操作系统》,上面有介绍IA32的保护机制,不过Linux的新版内核貌似绕过了段保护,只用了分页机制。