欢迎来到皮皮网网首页

【逐浪社区源码】【tapd 源码】【源码 网校】minix源码

来源:26源码 时间:2024-12-28 18:17:59

1.Linux方面的书籍哪一本好?
2.Linux系统下以模块方式安装卸载文件系统
3.Minix历史
4.Minix了解更多
5.讲解一下minix

minix源码

Linux方面的书籍哪一本好?

       Abraham Silberschatz的两本书:

       1. 实用操作系统概念(影印版)

       2. 操作系统概念(第六版 影印版)

       这个作者绝对是顶尖级的,来自贝尔实验室,是目前世界上操作系统方面的****。这两本书第二本和第一本很多地方相似,区别在于第二本理论偏重一些,第一本实例讨论的逐浪社区源码更多一些。这两本书别看很厚,但是写的非常流畅,属于比较易读的一类。

       3. 现代操作系统(英文版?第2版)

       Andrew S. Tanenbuam(坦尼伯姆, AST)是第4本书的升级版,里面添加了一些新的操作系统方面的讨论,原理部分比第四本稍有增强。个人认为,tapd 源码是除了前面两本之外的最好的书。

       4. 操作系统: 设计及实现(第二版)(英文影印版)

       这个比较有名了,主要是分析minix源代码的书,顺带着讲了下原理,应该说是偏于实践的,可能当年的linus的教材就是这本,影响较大,可以帮助你了解一个文件系统或系统调用之类是如何实现的。当然,和目前的操作系统来讲,稍简单了一些。想做linux kernel hacker的源码 网校同学此书可以一读。

       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分枝,思想都是awd源码缘于此书。里面主要讲解unix各个部分

       实现时所用的算法,其中一些目前还在使用中。想了解一下unix实现但又没什么时间扣

       minix或linux内核的朋友可以看看,在这本书上花费几十个小时,绝对超值:)

       9.Linux内核完全注释

       这一本书我觉得也很棒。它以Linux 0.内核源码为基础进行详细的分析,解释细致到位。虽然不是“经典”,但仍推荐!凭借简洁明了的源码分析,你可以管窥Linux操作系统的奥秘。

Linux系统下以模块方式安装卸载文件系统

       以Fedora8下面安装minix文件系统为例:

       为了保证与系统内核相匹配,cfdll源码首先得获得相应版本的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,原来期望的,作为一个开放的教材的用途。