1. 谁能介绍一下minix谢谢了
在正式进入Minix的安装介绍之前,先谈一谈Minix与UNIX和linux的关系以及他的设计思想。Minix是一个类UNIX操作系统,其2.0版符合POSIX 1003.1和ISO9945-1工业标准。过去,UNIX操作系统的起源与发展与其源代码的公开是分不开的,而UNIX操作系统设计思想的先进性与前瞻性也是无与伦比的。时至今日,大学中"操作系统原理"课一直使用UNIX作为应用实例,而AT&T公司注意到了UNIX的商业价值后,不再允许用UNIX的源代码进行教学。学习"操作系统原理"课就成了只谈理论而不谈设计与实现。作为计算机科学教育家的Tanenbaum开发出了Minix用于操作系统教学。与UNIX相比,UNIX注重代码的高效率,而Minix则强调代码的可读性与简洁性。很快,Minix在网络中流行起来。有很多人,希望为Minix添加新的特性。而Tanenbaum认为Minix应该作为教学使用,众多新特性只会干扰对操作系统本质的认识。于是,人们把注意力转向设计一个类Minix的操作系统,这最终导致了Linux的诞生。下面正式进入Minix安装过程的学习。
第一步:制作安装介质
首先,需要9张空白的优质3寸盘,最好是名牌产品。由于fdvol命令在执行时遇到磁盘问题很容易跳出,而且在安装时会带来麻烦!(Dimitery:学校发的protel99的那张盘很好用)在DOS或Windows下进入Minix光盘的\Minix\I386目录,键入如下的命令:
fdvol 1440 A: i386\ROOT i386\USR
fdvol 1440 A: i386\USR.TAZ
fdvol 1440 A: SYS.TAZ
fdvol 1440 A: CMD.TAZ
命令的第一行表示用fdvol软件将Minix的启动映像和安装映像(ROOT+USR)逐字节拷贝到一张1.44M的软盘上。这一点也正说明了为什么前面说需要使用优质磁盘。系统数据会写满整张磁盘的每一个扇区、每一条磁道。磁盘上任何的坏道都会让以后的系统安装推倒重来。命令的其他各行分别表示将Minix的系统软件(USR.TAZ 三张软盘)、Minix操作系统源代码(SYS.TAZ 两张软盘)、系统软件源代码(CMD.TAZ 三张软盘)拷贝到软盘上。
第二步:划分Minix分区
虽然Minix操作系统在安装的过程中会启动一个名为"part"分区程序来划分Minix分区,但是它实在是太难用了。建议使用spfdisk来建立Minix主分区,可以把下载的spfdisk放到一张启动盘启动计算机,运行spfdisk.exe。其中分区ID为81。Minix分区最低只需30兆的空间就足够了。其中整个系统10兆,系统源代码和联机帮助10兆,整个系统的编译时的临时空间10兆。(注:spfdisk分区时不询问分区大小而询问柱头数目。)然后再将该Minix主分区标记为活动分区。最后用刚才制作的第一张(ROOT+USR)软盘重启动计算机即可。
第三步:安装Minix操作系统
在下面的安装说明中,为了正确区分屏幕+信息与用户的输入,用蓝色字符标识用户的输入,绿色的/*…*/表示我对该行的注释。
Finish the name of device to mount as /usr: /dev/fd0c
/*将软盘挂装在/usr目录上。*/
/*再次重启后…*/
noname login: root
# setup
What type of keyboard do you have? You can choose one of:french italian latin-am scandinavn uk us-swap
german japanese olivetti spanish us-stdKeyboard type? [us-std]
/*询问键盘的类型,默认为美国标准,这里回车即可。*/
Select device ----first---- --geom/last-- ------sectors-----
Device Cyl Head Sec Cyl Head Sec Base Size Kb
/dev/hd0 ? ? ?
? ? ? ? ? ? ? ? ?
Num Sort Type
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
Type '+' or '-' to change, 'r' to read, '?' for more help, '!' for advice
/*part分区程序,键入 'r' 读取硬盘分区信息,'?' 的位置改变为具体的硬盘分区信息。*/
/*鉴于我们在第二步中已经事先为Minix分好区,在这里只需记下Minix的分区号(假设是hd2),键入 'q' 退出。*/
作者: xiaolong85 2004-11-29 18:56 回复此发言
--------------------------------------------------------------------------------
2 minix的安装
You have created a partition named: /dev/hd2
The following subpartitions are about to be created on /dev/hd2: Root subpartition: /dev/hd2a 1440 kb
/usr subpartition: /dev/hd2c rest of hd2 Hit return if everything looks fine, or hit DEL to l out if you want to think it over. The next step will destroy /dev/hd2.
/*在hd2分区上建立hd2a、hd2c两个子分区(hd2a 1.44M、hd2c 剩余空间)。注意:hd2a与hd2c是Minix操作系统对硬盘的内部划分,并不修改硬盘分区表,用分区软件当然也看不见。hd2a存放Minix操作系统内核,这正体现了Minix的微内核结构。同时,Tanenbaum倡导Minix的内核不应超过1.44M,用一张软盘就可以装下。这样当系统出现重大故障时,仅需一张备份系统盘就可以恢复了。接下来则是准备格式化hd2分区,由系统自动完成。*/
What is the memory size of this system in kilobytes? [4096 or more]
Second level file system block cache set to 1024 kb.
/*询问计算机系统的内存容量,回车即可。*/
# halt /*当机*/
System Halted
fd0>boot hd2 /*启动Minix*/
noname login: root
# setup /usr /*安装Minix系统软件*/
What is the size of the images on the diskettes? [all]
What floppy drive to use? [0]
Please insert input volume 1 and hit return
/*根据提示插入'USR.TAZ'三张软盘*/
/*用完全相同的方法(setup /usr)将Minix操作系统源代码'SYS.TAZ' 两张软盘、系统软件源代码'CMD.TAZ' 三张软盘装入系统。这里八张软盘中有任何一张出错,又得回DOS下重新制作安装介质。用正品磁盘的好处这下显示出来了吧 ^o^ 。*/
至此,Minix操作系统的安装就告一段落了。这里还需要补充说明一点的是Minix的启动环境。与Linux操作系统的系统引导器Lilo相比,Lilo是启动程序,而Minix为启动环境。Lilo通过lilo.conf配置文件的设置,将启动方式直接写入MBR或Linux主分区。而Minix的启动环境则是与用户进行交互式操作,其功能强大得多,源代码的编写自然也复杂得多。通过在Minix启动之前按ESC键或以root身份输入halt指令可进入Minix启动环境。Minix启动环境最为常用的是boot命令:boot hdx /*启动hdx分区上的操作系统,x指1、2、…、N。*/。其他还有ls、menu、echo、name等多种环境操作命令,非常值得研究研究。
Minix操作系统的设计精巧,代码清晰,实现也并不过于复杂,非常适合计算机科学系的大学生或研究生学习。同时也可作为计算机科技工作者研究的实例。
2. minix3里面,kernel/system/do_fork.c和pm里面forkexit里的do_fork什么关系
kernel中的被sys_task调用完成创建进程等工作
3. 如何编译一个内核
每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核, 另外也介绍了如何给内核打补丁, 从而方便增加新的功能.
下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上经过了测试.
我想首先要说的是文章中构建自定义内核的方式不是唯一的, 还有许多其它的方式, 这不过是我习惯的方式. 我不能保证使用后不会出现任何问题.
1. 预备工作
我推荐使用root用户执行下面所有的步骤. 如果你还没有创建root登陆口令, 请运行下面的命令:
sudo passwd root
然后, 以root身份登陆:
su
如果你想使用一般用户来替代root用户, 记住在本文所有命令前输入sudo, 比如当我运行
apt-get update
你需要运行下面的命令来替代, 等.
sudo apt-get update
1.1 Ubuntu 6.10上的/bin/sh ("Edgy Eft")
在Ubuntu 6.10, /bin/sh缺省是一个链接到/bin/dash的字符链接. 当你编译软件源代码的时候, /bin/dash似乎还存在问题. 至少我已经遇到了一些问题. 所以我把/bin/sh链接到了/bin/bash.
如果你使用Ubuntu 6.10, 现在你可以运行:
rm -f /bin/sh
ln -s /bin/bash /bin/sh
2 安装必需的软件包 (为内核编译做准备)
首先我们升级软件(包)库:
apt-get update
然后我们安装所有需要的软件包:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
3 下载内核源代码
接下来我们下载需要的内核到/usr/src目录(去
网站下载你需要的内核版本, 比如. linux-2.6.18.1tar.bz2( ). 然后下载到/usr/src目录:
cd /usr/src
wget http:// /pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
然后解压内核源代码, 创建一个指向内核源代码目录的linux字符链接:
tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux
4 给内核源代码打补丁(可选)
有时你的缺省内核不支持新买的设备, 你需要安装新的驱动. 或者你需要使用虚拟技术或其它高级的技术, 而这些现有的内核都不支持. 这样情况下你需要给给内核源代码打补丁(当然补丁已经发布..)
现在我们假设你已经下载需要的补丁(以下例子我叫它patch.bz2)到/usr/src. 运行下面的命令给内核源代码直接打上补丁(你的用户必须位于/usr/src/linux目录):
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
第一个命令用于测试, 对内核没有任何影响. 如果没有显示错误, 你可以运行第二个命令给内核打补丁. 如果第一个命令有误, 请务继续的操作!
你也能够通过内核的prepatches方式打补丁. 比如, 如果你需要一个功能, 而这个功能仅存在于2.6.19-rc4中,
正式完整的内核版本仍没有发布, 而patch-2.6.19-rc4.biz2已经发布. 你可以把这个补丁打到2.6.18的内核源代码中,
但请不要达到2.6.18.1或2.6.18.2, 等. 这个规则在接下来的网页中注明:
http://kernel.org/patchtypes/pre.html
prepatches等同于linux中的测试发行; 他们位于存档的测试目录中,
我们可以使用patch(1)工具对上一个完整发行版(版本号分三部分)打补丁(例如, 2.6.12-rc4
prepatch只可以给2.6.11内核源代码打补丁, 而不是2.6.11.10.)
所以如果你想编译2.6.19-rc4内核, 你必须在步骤3.1下载2.6.18(
http:// /pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
)替代2.6.18.1内核源代码!
下面是如何给2.6.18打上2.6.19-rc4补丁:
cd /usr/src
wget http:// /pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1
5. 配置内核
使用当前工作内核的配置文件做为新内核配置文件的基础是一个很好的主意. 因此我们拷贝已存的配置文件到/usr/src/linux:
cp /boot/config-`uname -r` ./.config
然后运行
make menuconfig
然后我们看到内核的配置菜单. 移动绿色光标到 Load an Alternate Configuration File 行后选择.config文件(包含了当前工作内核的配置)做为配置文件:
然后浏览内核配置菜单, 选择你需要的功能. 完成配置后, 选择Exit, 回答下面的问题(Do you wish to save your new kernel configuration? 你希望保存新的内核配置吗?), 选择Yes:
6 构建内核
执行下面命令来构建内核:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image
kernel_headers
在--append-to-version= 后面你可以写上任何字符串来区别内核版本, 但是必须以" - "符号开始而且后面不包括任何空格.
保持耐心, 内核编译需要一定时间, 主要看你的内核配置和处理器速度.
7 安装新内核
在成功构建内核后, 你在/usr/src目录能发现两个.deb软件包.
cd /usr/src
ls -l
在我的测试系统上, 他们分别名为
linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(包含了实际的内核) 和
linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(包含了需要的文件, 用于以后需要编译额外的内核模块). 我是这样安装的:
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
(现在你甚至能够拷贝这两个.deb文件到其它的Ubuntu系统, 通过上面的方式安装. 你将不再需要编译内核.)
然后检查 /boot/grub/menu.lst文件, 现在你将能发现新内核使用的两个引导配置块:
vi /boot/grub/menu.lst
在我测试系统上已经添加好的引导配置块是这样的:
title Ubuntu, kernel 2.6.18.1-custom
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.18.1-custom
savedefault
boot
title Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18.1-custom
boot
现在重启系统:
shutdown -r now
如果一切进展顺利, 你的新内核正常工作. 你还可以通过运行下面命令来检查新内核是否运行:
uname -r
这将会显示如:
2.6.18.1-custom
如果系统没有起来, 重启一下, 你会看到:
按ESC进入GRUB菜单:
选择你以前的内核启动系统, 现在你能再次尝试编译新的工作内核. 不要忘记从/boot/grub/menu.1st文件中移去不需要的引导内核信息.
4. 如何编译minix3并且做成可启动的iso镜像
1.先生成一个空白软盘镜像:
dd if=/dev/zero of=data.img bs=512 count=2880
2.使用losetup命令,把data.img作为loop device使用:
sudo losetup /dev/loop0 data.img
3.格式化这个loop device
sudo mkfs.msdos /dev/loop0 //如果没有mkfs.msdos 命令,请检查系统是否安装了dosfstools包
4.检查文件系统:
sudo fsck.msdos /dev/loop0
5.删除 loop device:
sudo losetup -d /dev/loop0
6.这时候,data.img已经格式化完成,以可读写选项挂载空白软盘镜像
sudo mount -o loop,rw data.img /mnt/floop
7.往软盘所挂载的节点上写入文件,容量不超过 1.44M 就好了!
sudo cp file.c /mnt/floppy
8.卸载软盘
sudo umount /mnt/floop
9.但是这样还不可以引导,需要写一个简单的引导程序, 编译后生成 boot , 大小不能超过512Byte,然后
dd bs=512 if=boot of=/dev/loop/0 count=1
把这个引导程序写入软盘镜像的0扇区。
5. centos6.4系统在mount -t minix 的时候,提示错误,不支持minix系统。
Miniux 应该是比Linux更早的一个操作系统, mount是挂载用的,要想支持Minux,估计你要重新编译Linux内核,在文件系统分支下面让其支持Minix的文件系统。
6. minix3源代码如何导出
我只知道 怎么把源码 传到minix3中, 用的是ftp, 毕竟minix3有网络的. 大概就是minix3 请求到某个ftp服务器上下载改好的源码, 然后下到minix3 文件系统后,可以编译和替换内核. 传出来我就不清楚了, 传出来估计得minix3请求向某个ftp服务器 上传源码就行了
7. 如何编译一个内核
一、 下载新内核的源代码
目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。笔者是从站点www.kernelnotes.org上下载了Linux的最新开发版内核2.3.14的源代码,全部代码被压缩到一个名叫Linux-2.3.14.tar.gz的文件中。
二、 释放内核源代码
由于源代码放在一个压缩文件中,因此在配置内核之前,要先将源代码释放到指定的目录下。首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-2.2.5的子目录。该目录下存放着内核2.2.5的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中。
(一)、用tar命令释放内核源代码
# cd /usr/src
# tar zxvf Linux-2.3.14.tar.gz
文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。
(二)、将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。
# cd /usr/include
# rm -Rf asm linux
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
(三)、删除源代码目录中残留的.o文件和其它从属文件。
# cd /usr/src/linux
# make mrproper
三、 配置内核
(一)、启动内核配置程序。
# cd /usr/src/linux
# make config
除了上面的命令,用户还可以使用make menuconfig命令启动一个菜单模式的配置界面。如果用户安装了X window系统,还可以执行make xconfig命令启动X window下的内核配置程序。
(二)、配置内核
Linux的
内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内
核;"m"表示将相应特性的支持或设备驱动程序编译成可加载 模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序
的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。
1、Code maturity level options(代码成熟度选项)
Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。
1、 Processor type and features(处理器类型和特色)
(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 选择处理器类型,缺省为Ppro/6x86MX。
(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 内核支持的最大内存数,缺省为1G。
(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 协处理器仿真,缺省为不仿真。
(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]
选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。
(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 选择“y”,内核将支持对称多处理器。
2、 Loadable mole support(可加载模块支持)
(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 选择“y”,内核将支持加载模块。
(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。
3、 General setup(一般设置)
(1)、Networking support (CONFIG_NET) [Y/n/?] 该选项设置是否在内核中提供网络支持。
(2)、PCI support (CONFIG_PCI) [Y/n/?] 该选项设置是否在内核中提供PCI支持。
(3)、PCI access mode (BIOS, Direct, Any) [Any] 该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。
(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 选择“y”,内核将支持平行口。
4、 Plug and Play configuration(即插即用设备支持)
(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 选择“y”,内核将自动配置即插即用设备。
(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 选择“y”,内核将自动配置基于ISA总线的即插即用设备。
5、 Block devices(块设备)
(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 选择“y”,内核将提供对软盘的支持。
(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。
6、 Networking options(网络选项)
(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。
(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 选择“y”,内核将支持防火墙。
(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 选择“y”,内核将支持TCP/IP协议。
(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 选择“y”,内核将支持IPX协议。
(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 选择“y”,内核将支持Appletalk DDP协议。
8、SCSI support(SCSI支持)
如果用户要使用SCSI设备,可配置相应选项。
9、Network device support(网络设备支持)
Network device support (CONFIG_NETDEVICES) [Y/n/?] 选择“y”,内核将提供对网络驱动程序的支持。
10、Ethernet (10 or 100Mbit)(10M或100M以太网)
在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(Wireless LAN)的支持。
11、Character devices(字符设备)
(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 选择“y”,内核将支持虚拟终端。
(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]
选择“y”,内核可将一个虚拟终端用作系统控制台。
(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]
选择“y”,内核将支持串行口。
(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]
选择“y”,内核可将一个串行口用作系统控制台。
12、Mice(鼠标)
PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用户使用的是PS/2鼠标,则该选项应该选择“y”。
13、Filesystems(文件系统)
(1)、Quota support (CONFIG_QUOTA) [N/y/?] 选择“y”,内核将支持磁盘限额。
(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。
(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 选择“y”,内核将支持DOS FAT文件系统。
(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]
选择“y”,内核将支持ISO 9660 CDROM文件系统。
(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]
选择“y”,用户就可以以只读方式访问NTFS文件系统。
(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。
(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的标准文件系统,该项也必须选择“y”。
14、Network File Systems(网络文件系统)
(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 选择“y”,内核将支持NFS文件系统。
(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)
选择“y”,内核将支持SMB文件系统。
(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)
选择“y”,内核将支持NCP文件系统。
15、Partition Types(分区类型)
该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。
16、Console drivers(控制台驱动)
VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。
17、Sound(声音)
Sound card support (CONFIG_SOUND) [N/y/m/?] 选择“y”,内核就可提供对声卡的支持。
18、Kernel hacking(内核监视)
Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。
四、 编译内核
(一)、建立编译时所需的从属文件
# cd /usr/src/linux
# make dep
(二)、清除内核编译的目标文件
# make clean
(三)、编译内核
# make zImage
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用make bzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。
(四)、编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
# make moles
# make modelus_install
编译成功后,系统会在/lib/moles目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。
五、 启动新内核
(一)、将新内核和System.map文件拷贝到/boot目录下
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14
# cp /usr/src/linux/System.map /boot/System.map-2.3.14
# cd /boot
# rm -f System.map
# ln -s System.map-2.3.14 System.map
(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
# /sbin/lilo
(四)、重新启动系统
# /sbin/reboot
新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。
8. 关于minix系统如何安装
MINIX3 - 安装+使用
作者:邢万里
前期准备
下载
点击MINIX - ISO官网可以看到如下两个选项,一个是3.3.0版本,另一个是3.2.1版本。很明显的区别就是,3.3.0版本暂时没有支持x 11(即图形化界面),而3.2.1包含其中,因此,我个人装的是3.2.1版本。
(可选)如果读者需要装其他版本或者获得其他相关资源,点击Index of ISO。
如果读者在完成安装MINIX后,需要安装图形化界面,请点击MINIX - x11官网阅读如何让图形化界面运行起来(x 11后的界面如下所示)。
由于安装需要使用磁盘的第一块分区,我建议使用vmware完成操作,因此,vmware是需要下载的。注意:vmware中ctrl+G,让虚拟获得鼠标和键盘的控制权,ctrl+Alt 释放鼠标和键盘的控制权,切记切记。
环境搭建
安装
首先建议读者阅读下
MINIX - 通用版安装教程官网,虚拟机用户也可以阅读下MINIX - vmware版安装教程官网。当然,通用版安装教程,也有人在网上进行了翻译,这里就不做解释了。
如何使用vmware安装上述提及的ISO文件,这里就不重复阐述别人已有的文字了,只需要注意:
(1)vmware安装系统时,只要你不是赶时间,就避免easy install(如何避免见我的另外一篇博客vmware使用帮助)。
(2)系统类型,二者均选择other。
(3)内存大于等于512MB,磁盘空间至少8G(如果想认认真真安装完所有的程序,并使用和学习MINIX的话,建议至少20G)
(4)网络连接选择NAT即可(不需要在网上看很多人用桥接,对于新手桥接无法上网将会是一个阻碍)。
安装后,进入MINIX界面,root用户登录(无需密码):
设置自己的系统,键入命令#setup即可,后续只需要一路回车(中间有选项提示输入yes/no,当然是选择yes):
切记最后一项(如下图所示),新手不要看网络上面解释的,选择默认第一项即可。
设置完后,注意键入命令#reboot重启,让设置生效。
使用MINIX
使用
使用命令ifconfig或者ping检查是否可以上网。
安装x 11(图形界面):
(1) #pkgin update:
MINIX使用pkgin进行安装程序(类似于ubuntu的apt-get)。先update将包从网上抓取(fetch)下来。
(2) #pkgin install x11:
开始安装x 11。注意,下载过程非常缓慢(3 - 20kb/s),本人亲测(位置于重庆),不要白天浪费大量时间去下载折腾,凌晨2-6速度非常快(能够到达80kb/s),等待晚上睡觉时候下载将是一个非常好的选择!
(3) #reboot:
重启生效x 11。
(4)#passwd
更改root用户密码,因为x 11不支持无密码登录。
(5) #xdm
此步骤即可进入图形界面!完成!
其他正常方式使用MINIX,当然MINIX只是用于教学,学习内核将是非常好的选择!
9. minix3下用cc 对c程序进行编译,出现:non-ascii '/350'read,这样的提示,是什么样的问题呢
好象是说你的源代码里面包含了非标准的ASCII字符,看看你的代码是不是从网上拷下来的,尤其注意那些空白字符
10. Linux内核源码如何编译
首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。
最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。