最小的Linux操作系统制作过程详解
Linux没有最小只有更小----迷你Linux版本大集合
Linux没有最小只有更小----迷你Linux版本大集合2013-04-14 02:25:11| 分类:tdd,agile,java, | 标签:linux |字号订阅Linux没有最小只有更小----迷你Linux版本大集合Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
Linux得名于天才程序员林纳斯·托瓦兹。
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。
文件结构/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
/bin:bin 就是二进制(binary)英文缩写。
在一般的系统当中,都可以在这个目录下找到linux常用的命令。
系统所需要的那些命令位于此目录。
/boot:Linux的内核及引导系统程序所需要的文件目录,比如vmlinuz initrd.img 文件都位于这个目录中。
在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。
/cdrom:这个目录在刚刚安装系统的时候是空的。
可以将光驱文件系统挂在这个目录下。
例如:mount /dev/cdrom /cdrom/dev:dev 是设备(device) 的英文缩写。
这个目录对所有的用户都十分重要。
因为在这个目录中包含了所有linux系统中使用的外部设备。
制作自己的Linux发行版
制作自己的Linux发行版1、安装linux系统(如CentOS),安装完后在/root/下有anaconda-ks.cfg、install.log、install.log.syslog文件2、在某目录下(如:/root/zhenglei/)创建目录(如:isotest)存放linux发行版所需文件#cd /root/zhenglei/#mkdir isotest3、挂载iso文件到linux上。
挂载前,先在/mnt/下创建cdrom目录,用来挂载#mkdir /mnt/cdrom/#mount –t iso9660 –o loop /xxx/test.iso /mnt/cdrom/此处的xxx是test.iso文件所在的绝对路径4、利用tar命令将iso文件中的所有文件复制到/root/zhenglei/isotest/下#cd /mnt/cdrom/#tar -cf - . | ( cd /root/zhenglei/isotest/ ; tar –xvpf - )挂载完成后,进入/root/zhenglei/isotest/下,ls –al查看一下:[root@cluster2 isotest]# ls -altotal 152dr-xr-xr-x. 9 root root 4096 Sep 23 08:50 .drwxr-xr-x. 5 root root 4096 Sep 24 09:58 ..dr-xr-xr-x. 2 root root 4096 Sep 22 11:30 [BOOT]-r--r--r--. 1 root root 14 Sep 22 11:29 CentOS_BuildTag-r--r--r--. 1 root root 33 Sep 22 11:29 .discinfodr-xr-xr-x. 3 root root 4096 Sep 22 11:29 EFI-r--r--r--. 1 root root 212 Sep 22 11:29 EULA-r--r--r--. 1 root root 18009 Sep 22 11:29 GPL-r--r--r--. 1 root root 9591 Sep 23 08:48 icfs_ks_auto_partition.cfgdr-xr-xr-x. 3 root root 4096 Sep 22 11:29 imagesdr-xr-xr-x. 2 root root 4096 Sep 22 15:19 isolinuxdr-xr-xr-x. 2 root root 49152 Sep 23 08:47 Packages-r--r--r--. 1 root root 1354 Sep 22 11:30 RELEASE-NOTES-en-US.htmldr-xr-xr-x. 3 root root 4096 Sep 23 08:50 repodata-r--r--r--. 1 root root 1706 Sep 22 11:30 RPM-GPG-KEY-CentOS-6-r--r--r--. 1 root root 1730 Sep 22 11:30 RPM-GPG-KEY-CentOS-Debug-6-r--r--r--. 1 root root 1730 Sep 22 11:30 RPM-GPG-KEY-CentOS-Security-6-r--r--r--. 1 root root 1734 Sep 22 11:30 RPM-GPG-KEY-CentOS-Testing-6dr-xr-xr-x. 6 root root 4096 Sep 22 11:29 .svn-r--r--r--. 1 root root 4052 Sep 23 08:50 TRANS.TBL-r--r--r--. 1 root root 276 Sep 22 11:29 .treeinfo用命令rm删除不必要的文件,删除Packages文件夹下所有内容,保留Packages目录,再ls –al查看一下:[root@cluster2 isotest]# ls -altotal 40dr-xr-xr-x. 7 root root 4096 Sep 24 10:23 .drwxr-xr-x. 5 root root 4096 Sep 24 09:58 ..-r--r--r--. 1 root root 33 Sep 22 11:29 .discinfodr-xr-xr-x. 3 root root 4096 Sep 22 11:29 imagesdr-xr-xr-x. 2 root root 4096 Sep 22 15:19 isolinuxdrwxr-xr-x. 2 root root 4096 Sep 24 10:23 Packagesdr-xr-xr-x. 3 root root 4096 Sep 23 08:50 repodata-r--r--r--. 1 root root 4052 Sep 23 08:50 TRANS.TBL-r--r--r--. 1 root root 276 Sep 22 11:29 .treeinfo文件看起来就舒服多了。
用U盘安装linux操作系统
制作U盘启动来安装Linux系统一、安装前所需的工具和软件U盘(16G)刻录软件UltraISOLinux系统镜像文件CentOS-6.4-i386-bin-DVD1.iso二、将U盘做成启动盘1、用UltraISO软件打开CentOS-6.4-i386-bin-DVD1.iso镜像2、在启动选项中选择写入硬盘映像,便捷启动--->写入新的硬盘主引导记录(MBR)--->USB-SDD+3、选择USB-HDD+后,弹出一个提示,选择”是”4、点击写入,然后出现提示后选择”是”,然后等待几分钟5、信息框出现刻录成功,代表启动盘已经制作成功6、将CentOS-6.4-i386-bin-DVD1.iso镜像拷贝到U盘下三、戴尔PowerEdge R420安装centOS(注:因为只有一块1G的硬盘,故不需要做RAID)1、插上U盘,启动服务器,按F11进入BIOS选择界面,选择U盘启动2、进入系统的安装界面,选择第一项3、选择语言(亲测选择简体中文不会出现乱码)和启动位置(这里选择Hard drive )选择优盘的盘符。
我这里是/dev/sda4,接着会读取优盘上的数据。
4、按照引导提示选择下一步,选择主机名,根据提示填写管理员密码5、选择安装类型以及分区6、分区时注意,一定要把优盘的勾去掉,我的分区如下图所示然后确认格式化7、我的分区如下图所示然后确认格式化8、引导程序的选择一定要选择硬盘为第一引导,不然默认是优盘启动(装完系统必须要插着优盘才能启动)。
点开更改设备,在下拉“BIOS驱动顺序”里的第一BIOS驱动器处选择硬盘为第一启动9、选择所需安装的系统类型10、进入软件安装进度界面,安装完毕,选择重启11、拔掉U盘,至此linux操作系统安装完成。
制作一个linux的u盘最小系统
制作一个linux的u盘最小系统最近在学习linux了,为了了解linux系统的机制,花了一个月时间研究,走了很多弯路,看了很多老资料终于做成功了,现在看起来真简单的一个东西竟然花了那么长时间去做真是浪费啊!主机环境:ubuntu 11.04 (我用XP下的的虚拟机)u盘: 金士顿 2G下载内容:最新内核linux-3.3最新制作内核文件工具: busybox-1.9.2过程如下:1.u盘分区1)将优盘分成3个区,两个主分区,一个扩展分区。
用到的终端命令是fdiskfdisk /dev/sdb 进入u盘操作-p查看分区-d删除分区-n创建分区-a激活分区-w保存分区表并退出-q退出不保存分区表这些都是我用到的命令。
至于分区的大小,就随意了,你看着那个block自己划分吧,错了也没关系,回到上面继续改就是了。
2)格式化分区先卸载u盘上的所有分区才能格式化的。
mkfs.ext2 /dev/sdb1 格式化你的主分区mkfs.vfat /dev/sdb3 格式化你的扩展分区你可也用df -lh查看你的mount关系。
2.grub/grub2安装先要把安装的分区挂载在一个地方才能安装成功的,这是我试了好多次,失败了好多次才知道的。
mount /dev/sdb1 /tmpgrub-install --root-directory=/tmp/boot /dev/sdb将grub安装到/dev/sdb u盘的mbr上这个时候你会发现在你的/dev/sdb1分区下出现一个boot目录,里面有grub目录和很多文件。
3)在系统根目录下/boot/grub/下将grub.cfg拷贝到你的U盘分区/boot/grub下面吧,进去修改grub.cfg就可以启动u盘了。
只修改两个地方就行了,一个是UUID,一个是root。
至于uuid你把u盘插拔一下,用df查看你的分区挂载在哪个上面的uuid,复制下来修改。
至于root,你用u盘启动,进入grub命令行,用ls命令查看一下,哪个盘符下面有个boot目录,哪个盘符就是你的分区,记住它,出去改一下root里面的名字就行了。
嵌入式linux系统开发标准教程
嵌入式linux系统开发标准教程嵌入式Linux系统开发是一门非常重要的技术,它在嵌入式设备、物联网和智能家居等领域中得到广泛应用。
本文将介绍嵌入式Linux系统开发的标准教程,帮助读者了解该技术的基本原理和常用的开发工具。
一、嵌入式Linux系统开发的基本原理嵌入式Linux系统开发是指将Linux操作系统移植到嵌入式设备中,并针对特定的应用领域进行定制开发。
它与传统的桌面Linux系统有很大的区别,主要体现在以下几个方面:1. 硬件平台的选择:嵌入式设备通常采用ARM架构或者其他低功耗的处理器架构,而不是传统的x86架构。
因此,在进行嵌入式Linux系统开发时,需要根据具体的处理器架构进行相应的移植和优化。
2. 精简的内核:由于嵌入式设备的资源有限,为了提高系统性能和节省资源,嵌入式Linux系统通常会精简内核。
这需要对Linux内核的源代码进行裁剪和优化,以去除不必要的模块和功能,并保留对应用需求的必要功能。
3. 定制化的驱动程序和应用程序:嵌入式设备通常需要与各种外设进行交互,因此需要编写相应的驱动程序。
此外,根据具体的应用需求,还需要定制相关的应用程序和用户界面。
二、嵌入式Linux系统开发的工具嵌入式Linux系统开发需要使用一些常用的工具,下面是一些常用的工具和其功能的介绍:1. 交叉编译工具链:由于嵌入式设备和开发主机的处理器架构不同,无法直接在开发主机上编译和运行目标代码。
因此,需要使用交叉编译工具链,在开发主机上生成适用于目标设备的可执行文件。
2. 调试工具:在嵌入式Linux系统开发过程中,调试是非常重要的一环。
常用的调试工具包括GDB(GNU调试器)和strace(系统调用跟踪工具),它们可以帮助开发人员追踪程序的执行过程和定位错误。
3. 文件系统工具:嵌入式设备的存储资源有限,需要使用文件系统来组织和管理存储的数据。
常用的文件系统工具包括mkfs(创建文件系统)、mount(挂载文件系统)以及文件传输工具(如scp和rsync)等。
linux安装原理
linux安装原理Linux的安装原理主要是基于以下几个步骤:1. 磁盘分区:在安装Linux之前,需要将硬盘分成多个分区,以便将操作系统及其相关文件存放在不同的分区中。
常见的分区类型包括根分区、/boot分区、/home分区等。
2. 引导加载程序:Linux使用GRUB(GRand Unified Bootloader)作为引导加载程序,它的作用是在计算机启动时加载操作系统。
安装Linux时,会将GRUB安装到硬盘的MBR(Master Boot Record)或EFI系统分区的引导扇区中。
3. 安装文件系统:Linux支持多种文件系统,包括常见的ext4、XFS等。
在安装Linux时,需要选择适合的文件系统,并用mkfs命令创建文件系统。
4. 安装操作系统文件:Linux的安装文件通常以ISO镜像的形式提供,可以使用光盘、U盘或网络进行安装。
安装程序会将操作系统文件复制到事先分好的文件系统中。
5. 配置网络、用户和权限:安装Linux后,需要配置网络连接,包括IP地址、子网掩码、网关等。
同时,也要创建用户账户,并设置文件和目录的权限,以保护系统的安全性。
6. 安装软件包管理器:Linux提供了各种软件包管理器,如Debian系列的APT、Red Hat系列的Yum等。
安装完成后,可以通过软件包管理器安装、更新和卸载软件包。
7. 安装驱动程序:对于一些硬件设备,需要安装相应的驱动程序才能正常使用。
Linux提供了开源的驱动程序,也支持部分厂商提供的闭源驱动程序。
通过以上步骤,Linux操作系统就可以被成功安装到计算机上,用户可以根据自己的需求进一步配置和使用该系统。
vmlinux生成流程
vmlinux生成流程vmlinux是Linux内核的可执行文件,它是内核源代码经过编译、链接等一系列处理后生成的。
下面我们将详细介绍vmlinux生成的流程。
1. 内核源代码编译vmlinux的生成过程首先需要对Linux内核的源代码进行编译。
编译器将源代码翻译成机器可以执行的目标代码,生成一系列的中间文件。
在编译过程中,需要注意选择合适的编译选项,以及处理一些与平台相关的代码。
2. 汇编代码生成在编译过程中,还会生成一些汇编代码。
汇编代码是与机器硬件直接相关的代码,它负责处理底层的硬件操作。
汇编代码一般保存在以".S"为后缀的文件中。
3. 链接过程编译完源代码和汇编代码后,需要进行链接操作。
链接器将各个模块的目标代码组合在一起,解析符号引用,生成最终的可执行文件。
在链接过程中,还需要处理一些与库相关的操作,如动态链接库和静态链接库的链接。
4. 符号表生成在链接过程中,还会生成符号表。
符号表是一个记录了各个符号(函数、变量等)地址和大小的表格,它有助于调试和动态加载等操作。
符号表一般保存在可执行文件的调试信息中。
5. 优化处理在生成vmlinux的过程中,还需要进行一些优化处理。
优化处理旨在提高代码的执行效率,减少资源占用。
优化处理涉及到很多技术,如代码折叠、循环展开、指令调度等。
6. 生成vmlinux经过以上的编译、汇编、链接和优化处理,最终可以生成vmlinux文件。
vmlinux是一个可执行的二进制文件,它包含了Linux内核的所有代码和数据。
vmlinux可以被直接加载到内存中执行,成为一个运行的操作系统。
总结:vmlinux的生成过程经历了源代码编译、汇编代码生成、链接过程、符号表生成、优化处理等多个阶段。
通过这些处理,我们可以得到一个完整的可执行的Linux内核文件。
vmlinux的生成过程是复杂而严谨的,需要编译器、链接器等工具的支持,同时也需要开发人员对内核源代码和底层硬件有深入的理解。
initramfs 生成过程
initramfs 生成过程initramfs 是一个用于引导 Linux 系统的初始内存文件系统。
它包含了用于引导过程中所需的关键文件和工具,例如驱动程序、文件系统工具等。
initramfs 的生成过程可以分为几个关键步骤。
首先,生成 initramfs 的过程通常是由操作系统安装程序或者更新程序自动完成的。
在安装或更新 Linux 内核时,系统会自动构建 initramfs。
但是,如果需要手动生成 initramfs,可以通过以下步骤完成:1. 收集必要的文件和工具,生成 initramfs 首先需要收集引导过程中所需的文件和工具,包括设备驱动程序、文件系统工具、初始化脚本等。
这些文件通常位于系统的 /lib 目录下。
2. 创建临时目录,在生成 initramfs 的过程中,需要创建一个临时目录来存放生成的文件系统内容。
3. 打包文件系统,将收集到的文件和工具打包成一个 cpio 归档文件。
这个归档文件将会成为 initramfs 的内容。
4. 压缩归档文件,对生成的 cpio 归档文件进行压缩,通常使用 gzip 或者 xz 等压缩工具进行压缩,以减小 initramfs 的体积。
5. 将压缩后的归档文件重命名为 initramfs 文件,生成的压缩归档文件需要被重命名为 initramfs 文件,并放置在系统的/boot 目录下。
需要注意的是,生成 initramfs 的具体步骤可能会因不同的Linux 发行版而有所差异,例如使用不同的打包工具或压缩工具。
因此,在手动生成 initramfs 时,最好参考所使用 Linux 发行版的官方文档或者社区指南,以确保按照正确的步骤进行操作。
总的来说,生成 initramfs 的过程涉及到文件收集、打包、压缩和命名等步骤,最终生成的 initramfs 文件将会包含引导 Linux 系统所需的关键文件和工具,以确保系统能够成功引导到正常运行状态。
vmlinux生成流程
vmlinux生成流程vmlinux是Linux内核的可执行文件,它包含了全部的内核代码和数据。
在编译过程中,一系列的工具和步骤是必需的来生成vmlinux。
下面我将详细介绍vmlinux生成的流程。
1.运行配置脚本:首先,在编译内核之前,我们需要为当前的目标平台运行配置脚本。
这个脚本根据目标平台的特性和需求来设置编译器选项、模块、硬件支持等。
2.构建Makefile:配置脚本完成后,我们需要用一个叫做Makefile的文件来描述整个编译过程。
Makefile中包含了编译内核所需的指令和依赖关系。
3.编译内核源代码:接下来,使用Makefile来编译内核源代码。
在编译过程中,所有的C代码将被编译成汇编代码,然后再将汇编代码转换为目标平台的机器代码。
在这个过程中,编译器会进行代码优化,并生成中间文件。
4.链接内核目标文件:一旦所有的内核源代码都被编译完毕,下一步是将这些目标文件链接成一个可执行文件。
这个过程将会把所有的模块和函数库以及其他必要的文件进行连接。
5.生成vmlinux:链接过程完成后,将会生成vmlinux文件。
vmlinux是一个非常庞大的文件,它包含了整个内核的代码和数据。
需要注意的是,生成的vmlinux并不是一个可以直接在硬件上运行的文件。
它是一个供调试和运行时跟踪的文件,因为vmlinux中包含了很多符号和调试相关的信息。
要将vmlinux文件转换为可以在硬件上运行的内核镜像,还需要进行一些额外的步骤。
6.生成内核镜像:将vmlinux文件转换为可以在硬件上运行的内核镜像的过程称为镜像化。
这个过程包括压缩、转换格式、添加头部等操作,其目的是将vmlinux文件转化为可以被引导加载器和硬件识别的文件格式。
最常见的格式是bzImage和uImage。
7.安装内核:将生成的内核镜像安装到目标系统中。
这通常包括将内核镜像复制到引导分区或存储设备的指定位置,并修改引导加载器的配置文件以引导新内核。
Linux操作系统的编译和安装
Linux操作系统的编译和安装在正文规定的字数限制下,为了准确满足标题描述的内容需求,并确保内容排版整洁美观、语句通顺、全文表达流畅且无影响阅读体验的问题,本文将按照以下格式进行写作:一、简介Linux操作系统是一种开源的、自由的Unix-like操作系统,它广泛应用于各种领域,包括服务器、嵌入式设备等。
本文将重点介绍Linux 操作系统的编译和安装过程。
二、编译准备1. 下载源代码在编译Linux操作系统之前,首先需要从官方网站下载Linux内核的源代码包。
2. 安装必要的依赖软件在编译过程中,需要安装一些必要的软件和工具,如编译器、构建工具等。
三、编译步骤1. 解压源代码包使用解压命令将下载的源代码包解压到指定目录。
2. 配置编译选项进入源代码目录,并运行配置命令,根据需要选择不同的编译选项。
3. 执行编译命令运行编译命令开始编译操作系统内核,这个过程可能需要一段时间。
四、安装步骤1. 安装编译生成的内核镜像文件将编译生成的内核镜像文件复制到合适的位置,并修改相关配置文件以引导新编译的内核。
2. 安装相关系统文件运行安装命令,将其他必要的系统文件复制到适当的位置。
五、系统配置1. 修改引导加载程序根据系统的引导加载程序,如GRUB、LILO等,修改引导配置文件以支持新安装的内核。
2. 配置网络和驱动程序根据具体需求,配置网络设置和硬件驱动程序。
六、测试与验证1. 重新启动系统重新启动计算机,并选择新编译的内核进行引导。
2. 验证系统版本和功能运行相应的命令,验证新安装的Linux操作系统版本和功能是否正确。
七、常见问题解决1. 编译错误分析编译过程中出现的错误信息,根据错误提示进行逐步修复。
2. 硬件兼容性问题部分硬件设备可能需要额外的驱动程序或补丁文件才能正常运行,根据具体情况进行相应的处理。
八、总结通过本文的介绍,读者可以了解到Linux操作系统的编译和安装过程,同时了解到在实际操作中会遇到的一些常见问题及解决方法。
linux操作系统的配置流程和步骤
Linux操作系统的配置流程和步骤如下:1. 打开终端,输入命令cd /opt,使用tar命令解压文件(tar -zxvf VMwareTools-10.0.0-2977863.tar.gz)。
2. 进入解压的目录(cd vmware-tools-distrib),安装vmware-install.pl文件(./vmware-install.pl)。
执行命令之后,一系列设置全部回车即可(安装需要一定的时间)。
3. 创建共享文件目录,比如在虚拟机中创建一个名为myshare 的文件夹。
右键虚拟机,点击设置:选择选项:点击添加:点击下一步,选择目标文件目录。
点击下一步:点击完成。
4. 在windows系统中的myshare目录下面创建文件hello.txt,并在文件里面输入hello。
5. 设置CPU和内存,CPU设置不能超过真机的一半,内存设置不要超过真机内存的一半1G-2G即可。
6. 设置网络类型,选择桥接。
7. 设置IO控制器和磁盘类型,选择默认推荐。
8. 创建虚拟机磁盘,设置磁盘大小,默认20G够用。
9. 点击CD/DVD,以ISO映像文件安装,点击浏览,选择系统镜像文件,点击确定。
10. 开启此虚拟机。
11. 点击第一行install,进行系统安装。
12. 选择语言,中文,完成后继续。
13. 软件选择带GUI的服务器。
14. KDUMP不启用。
15. 进入安装目标位置,下拉,选择我要配置分区,点击完成。
16. 进入磁盘分区界面,点击+号开始分区。
以上是Linux操作系统的配置流程和步骤,希望对解决您的问题有所帮助。
Linux操作系统-实验1-环境搭建-指导书-PPT版本-V1
Linux操作系统第一章:Linux简介与系统安装实验一:实验环境搭建一台宿主机(Windows系统)加两台虚拟机(Desktop+Server)要求:(1)掌握VMware虚拟机的安装(2)利用VMware虚拟机安装Ubuntu Linux18.04桌面版操作系统(3)利用VMware虚拟机安装Ubuntu Linux18.04服务器版操作系统(4)从宿主机登录桌面环境和服务器环境(SSH登录)(5)练习涉及到的基本命令,如apt-get、ifconfig、ssh等(6)练习vim编辑文件基本操作等Tips:(1)绘制网络拓扑图(2)把遇到的问题和如何解决记录下来。
实验环境设置☐宿主机(Windows)•网络配置VMware Network Adapter(VMnet8)☐客户机•Ubuntu-Server(ubuntu-18.04.6-live-server-amd64)•Ubuntu-Desktop(ubuntu-18.04.6-desktop-amd64)虚拟机安装安装时网络类型选择NAT方式安装完成后的两台Ubuntu虚拟机宿主机:Windows记录宿主机IP地址客户机1:Ubuntu-Server命令行模式记录IP:192.168.126.130客户机2:Ubuntu-Desktop图形化操作方法记录IP:192.168.126.131NAT模式宿主机:Windows192.168.126.1192.168.126.130192.168.126.131客户机1:Ubuntu-Server客户机2:Ubuntu-DesktopSSH服务1.安装SSH服务2.启动SSH服务3.配置SSH服务(可选)4.验证SSH服务Desktop版客户机安装SSH服务Desktop版客户机安装SSH服务:sudo apt-get install openssh-serverDesktop版客户机启动SSH服务: sudo systemctl start sshDesktop版客户机启动SSH服务: sudo systemctl start sshDesktop版客户机端修改SSH配置文件:端口22修改为1022 vi /etc/ssh/sshd_configSSH验证-从宿主机连接Desktop客户机2: ********************.126.131SSH验证-从宿主机连接Server版客户机1: ***********************.126.130Desktop版客户机查看SSH状态:记录监听端口和连接情况Server版客户端1查看SSH状态Desktop版客户机安装 net-tools:sudo apt-get install net-toolsDesktop版客户机查看IP地址: ifconfigDesktop版客户机查看网络连接情况:Netstat -aServer版客户机查看网络连接情况:Netstat -a。
linux系统安装实验技术原理
linux系统安装实验技术原理
Linux系统安装实验技术的原理是通过在计算机硬件上创建一个新的独立的分区,将Linux操作系统的文件系统安装在该分区上,使得计算机在启动时可以选择进入Linux操作系统或其他操作系统。
具体来说,Linux的安装过程涉及到以下几个技术原理:
1. 分区技术:分区是指将硬盘划分为多个逻辑区域,每个分区可以独立地存储不同的数据。
在Linux安装过程中,需要为Linux系统分配一个独立的分区,以便在其中安装系统文件系统。
2. 引导技术:为了让计算机在启动时能够选择进入Linux系统或其他操作系统,需要通过引导技术配置系统引导程序。
在Linux系统安装过程中,需要将Linux系统的引导程序安装在硬盘的MBR(Master Boot Record)或ESP(EFI System Partition)分区上。
3. 文件系统技术:文件系统是指用于管理和组织数据的一种方法,它定义了存储和读取数据的规则和方式。
在Linux系统安装过程中,需要选择一个合适的文件系统,以便在其中存储和管理Linux系统的文件和数据。
以上就是Linux系统安装实验技术的主要原理。
需要注意的是,Linux系统的安装过程可能因不同的Linux发行版或版本而有所区别,在安装时应仔细阅读相关的文档和指导,以确保操作正确无误。
1Linux教程实验指导书
Linux程序设计实验指导书目录实验一:linux安装 (3)实验二:常用命令的使用 (10)试验三vi编辑器 (11)实验四 shell编程 (11)实验五常用开发工具 (12)实验六 makefile的编写与使用 (14)实验七 Linux环境编程 (14)实验八 (15)实验一:linux安装一、实验目的1.学会在操作系统安装之前,根据硬件配置情况,指定安装计划2.掌握多操作系统安装前,利用硬盘分区工具(如PQMagic)为Linux准备分区3.掌握Linux操作系统的安装步骤4.掌握Linux系统的简单配置方法5.掌握Linux系统的启动、关闭步骤6.掌握在虚拟机上的Linux安装步骤和使用方法二、实验内容1.安装并使用硬盘分区工具,为Linux准备好分区2.安装Linux系统(如红旗Linux桌面版)3.配置Linux系统运行环境4.正确的启动、关闭系统注意:为了避免新手在第一次安装Linux时,破坏掉磁盘上的有用数据,推荐第一次在winxp系统上的虚拟机上安装linux。
因此需要一下步骤:1.安装winxp下的虚拟机软件vmware,并创建一个虚拟机。
2.在虚拟机环境中安装linux系统。
3.配置Linux系统运行环境4.正确启动、关闭系统。
三、背景知识Linux安装有三种方式,分别是:通过光盘安装、硬盘安装和网络安装。
另外有三种形式,分别是:Linux独立操作系统、Linux与windows共存的双(多)操作系统、Windows下虚拟机安装Linux的双(多)操作系统。
在三种安装方式中,通过光盘安装最为简单,但是需要事先从网络上下载安装镜像文件,并将其刻录到光盘上;或者直接从外面买别人刻好的安装光盘。
由于Linux是开源的操作系统,因此不存在“盗版”的说法。
另一种是通过硬盘安装,需要事先将安装镜像文件下载到本地fat32格式的磁盘分区上,然后重新启动进入纯dos下,进行一些必要的设置就可以从硬盘自动安装了,其后的安装步骤跟光盘安装一样。
linux系统最小化安装之安装基础常用命令
linux系统最⼩化安装之安装基础常⽤命令------------恢复内容开始------------话题1:linux系统最⼩化安装常⽤命令Centos7,8系统最⼩化安装常⽤命令如下:yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools \lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \bc systemd-devel bash-completion traceroute -yUbuntu1804系统最⼩化安装常⽤命令如下:apt install iproute2 ntpdate tcpdump telnet traceroute \nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev \libpcre3 libpcre3-dev zlib1g-dev ntpdate traceroute gcc openssh-server \lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump \telnet traceroute iotop unzip zip -y写⼀个脚本:实现⾃动判断是系统是centos,还是ubuntu,并完成上述最⼩化安装常⽤命令的过程:1 [root@centos7 script]# cat min_install.sh2 #!/bin/bash3 #4 #********************************************************************5 #Author: zouyongbing6 #QQ: 2738388827 #Date: 2021-12-038 #FileName: min_install.sh9 #URL: https:///zouyongbing/10 #Description: The test script11 #Copyright (C): 2021 All rights reserved12 #********************************************************************13 . /etc/os-release14 min_install_yum(){15yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \16 pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools \17 lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \18 bc systemd-devel bash-completion traceroute -y19 }20 min_install_dnf(){21 dnf install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \22 pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools \23 lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \24 bc systemd-devel bash-completion traceroute -y25 }26 min_install_apt(){27 apt install iproute2 ntpdate tcpdump telnet traceroute \28 nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev \29 libpcre3 libpcre3-dev zlib1g-dev ntpdate traceroute gcc openssh-server \30 lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump \31 telnet traceroute iotop unzip zip -y32 }33 judge_os(){34if [ ${VERSION_ID} == "7" ];then35echo"你的操作系统是centos7,下⾯进⾏安装常⽤软件包:"36 min_install_yum37echo"所有常⽤软件包已经安装完毕!请验证是否成功执⾏"38elif [ ${VERSION_ID} == "8" ];then39echo"你的操作系统是centos8,下⾯进⾏安装常⽤软件包:"40 min_install_dnf41echo"所有常⽤软件包已经安装完毕!请验证是否成功执⾏"42elif [ ${VERSION_ID} == "18.04" ];then43echo"你的操作系统是ubuntu1804,下⾯进⾏安装常⽤软件包:"44 min_install_apt45echo"所有常⽤软件包已经安装完毕!请验证是否成功执⾏"46else47echo"不⽀持的操作系统,请⼿动安装"48fi49 }50 judge_os------------恢复内容结束------------。
构建自己的操作系统:从零开始编写内核
构建自己的操作系统:从零开始编写内核在计算机科学中,操作系统是管理计算机硬件和软件资源的系统软件。
它是位于计算机硬件与用户之间的中间层,为用户提供与硬件交互的接口,同时负责管理和分配计算机资源,保证系统的安全和稳定运行。
尽管市面上已经有各种成熟的操作系统可供使用,但如果你想探索计算机系统的底层原理,从零开始编写自己的操作系统是一项非常有趣的挑战。
在构建自己的操作系统时,最重要的一步是编写操作系统的内核。
内核是操作系统的核心组件,它控制着计算机的基本功能,如进程管理、内存管理和设备驱动等。
下面是一些步骤,帮助你从零开始编写一个简单的操作系统内核。
1.学习汇编语言:内核编写一般使用汇编语言,因为它可以直接与硬件进行交互。
x86汇编语言是一个常见的选择,因为它广泛用于PC平台。
首先,学习汇编语言的基本语法和指令集。
这将有助于你理解计算机的底层工作原理,并为编写内核提供基础知识。
2.编写引导扇区:计算机在启动时会加载引导扇区(boot sector),这一小段代码负责初始化计算机系统并加载操作系统的其余部分。
编写引导扇区需要了解硬件启动的基本原理,以及如何加载和执行汇编代码。
3.编写基本的内核:在启动引导扇区之后,需要编写一个基本的内核来管理系统。
首先,需要进行一些基本的初始化,如设置中断处理程序、设置中断向量表和初始化内核堆栈等。
然后,可以实现一些基本功能,如进程管理、内存管理和设备驱动。
4.实现系统调用:系统调用是操作系统提供给应用程序的接口,用于访问操作系统的功能和资源。
编写系统调用使得应用程序可以通过特定的指令与操作系统进行交互。
例如,可以实现一些基本的系统调用,如文件读写、进程创建和进程间通信等。
5.调试和测试:在编写内核的过程中,可能会遇到各种各样的错误和问题。
这时,需要进行调试和测试,找出并修复这些问题。
常用的调试和测试技术包括使用调试器、打印调试信息和编写测试代码。
需要注意的是,从零开始编写一个完整的操作系统是一项复杂而繁琐的工作,需要深入了解计算机体系结构、硬件和操作系统的原理。
LinuxMint系统的安装和体验,非常适合低配电脑使用
LinuxMint系统的安装和体验,⾮常适合低配电脑使⽤Linux Mint 是⼀款⾮常受欢迎的桌⾯系统,它有着和Win⾮常相似的界⾯,并且对硬件的要求不⾼,⾮常适合在旧电脑上安装使⽤。
本⽂着重介绍⼀下Linux Mint的安装过程和界⾯风格,以及内置的软件。
Linux Mint的安装制作启动U盘准备⼯作:需要⼀台能正常使⽤的电脑,和⼀个8G容量的U盘。
⾸先下载Linux Mint的系统镜像,⽹上有很多可以⾃⼰搜⼀下,我⽤的是64位的19.2版本。
下载好之后,打开软碟通,点击左上⾓⽂件→打开,然后选择刚下载的镜像并打开。
点击菜单栏启动,选择写⼊硬盘映像,在弹出的对话框中,你的U盘已经是默认操作的设备,如果有多个U盘可以⼿动选择。
在写⼊之前,⾸先要将U盘格式化为FAT32格式,然后点击便捷启动,选择写⼊新的驱动器引导扇区,点击Sys linux。
弹出提⽰对话框,这时候选择是,然后单击写⼊,完成之后会提⽰刻录成功。
⾄此启动盘制作完成。
安装Linux Mint操作系统为截图⽅便,接下来的操作在虚拟机上运⾏,但和真正电脑上的操作相同。
开机后进⼊按delete进⼊BIOS,设置U盘为第⼀启动顺序,⼤部分电脑有快捷启动菜单,可以参考开机时的提⽰。
重新启动后,将会⾃动加载进类似于PE系统的桌⾯。
桌⾯上的光盘图标,上⾯写着install linux mint,双击打开就可以进⼊系统安装。
⾸先是语⾔,下拉并选择中⽂。
紧接着询问是否安装第三⽅软件,这⾥将它勾选上了,省的下⼀步⾃⼰安装⿇烦事。
安装程序检测到电脑没有操作系统,并给出了四个选项,默认是直接安装,还有加密,最下⾯是个性化安装,根据需求选择即可。
区域选择默认即可。
然后是为填写⽤户名和密码,下⾯可以选择⾃动登录,但是必须要设置密码才能继续,也可以选择输⼊密码才能登陆。
安装前的准备⼯作已经完成,下⾯就是等待程序复制⽂件和安装功能,这⼀步也很快,我的是M.2固态硬盘,⼤概⼗分钟左右就装好了。
嵌入式linux小项目实例
嵌入式linux小项目实例嵌入式系统是一种特殊的计算机系统,它被嵌入到其他设备中,用于控制和管理设备的各种功能。
嵌入式Linux是一种常用的嵌入式系统操作系统,它具有开源、稳定、灵活等特点,被广泛应用于各种嵌入式设备中。
在本文中,我将介绍一个嵌入式Linux小项目的实例,以帮助读者更好地理解和应用嵌入式Linux。
这个项目是一个智能家居控制系统,它可以通过手机APP远程控制家中的各种设备,如灯光、空调、窗帘等。
该系统基于嵌入式Linux开发,使用了一块嵌入式开发板和一些外围设备。
首先,我们需要选择一块适合的嵌入式开发板。
在这个项目中,我们选择了一块基于ARM架构的开发板,它具有强大的计算能力和丰富的外设接口,非常适合用于嵌入式Linux开发。
接下来,我们需要安装和配置嵌入式Linux系统。
我们可以选择一个已经编译好的嵌入式Linux发行版,如Buildroot或Yocto Project,也可以自己从源代码编译一个定制的嵌入式Linux系统。
在这个项目中,我们选择了Buildroot,因为它简单易用,适合初学者。
安装和配置嵌入式Linux系统需要一些基本的Linux知识,如交叉编译、内核配置、文件系统配置等。
在这个项目中,我们需要配置网络、蓝牙和GPIO等功能,以便实现远程控制。
完成系统的安装和配置后,我们需要编写应用程序来实现智能家居控制功能。
在这个项目中,我们使用了C语言和Shell脚本来编写应用程序。
C语言用于编写底层驱动程序和控制逻辑,Shell脚本用于实现一些简单的控制命令和脚本。
在应用程序中,我们使用了一些开源库和工具,如libcurl、BlueZ和GPIO库等。
这些库和工具可以帮助我们更方便地实现网络通信、蓝牙控制和GPIO控制等功能。
最后,我们需要将应用程序和相关的配置文件打包成一个固件,然后烧录到嵌入式开发板中。
烧录固件可以使用一些专门的工具,如dd命令或烧录工具。
完成烧录后,我们可以通过手机APP来远程控制智能家居系统。
自己动手制作简单的linux
Linux操作系统已成为当今服务器操作系统的主力了,也有越来越多的同志们对linux 感性趣了,当然我也不例外,linux的功能很多很强大,但是对于不同的需求可能不需要那么完整的功能,同时linux很灵活,可以选择性的去定制适合需求的linux操作系统,那么今天我们就来自己定制一个小的linux操作系统来练练手。
自己DIY linux操作系统之前,你需要对linux操作系统有所理解并能熟练的使用,网上有很多关于linux的书籍及视频,可以去学习。
一、准备工作:a.理论基础b.软硬件平台1.理论基础a.linux 的启动流程,这是必须要了解的,因为我们是按照启动流程来模拟定制操作系统的,启动流程分几步:1.加在BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备2.读取并执行第一个启动设备内的MBR的boot Loader(grub,spfdisk等程序,很重要)3.依据boot loader的设置加载Kernel,Kernel会开始检测硬件和加载驱动(内核是可以自己定制的,后面会讲到)4.在硬件驱动加载成功后,Kernel会主动去调用init进程,而init会获取run-level信息5.init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(我们可以选择性的将想要的功能实现添加进这个脚本里)6.init执行run-level的各个服务的启动(脚本形式)7.init执行/etc/rc.d/rc.loacl文件(里面包含了一下用户自定义的开机启动项,类似windows)8.init执行终端机模拟程序mingetty来启动login进程,最后就等待用户启动启动流程就是这样,但是我们自己定制的操作系统可能没有这么强大所以并不是每个流程都会经过,可以后期随着自己的能力的增强去自己修改b.要懂得如何去看脚本和编写脚本,这是必须的,不然后续的任务无法完成2.软硬件平台a.软件平台:你需要有一个完整的linux镜像,我们要模仿着做官方的操作系统做,我用的是rhel-server-5.4-i386-dvd.iso,网上可以下载的到,当然因为我的硬件有限,我使用的是虚拟机(vm)来完成各项操作b.因为有了虚拟机,所以不用太考虑硬件的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最小的Linux操作系统制作过程详解一,什么是BabyLinuxBabyLinux不是一个完整的发行版,他是利用原有的一套完整的linux系统的内核原代码和编译工具,利用busybox内建的强大功能,在一张软盘上做的一个很小的linux系统。
他具备一个linux系统的基本特征,支持linux系统最常用的一百多个命令,支持多种文件系统,支持网络等等,你可以把他当做一张linux 起动盘和修复盘来用,你也可以把他当做一个静态路由的路由器软件,当然,你也可以把他当做一个linux玩具,向你的朋友炫耀linux可以做的多么小。
我把他叫做BabyLinux因为他很小巧,小的很可爱,像一个刚刚出生的小baby。
二.为什么要作这样一个linux先说说我一开始的想法,当我一开始接触linux的时候,看到书上说,linux 通常安装只需要60M左右的空间,但是我发现装在我硬盘上的Redhat 6.0确要占据好几百M的空间。
为什么我的linux这么大呢? 后来我发现,装在我机器上的那么多东西只有不到30%是我平时常用的,还有30%是我极少用到的,另外的40%基本上是不用的。
于是,我和大多数初学者一样,开始抱怨,为什么linux 不能做的精简一点呢?于是,我萌发了自己裁减系统的想法。
可惜那个时候我还没有听说过有LFS和Debain。
等到我积累了足够的linux知识后,我开始制作这样一个小系统。
制作这样一个小系统最大的意义在于,你可以通过制作系统了解linux的启动过程,学会ramdisk的使用,让你在短时间内学到更多的linux知识。
当然,你会得到很大的乐趣。
这个项目只是做一个具有基本特征的linux系统,如果你想自己做一个具有完整功能的linux,请阅读Linux From Scratch (LFS)文档。
三,什么人适合读这篇文档如果你是一个linux爱好者,并且很想了解linux的启动过程和系统的基本结构,而且是一个喜欢动手研究小玩意的人,那么这个文档可以满足你的需求。
如果你仅仅是用linux来做一些普通的日常工作,而不在乎你的linux到底怎么工作,那么这份文档也许不太适合你。
另外,如果你是linux爱好者,但是目前还是一个刚刚入门的newbi,我建议你先把linux命令学好。
不过我想我会尽可能的把这份文档写详细一些,如果你有足够的毅力,或许一个newbi也能成功做一个babylinux。
或者,你遇到一件很不巧的事情,比如你的老婆来例假了,你的这个周末就泡汤了,那么阅读这篇文档并做一个linux小玩具可以打发你的时间。
四,应该具备的知识在做一个babylinux之前,你应当已经会应用linux最常用的命令。
并且至少有一次成功编译并安装系统内核的经历,会通过编译源代码来安装软件。
如果你具备了这些条件,那么做这样一个小系统会很顺利,如果你还没有掌握这些知识,你可能会遇到一些困难。
但是只要有毅力,也可以成功。
你不需要具备编程的知识,因为我的目标是:让具有中等以上linux水平的爱好者可以通过阅读文档轻松完成这个项目。
关于一张软盘上的linux还有一个很著名的linux叫LOAP(Linux On AFloppy) 但是他是由比较专业的人员需要编写很多程序完成的。
而且没有关于他制作过程的文档。
五,linux系统引导过程简介首先,主板的BIOS会读取硬盘的主引导记录(MBR),MBR中存放的是一段很小的程序,他的功能是从硬盘读取操作系统核心文件并运行,因为这个小程序太小了,因此通常这个小程序不具备直接引导系统内核的能力,他先去引导另一个稍微大一点的小程序,再由这个大一点的小程序去引导系统内核。
在linux 系统中这样的小程序有LILO和GRUB。
在这个项目中,我决定用LILO来做系统引导程序。
在软盘上启动linux系统的过程和在硬盘上启动的过程相似。
Linux系统内核被引导程序装入内核并运行后,linux内核会检测系统中的各种硬件。
并做好各种硬件的初始化工作,使他们在系统正式运行后能正常工作。
之后内核做的最后一个工作是运行/sbin 下的init程序,init是英文单词initialization(初始化)的简称,init程序的工作是读取/etc/inittab文件中描述的指令,对系统的各种软硬件环境做最初化设定。
最后运行mingetty等待用户输入用户名登录系统。
所有的工作就这么简单,虽然linux启动的时候有很多内容,看上去十分高深,但是都不过是对这个过程的扩充。
明白了这个道理,你可以写一些脚本程序让他在系统启动的特定时间运行完成任务。
事实上系统内核并不关心/sbin 下的init是不是真的init,只要是放在/sbin下名叫init的可执行程序他都可以执行。
可以做以下实验:编写一个非常简单的C程序:main(){printf(“hello,world!\n”);}保存后以init。
c保存他,并用gcc编译。
#gcc –-static -o init init。
c这里的--static 参数告诉gcc把这个程序静态联接,这样这个程序不倚赖任何库就能运行。
把编译好的init程序拷贝到/sbin下,备份好原来的那个。
重新启动系统最后系统的输出结果是: hello,world!然后停在那里。
做这个实验以前先确定你知道如何把系统恢复到原来的状态,有一个简单的方法,在内核启动前给他加上init=参数,比如你原先的init 被你改成了init。
bak 只要在启动的时候给内核加上init=/sbin/init。
bak就可以用原来的init程序启动系统。
做完以上实验,就明白了内核和init程序之间的关系。
此外,init程序不一定是一个二进制可执行程序,他可以是一个bash脚本,一个指向另一个程序的联接,他的位置也并不一定要在/sbin下,只要在启动内核时,给内核加上init 参数就能被运行,比如,开始时给内核加上init= /bin/bash参数,内核在最后一步就直接运行bash给出提示符,不用登录系统就可以输入命令了。
其功能类似单用户模式启动系统。
/sbin/init 程序只是内核默认运行的第一个程序。
六,编译一个linux系统内核1,编译前的规划和准备在编译内核前,请先确定你的需求,把你的需求罗列成一张详细的表格。
你需要让内核支持什么硬件,支持多少种分区类型和文件系统,支持哪些网卡,支持哪些网络协议。
等等。
请尽可能详细的罗列这些内容,但是你也不要太贪心,因为你所有能利用的空间只有1440K,如果你编译出一个大于1440K或很接近这个数字的内核,你的这个项目就不能完成了,你已经没有空间再放ramdisk映象文件,除非你原意再多出一张软盘,做一个两张软盘的小linux系统。
对于声卡驱动之类,我劝你还是放弃吧,因为一个声卡驱动也许只让你的内核增大了十多K,但是你有了一个声卡驱动就务必要有一个播放器吧,否则声卡驱动就没有意义,可一个播放器的大小可不是一张软盘可以装得下的。
在我先前制作的babylinux内核有900多K,其中,文件系统部分站了大部分,因为我的目标是把他做成一个系统修复盘。
因此我在内核中编译7种文件系统的支持,每减少一个文件系统就可以减小几十甚至200多K的内核大小。
越是复杂,越是安全的文件系统,其支持模块也越大,比如在linux下FAT模块只有32K,VFAT只有17K,但是ext3的模块就有86K,JFS达到216K,reiserfs模块是224K,可以想像,编译一个支持7个文件系统的900多K的内核,文件系统部分就占了600K 以上的空间,所以如果某一个文件系统是你根本不用的,那么还是不要编译进内核把,这样至少可以省下100多K的空间。
对于其他的驱动,比如网卡,通常大小只有8,9K,最大的也不过10多K,因此可以把常用的网卡芯片的驱动都编译进去。
另外如果你想让你的babylinux支持U盘,那么scsi的驱动模块也是不可小看的,他通常要接近150K,因为U盘是被当做scsi设备来驱动的。
另外你还需要让你的内核支持即插即用,这些都是不小的空间开销,我的建议是你放弃一两个你不用的文件系统。
总之,你最后编译出来的内核大小最好不要超过900K,否则你在busybox里只能编译进去很少的命令。
在我编译的busybox中,我编译进去120多个命令,基本上把busybox支持的命令都包括进去了。
加上小系统所必需的文件系统目录,/dev下的设备文件,以及/etc下几个必需的配置文件,做成ramdisk压缩后的大小是440多K,加上900K左右的内核刚好可以放入一张1440K软盘,请注意,你应该留下至少50K 的空间,因为我们要在软盘上创建一个ext2文件系统,而文件系统本生需要占据大概25K的磁盘空间。
另外lilo的引导文件boot。
b的大小是5。
7K,还有装上lilo后自动产生的map文件也要10多K的空间,map文件的具体大小由内核安装的实际大小决定,通常不会超过30K。
综上所述,请遵循下面的公式:内核大小+文件系统压缩印象文件+50K <= 1440K另外一点需要说明的是:以上所罗列的文件系统模块大小是察看我现在使用的Redhat 9 的/lib/modules下的模块文件得到的,实际编译进内核大小会小一点,因为我们用make bzImage在内核源代码目录树下生成的内核是经过压缩过的。
如果你对以上说的内容不太明白也没有关系,我会在下面的内容中做详细的说明。
2,必需编译进内核的内容首先,我们制作的这个小系统是基于一张软盘的,因此,你的内核必需支持软盘。
另外对IDE硬盘和cdrom的支持也是不可少的,否则做出来的babylinux 就没有实用价值,因为他不能访问硬盘和光盘上的内容这样的linux虽然可以做的更小,但是制造一个完全没有用的东西是浪费时间。
其他的包括framebuffer 等,如果你需要支持在字符界面下以高分辨率显示,以看到更多的屏幕内容,那么就必需把framebuffer支持编译进内核,此外在高分辨率下使用的8x8字体也必需编译进去。
否则即使你给内核传递了vga= 参数,内核会因为没有可用的小字体而自动转跳到低分辨率模式下,这是以前困扰我好几天想不明白的事情,后来通过反复试验才明白原来是缺少字体的文体。
这里我先大致提一下需要注意的事情。
在下一小节具体编译时,我会继续就某些细节问题说明。
3,关于内核的版本我是在Redhat 9 linux系统下打造的babylinux小系统。
使用的是Redhat 9 自带的2。
4。
20版的内核。
为什么我不用最新的2。
6的内核?一开始我也企图用最新的内核,但是通过试验我发现,在用最新的2。
6。
9内核的情况下,我编译一个all-no的(即所有内容都选N,不支持任何硬件,只有一个最基本的内核)最小化内核就要460K左右,如果我在这个基础上再加入几种文件系统和必要的驱动,那么内核的大小就不能装下一张1440K的软盘,而我用2。