自制简单的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.因为有了虚拟机,所以不用太考虑硬件的。

二、开始我们的DIY linux之旅至于上述不懂得可以去问问度娘,反正我是很喜欢度娘啦

1.需要新建两个虚拟机,其中一个不需要硬盘,以后作为测试用,另一个是一个完整的Linux 5.4 系统(我的是5.4的),不会安装虚拟机的去自己找找教程,安装完成之后要新添加一块硬盘(大概20个G),作为移植硬盘,移植到那个没有硬盘的虚拟机上做测试,在测试过程中可以使用vm的supend功能,可以省去很多的时间,同时还要注意在Server1上修改Server2硬盘的数据时记得要使用sync指令去同步到硬盘中

做完以上之后的截图下图:1-1,1-2(注Server1是配置机,Server2是验证主机就是开始那个没硬盘的主机)

1-1

时间: 2024-12-31 19:35:35

自制简单的Linux的相关文章

在VMware上制作一个简单的Linux

大体思路 boot root initrd.gz grub vmlinuz-2.6.18-308.el5 bin sbin lib etc proc sys dev boot   有以上内容我们就可以运行一个非常简单的Linux,只需要往里面添加各种配置文件,就可以启动我们所需要的各种服务.在制作之前,我们先做一些准备工作. 1.在VMware上添加一块新的IDE磁盘 2.将这块盘分区,/dev/hdb1 /dev/hdb2,之后格式化为ext3的文件系统 3.挂载/dev/hdb1到/mnt/

[20160902]简单探究linux的free命令.txt

[20160902]linux命令free的buffers与cached表示什么.txt --简单探究linux的free命令. $ free              total       used       free     shared    buffers     cached Mem:     132261196   29620656  102640540          0     174340   24209712 -/+ buffers/cache:    5236604 

U盘简单安装Linux的方法

天天对着windows桌面,是不是有点厌倦了windows的那张脸?或者你跟笔者一样是个系统控,喜欢体验各种各样的另类操作系统?Linux可是一个十分不错而且丰富的选择种类啊,免费的多多.想不想体验一下Linux下的感觉呢?刻盘?没那个必要,太浪费钱,而U盘却可以多次利用.本文就是要介绍如何打造U盘版的Linux安装盘的一点小经验.只要用Universal-USB-Installer这个小软件,大多数的Linux镜像都能轻松搞定. 打开Universal-USB-Installer软件; 点击接

一个最简单的Linux驱动程序的编译运行

一.背景知识 可装载内核模块:为了使系统功能能够更灵活的扩充,Linux支持内核的动态扩展,即在系统运行时给内核增加新的功能(即模块module). 模块:模块(module)是一段可以被动态链接的目标代码(.ko),它可由insmod命令动态的装载并链接到正在运行的内核.链接后,它就成了内核的一部分,直到用rmmod命令解除链接并卸载. Linux驱动程序就是一种特殊的可装载内核模块. 说明:本代码在linux2.6以上测试运行通过.linux3.*也可.本人用ubuntu12.04,linu

简单聊聊: Linux匿名管道

相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令: echo 123 | awk '{print $0+123}'       # 输出246  不过这次咱们不来说这些用法, 而是来探讨一些更加有意思的, 那就是 管道两边的数据流"实时性" 和 管道使用的小提示. 其实我们在利用管道的时候, 可能会不经意的去想, 我前一个命令的输出, 是全部处理完再通过管道传给第二个命令, 还是一边处理一边

简单实现linux聊天室程序_Linux

花了很长时间用来练习掌握linux上socket的一个聊天室程序,可以实现的哦. 具体代码如下 代码一: #ifndef _I_H #define _I_H #include <math.h> #include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> #include <

Android中调用系统的文件浏览器及自制简单的文件浏览器_Android

调用系统自带的文件浏览器这很简单: /** 调用文件选择软件来选择文件 **/ private void showFileChooser() { intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult(Intent.createChooser(inten

简单了解Linux系统中pgrep与pkill命令的使用

  pgrep, pkill – 查找或者发信号给进程通过名称和其它属性. 语法 pgrep [-flvx] [-n | -o] [-d delim] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern] pkill [

简单讲解Linux的文件系统及相关的挂载命令

  Linux文件系统 和windows的C盘D盘E盘的概念一样,这个"文件系统"或者叫"组织体系"是软件级别的,是linux系统"内在"的体系,就像你脑子里的一个"想法",并无需依赖于任何的实际一样. :idea: linux的系统组织方式是--整个系统从根开始,按树形目录依次向下逐渐扩大,分类存放不同用途的文件,/读作"斜线",英文slash;当其写作一个路径时,第一个/表示根,即root,其他的/表示