1.Linux方面的书籍哪一本好?
2.Linux系统下以模块方式安装卸载文件系统
3.Minix历史
4.Minix了解更多
5.讲解ä¸ä¸minix
Linux方面的书籍哪一本好?
Abraham Silberschatz的两本书:
1. 实用操作系统概念(影印版)
2. 操作系统概念(第六版 影印版)
这个作者绝对是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的****。这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的php储值系统源码更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。
3. 现代操作系统(英文版?第2版)
Andrew S. Tanenbuam(坦尼伯姆, AST)是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,云函数源码是除了前面两本之外的最好的书。
4. 操作系统: 设计及实现(第二版)(英文影印版)
这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的kk原源码同学此书可以一读。
5. 操作系统:现代观点(第二版 实验更新版)(英文版)
Operating Systems: A design-Oriented Approach 这两本一般,但是还是比国内抄袭的教材强很多,可以作为补充阅读的书籍。
6. LINUX内核源代码情景分析(上册) LINUX内核源代码情景分析(下册)
Understanding Linux Kernel
Linux internal
这三本是最nb的linux内核分析书籍,后两本讲2.2内核,第一本讲2.4。
7. 4.4BSD操作系统设计与实现(英文影印版)
不说少了,原来berkeley那帮写bsd的其中几个人写的,经典就是它了。
8. UNIX操作系统设计(英文版)
:古老的unix设计方面的书籍,应该说这本书在unix世界里面的影
响是十分巨大的,很多后来的unix分枝,思想都是50家源码缘于此书。里面主要讲解unix各个部分
实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣
minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:)
9.Linux内核完全注释
这一本书我觉得也很棒。它以Linux 0.内核源码为基础进行详细的分析,解释细致到位。虽然不是“经典”,但仍推荐!凭借简洁明了的源码分析,你可以管窥Linux操作系统的奥秘。
Linux系统下以模块方式安装卸载文件系统
以Fedora8下面安装minix文件系统为例:
为了保证与系统内核相匹配,源码的诗首先得获得相应版本的minix源代码,首先通过uname -r查询本机的内核版本:
[cocobear@cocobear ~]$ uname -r
2.6..4-.fc8
在Kernel.org主页上可以获得2.6..4-内核的源代码,其实我们只需要其中linux-2.6..4/fs/minix/目录中的代码。因为我们不需要对整个内核进行重新编译,因此我们只需要在linux-2.6..4/fs/minix/目录下写一个Makefile,生成相应的minix.ko就可以了。
在开始写Makefile之前要确认系统已经安装了以下的包:
[cocobear@cocobear ~]$ rpm -qa | grep kernel
kernel-devel-2.6..4-.fc8
kernel-headers-2.6..4-.fc8
kernel-2.6..4-.fc8
在模块编译的过程中需要用到。
在源代码中已经有一个Makefile:
#
# Makefile for the Linux minix filesystem routines.
#
obj-$(CONFIG_MINIX_FS) += minix.o
minix-objs := bitmap.o itree_v1.o itree_v2.o namei.o inode.o file.o dir.o
修改该文件为:
#
# Makefile for the Linux minix filesystem routines.
# make minix fs as kernel module
obj-m += minix.o
minix-objs := bitmap.o itree_v1.o itree_v2.o namei.o inode.o file.o dir.o
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *.mod.c *.ko *.symvers
这里简单的解释一下,obj-m表示该文件将以模块的方式编译;因为本模块由多个文件组成,采用模块名加 –objs(minix-objs)后缀的形式来定义模块的组成文件。KERNELDIR定义了代码树的位置,PWD定义了当前文件夹位置;而make命令中-C选项指定了代码树的位置(由KERNELDIR给出),M=$(PWD)指定了在当前目前进行构建工作。
最后一行清理编译过程产生的文件。
完成了Makefile后我们就可以开始编译这个文件系统模块了,直接输入make就开始编译了:
[cocobear@cocobear minix]$ make
make -C /lib/modules/2.6..4-.fc8/build M=/home/cocobear/minix modules
make[1]: Entering directory `/usr/src/kernels/2.6..4-.fc8-i′
CC [M] /home/cocobear/minix/bitmap.o
CC [M] /home/cocobear/minix/itree_v1.o
CC [M] /home/cocobear/minix/itree_v2.o
CC [M] /home/cocobear/minix/namei.o
CC [M] /home/cocobear/minix/inode.o
CC [M] /home/cocobear/minix/file.o
CC [M] /home/cocobear/minix/dir.o
LD [M] /home/cocobear/minix/minix.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/cocobear/minix/minix.mod.o
LD [M] /home/cocobear/minix/minix.ko
make[1]: Leaving directory `/usr/src/kernels/2.6..4-.fc8-i′
编译结束后会面当前目前下生成minix.ko文件,这就是我们需要的东西,使用insmod命令就可以安装这个minix文件系统模块了。当然这里需要有root权限。我们来演示一下minix模块的加载:
[cocobear@cocobear minix]$ cat /proc/modules | grep minix
[cocobear@cocobear minix]$
这里可以看到minix并没有被加载,我们使用insmod minix.ko命令:
[cocobear@cocobear minix]$ sudo insmod minix.ko
[cocobear@cocobear minix]$ cat /proc/modules | grep minix
minix 0 - Live 0xd0e7d
insmod后我们从上面的信息可以看到minix模块已经被加载,如果不需要使用这个模块我们同样可以很方便的把它卸载:
[cocobear@cocobear minix]$ sudo rmmod minix.ko
[cocobear@cocobear minix]$ cat /proc/modules | grep minix
[cocobear@cocobear minix]$
到此我们顺利的完成了文件系统的编译、安装以及卸载。
BTW:中间遇到了点问题写了Makefile后输入make提示:”make: Nothing to be done for `default’.“,在网上找到了原因,在make命令前要使用tab,而不是空格,而我的刚好的空格,郁闷,以前就似乎遇到过的。
Minix历史
Minix,最初由荷兰阿姆斯特丹Vrije大学计算机科学系的Andrew S. Tanenbaum教授开发,是一个小型的类Unix操作系统。它的全部代码量约为,行,作为其著作《操作系统:设计与实现》(ISBN 0---3)的附录示例提供。在那个时代,Minix的系统需求相当简单,仅需三张磁片即可启动。 Minix的核心部分主要用C语言编写,分为内核、内存管理和文件管理三个模块。最初的版本专为年代至年代的IBM PC和IBM PC/AT兼容计算机设计,如个人电脑和苹果Macintosh的前身。1.5版扩展到了基于Motorola 系列CPU的设备,如Atari ST和Amiga,以及早期的Sun工作站。然而,到了2.0版,Minix主要针对的是x架构的系统。扩展资料
MINIX是一种基于微内核架构的类UNIX计算机操作系统,由Andrew S. Tanenbaum发明。MINIX最初发布于年,开放全部源代码给大学教学和研究工作。年重新改为BSD授权,成为自由和开放源码软件。Minix了解更多
想要深入了解Minix 3,首先推荐访问官方网站 .com。扩展资料
MINIX是一种基于微内核架构的类UNIX计算机操作系统,由Andrew S. Tanenbaum发明。MINIX最初发布于年,开放全部源代码给大学教学和研究工作。年重新改为BSD授权,成为自由和开放源码软件。讲解ä¸ä¸minix
æ¨å¥½ï¼è½¬è½½å¯ä¹ï¼
ä»ä¹æ¯MINIX
Minixçå称åèªè±è¯Mini UNIXï¼æ¯ä¸ä¸ªè¿·ä½ çæ¬çç±»Unixæä½ç³»ç»ï¼å ¶å®ç±»ä¼¼çç³»ç»è¿æIdrisï¼Coherentï¼åUniflexçãè¿äºç±»Unixæä½ç³»ç»é½æ¯éæ°åå±çï¼å¹¶æ²¡æ使ç¨ä»»ä½AT&Tçç¨åºç ã
MINIXçåå²
Minixåæ¥æ¯è·å °é¿å§æ¯ç¹ä¸¹çVrije大å¦è®¡ç®æºç§å¦ç³»çAndrew S. Tanenbaumæææåå±çä¸ä¸ªç±»Unixæä½ç³»ç»ãå ¨é¨çç¨åºç å ±çº¦,è¡ï¼å¹¶ç½®äºä»çèä½Operating Systems: Design and Implementation(ISBN 0---3)çéå½éä½ä¸ºèä¾ãMinixçç³»ç»è¦æ±å¨å½æ¶æ¥è¯´é常ç®åï¼åªè¦ä¸çç£çå°±å¯ä»¥èµ·å¨ã
å ¨å¥Minixé¤äºèµ·å¨çé¨ä»½ä»¥ç»åè¯è¨ç¼å以å¤ï¼å ¶ä»å¤§é¨ä»½é½æ¯çº¯ç²¹ç¨Cè¯è¨ç¼åãå为ï¼å æ ¸ãå å管çåæ¡£æ¡ç®¡çä¸é¨ä»½ã
Minixåå§æ¯è®¾è®¡ç»å¹´ä»£å°å¹´ä»£çIBM PCåIBM PC/ATå ¼å®¹çµèä¸æ§è¡ã1.5çä¹æ移æ¤å°å·²Motorola ç³»åCPU为åºç¡ççµèä¸ï¼å¦Atari STï¼Amigaï¼åæ©æçApple Macintoshï¼å以SPARC为åºç¡çæºå¨ï¼å¦åé³sunå ¬å¸çå·¥ä½ç«ï¼ã2.0çååªæxæ¶æççæ¬ã
MINIXä¸Linux
Linuxæ¯å ¶ä½è åå°Minixçå½±åèä½æçï¼Linus Torvaldsä¸å欢ä»ççµèä¸çMS-DOSæä½ç³»ç»ï¼å®è£ äºMinixï¼å¹¶ä»¥å®ä¸ºæ ·æ¬å¼åäºåå§çLinuxå æ ¸ï¼ãä½å¨è®¾è®¡å²å¦ä¸ï¼LinuxååMinix大ç¸è¿³åºãMinixå¨å æ ¸è®¾è®¡ä¸éç¨å¾®å æ ¸çååï¼ä½Linuxåååå§çUnixç¸åé½éç¨åå æ ¸çæ¦å¿µãå¨Linuxåå±ä¹åï¼åæ¹è¿äºå¹´å¨æ°é»ç»ä¸æè¿ä¸åºç²¾å½©çç念äºè®ºãMinixçä½è åæ¯æè 认为Linuxçåå æ ¸æé æ¯âåä¸å年代ç大åéâï¼èLinuxçæ¯æè 认为Minixæ¬èº«æ²¡æå®ç¨æ§ã
æææ¹å¼
å¨æææ¹å¼ä¸ï¼Minixççæ宣åå¨æ©æ被认为æ¯ç¸å½èªç±çï¼å¨ä½è Andrew S. Tanenbaumå¸ææ¿Minixä½ä¸ºä¸ä¸ªå ¬å¼çææä¸åºç社å¸æä¿æ¤ç¨åºç èä½è´¢äº§æç平衡ä¸ï¼å®åªè¦æ±ä¸ä¸ªç¸å½ä½çææè´¹ãä½å 为å®å¹¶ä¸æ¯ä¸ä¸ªå¼æ¾æºç çæææ¹æ¡ï¼æ以å¿æ¿å·¥ä½è å¨ä»¥GPLæ¹å¼æ£å¸çLinuxæ ¸å¿åºç°åå°±å¤è½¬åLinuxå¹³å°ãèUnixä¹å¨æå è±ç³»ç»ä¸AT&Tè¾¾æåè®®åï¼åºç°äºä»¥BSD æææ£å¸çFreeBSDå¼æ¾å¹³å°ãMinixè½ç¶å¨å¹´æ¹ç¨BSD ææï¼ä½è¿æ¶å ¶å®çæä½ç³»ç»å¨åè½ä¸å¤§å¹ è¶ è¶äºå®ï¼èå®å¤±å»äºåå±æä¸ä¸ªå¹¿æ³ä½¿ç¨çæä½ç³»ç»çæºä¼ï¼åªçä¸ï¼å¦å®çä½è Andrew S. Tanenbaumï¼åæ¥ææçï¼ä½ä¸ºä¸ä¸ªå¼æ¾çææçç¨éã å¨æææ¹å¼ä¸ï¼Minixççæ宣åå¨æ©æ被认为æ¯ç¸å½èªç±çï¼å¨ä½è Andrew S. Tanenbaumå¸ææ¿Minixä½ä¸ºä¸ä¸ªå ¬å¼çææä¸åºç社å¸æä¿æ¤ç¨åºç èä½è´¢äº§æç平衡ä¸ï¼å®åªè¦æ±ä¸ä¸ªç¸å½ä½çææè´¹ãä½å 为å®å¹¶ä¸æ¯ä¸ä¸ªå¼æ¾æºç çæææ¹æ¡ï¼æ以å¿æ¿å·¥ä½è å¨ä»¥GPLæ¹å¼æ£å¸çLinuxæ ¸å¿åºç°åå°±å¤è½¬åLinuxå¹³å°ãèUnixä¹å¨æå è±ç³»ç»ä¸AT&Tè¾¾æåè®®åï¼åºç°äºä»¥BSD æææ£å¸çFreeBSDå¼æ¾å¹³å°ãMinixè½ç¶å¨å¹´æ¹ç¨BSD ææï¼ä½è¿æ¶å ¶å®çæä½ç³»ç»å¨åè½ä¸å¤§å¹ è¶ è¶äºå®ï¼èå®å¤±å»äºåå±æä¸ä¸ªå¹¿æ³ä½¿ç¨çæä½ç³»ç»çæºä¼ï¼åªçä¸ï¼å¦å®çä½è Andrew S. Tanenbaumï¼åæ¥ææçï¼ä½ä¸ºä¸ä¸ªå¼æ¾çææçç¨éã