网络操作系统Linux(第2章).pdf

上传人:qwe****56 文档编号:71061022 上传时间:2023-01-31 格式:PDF 页数:63 大小:856.51KB
返回 下载 相关 举报
网络操作系统Linux(第2章).pdf_第1页
第1页 / 共63页
网络操作系统Linux(第2章).pdf_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《网络操作系统Linux(第2章).pdf》由会员分享,可在线阅读,更多相关《网络操作系统Linux(第2章).pdf(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、网络操作系统-Linux基础主讲人:王柯 西南师范大学计算机科学系2005年春第2章 Red Hat Linux 9.0 安装与配置2.1 安装前的准备工作 2.1.1 收集硬件信息 2.1.2 选择安装方法 2.1.3 制作引导软盘 2.1.4 选择安装方式 2.1.5 磁盘分区和文件系统常识2.1.1 收集硬件信息 了解你的硬件 你有几个硬盘?每个硬盘容量多大?如果你拥有不止一个硬盘,哪个是主硬盘?你有多大的硬盘?你有SCSI卡吗?制造商和型号是什么?你的鼠标是什么型号?鼠标由几个按键?如果是串口述表,那么连在哪个串口上?你的显卡是什么型号?多少显存?你的显示器制造商和型号?如果你连到一个

2、网络上,你还需要知道:你的IP地址?你的子网掩码?你的网关地址?你的域名服务器地址?你的域名?你的主机名?你的网卡制造商和型号?2.1.2 选择安装方法 从本地安装(CD-ROM/硬盘)从网络安装(NFS/FTP/HTTP)2.1.3 制作引导软盘 2.1.4 选择安装方式 Personal Desktop方式 Workstation方式 Server方式 Custom方式 Upgrade方式 2.1.5 磁盘分区和文件系统常识硬盘分区:主分区(Primary Partition)扩展分区(Extension Partition)逻辑分区(Logical Partition)驱动器+分区标识:

3、Primary Master:/dev/hda1Primary Slave:/dev/hdb2Secondary Master:/dev/hdc3Secondary Slave:/dev/hdd5 Linux至少需要两个专门的分区:Linux Native(根分区)Linux Swap(交换分区)$mkdir/mnt/cdrom$mount t auto/dev/hdb/mnt/cdrom 2.1.5 磁盘分区和文件系统常识文件系统:VFS(Virtual File System)逻辑文件系统(ext2/ext3)2.2 安装Red Hat Linux 9.0 2.2.1 启动安装程序 2.2

4、.2 从光盘安装 2.2.3 安装步骤2.2.1 启动安装程序 Boot模式boot:图形界面安装boot:text 文字界面安装boot:expert 专家模式安装boot:linux dd 需要Driver Disk的安装boot:rescue 系统修复模式2.2.2 从光盘安装 虚拟控制台(Virtual Console)1.选择语系2.选择键盘类型3.选择鼠标4.选择新安装或升级安装5.选择安装模式6.*设置磁盘分区7.自动分区8.Disk Druid手动分区9.*配置引导装载程序(GRUB或LILO)10.配置网络连接11.配置防火墙12.选择支持语言13.配置时区14.设置root

5、口令15.配置网络口令16.选择安装包17.准备安装18.安装软件包19.创建启动盘20.配置显示卡21.*配置 X-Window系统22.安装完成2.2.3 安装步骤 多重引导 GRUB LILO LOADLIN SYSLINUX System Commander Partition Logic 分区 最小化的分区示例/35MB/boot 5MB/chroot 10MB/home 100MB/tmp 30MB/usr 232MB/var 25MB LBA(Logical Block Addressing):a method used with SCSI and IDE disk drives

6、 to translate the cylinder,head,and sector specifications of the drive into addresses that can be used by an enhanced BIOS.LBA is used with drives that are larger than 504 MB.LINUX启动LINUX启动 当开启基于 Linux 的系统时,内核被一个引导工具,例如 LILO,从硬盘载入内存。在此时,内核接管了的系统控制。它所作的第一件事是探测并初始化它所找到的硬件-它被编译成能支持的那些。一旦硬件已经被正确初始化,它就准备

7、开始运行进程了。它运行的第一个进程被称为init,位于/sbin 目录下。然后,init 启动在/etc/inittab 文件中指定的其他进程。启动“init”通常启动一个名为“getty”程序的多份拷贝,它等待来自控制台的登录。在 getty 成功处理一个登录请求后,缺省的 shell(通常是bash)被载入。一旦进入 bash,就可启动任意一个想要的程序了。当所有这些新的进程被启动后,内核仍在控制系统,精确地给 CPU 分割时间片,这样每个进程将均匀地分到。另外,内核继续为各种运行中的进程提供硬件抽象和网络服务。模块所有最新的 Linux 内核都支持内核模块。Kernel 模块是非常整齐的

8、-它们是除非需要驻留在硬盘上的内核部分。一旦内核需要一个特定模块的功能时,它从硬盘被载入,自动集成到内核中就可被使用了。另外,如果内核模块有好几分钟未被使用,内核可以自愿地将其从内存中调出-被称之为自动清除。模块 内核模块是驻留在/lib/modules 目录下,而且每个模块文件名结尾都有一个.o。每个模块代表一个内核功能的特定组件-一个模块可能提供 FAT 文件系统支持,而另一个可能支持一种特殊的 ISA 以太网卡.模块使得内核占用少量的内存空间。可创建一个内核只包含足以启动计算机的功能,而其他的功能则在需要时被载入。由于内核能自动清除它所载入的模块,系统的内存资源能被很好地利用。模块 不能

9、将所有一切放入模块中。由于模块是存放在磁盘上,可启动的内核映像需要被编译入磁盘控制器以及对基本文件系统(通常是 ext2 文件系统)的支持。如果没有将这些重要的组件编译入内核映像(而是将它们作为模块来编译),内核就无法获得基本的功能来从磁盘上载入这些模块了-导致了一个“鸡生蛋、蛋生鸡”的问题!初始化流程分析初始化流程 加电或复位 BIOS启动 Boot Loader 操作系统初始化加电或复位 CS:IP组合指向BIOS入口,这里是处理器运行的第一条指令 CS:=FFFF;IP:=0000BIOS启动 读入零柱面零道1扇区(MBR),其中放Boot Loader BIOS提供一组中断以便对硬件设

10、备的访问Boot Loader 将系统启动代码读入内存操作系统初始化 完成存储管理、设备管理、文件管理、进程管理的初始化初始化任务 初始化时要加入使80386进入保护模式的代码。所以初始化过程依赖于处理器 加入即插即用初始化代码Linux的Boot Loader 软盘的结构硬盘的结构 3D参数(Disk Geometry).既磁头数(Heads),柱面数(Cylinders),扇区数(Sectors per track),以及相应的寻址方式.等密度结构硬盘.外圈磁道的扇区 比内圈磁道多.采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改 为线性寻址,即以扇区为单位进行寻址.硬盘的结构 主

11、分区表(MBR)在硬盘的第一个扇区.各子分区也有自己的分区表,放在该扩展分区对应的第一个扇区中。1.开机:-)2.BIOS 加电自检(Power On Self Test-POST)内存地址为 0ffff:0000 3.将硬盘第一个扇区(0头0道1扇区,也就是Boot Sector)读入内存地址 0000:7c00 处.4.检查(WORD)0000:7dfe 是否等于 0 xaa55,若不等于 则转去尝试其他启动介质,如果没有其他启动介质则显示 No ROM BASIC 然后死机.5.跳转到 0000:7c00 处执行 MBR 中的程序.6.MBR 首先将自己复制到 0000:0600 处,然

12、后继续执行.7.在主分区表中搜索标志为活动的分区.如果发现没有活动 分区或有不止一个活动分区,则停止.8.将活动分区的第一个扇区读入内存地址0000:7c00 处.9.检查(WORD)0000:7dfe 是否等于 0 xaa55,若不等于则 显示 Missing Operating System 然后停止,或尝试 软盘启动.10.跳转到 0000:7c00 处继续执行特定系统的启动程序.11.启动系统.以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成.6,7,8,9,10 步由MBR中的引导程序完成.Boot Loader MBR中的代码为boot loader 或boot loa

13、der 的一部分 Ms-boot Loader:检查盘上是否存在两个隐含的系统文件(IBMBIO.COM IBMDOS.COM).将其读出并送到内存中指定的区域,将控制权转移给IBMBIO这个模块。LILO:一个在linux下的boot loader,实现多重启动只有DOS系统主 引 导 扇 区分 区 引 导 扇 区操 作 系 统D O S-M B RM S-D O SC O M M A N D.C O M只 有 D O S 的 硬 盘 分 区DOS 和LINUX双系统主 引 导 扇 区分 区 引 导 扇 区操 作 系 统D O S-M B RM S-D O SC O M M A N D.C

14、O ML O A D L I NL i n u x用 L O A D L I N 从 D O S 下 启 动 L i n u x 实现:DOS的主引导区和分区引导区无变化,在DOS的配置文件autoexec.bat中加入LOADIN程序LILO主 引 导 扇 区分 区 引 导 扇 区操 作 系 统其 它 OS.DOS-MBRLILOLINUXLILO存 放 在 Linux分 区 的 引 导 扇 区 内 存放在linux分区的引导扇区内 特点:在启动前要设置为活动分区(烦琐)LILO 在分区引导扇区内多重引导主引导扇区分区引导扇区操作系统MS-DOSDOSDOS-MBRLILOLINUXLINU

15、XLOADLINLINUXLILO在分区引导扇区内的多重引导LILO LILO放在主引导扇区里主 引 导 扇 区分 区 引 导 扇 区操 作 系 统LILOlinux其 它 操 作 系 统LILO放 在 主 引 导 扇 区 中LILO组成 Map installer:LILO用于管理启动文件的程序。将boot loader写入引导分区,创建纪录文件map file 以映射内核启动文件。The boot loader:由BIOS读入内存的那部分LILO程序,负责将OS的引导分区读入内存。其它文件:存放map install 纪录的map 文件(boot/map)和存放LILO配置信息的配置文件(

16、/etc/lilo.conf)LILO在引导linux的同时还可以向linux内核传送参数。LILO运行分析 引导扇区被BIOS读入后,显示L字符。在启动第二级引导扇区前,显示I。读入二级引导扇区,当其获得控制权后显示L。读入命令行解释器显示O。读入内核image,控制权交给setup.SSetup.S 检查OS代码 从BIOS获取内存、硬件等信息。设置32位启动程序的存储位置。Load idt 和gdt 设置保护模式标志位,控制权Head.S这段纯32位汇编代码Head.S 清空中断向量表 linux初始化完成后,BIOS中断服务程序就不会再被使用。在初始化最后阶段(start_kernel

17、()完成后),中断向量表将被各个中断服务程序填充(包括设备驱动程序)。将启动参数保存在empty_zero_page中。检查CPU类型。Head.S 调用 setup_paging函数 将映射出2个页的物理内存。一个是swap_page_dir,一个是零页 pg0 初始化页目录表 定义empty_bad_page,empty_bad_page_table,empty_zero_pageHead.s Empty_zero_page存放系统启动参数和命令行参数。物理地址0 x0000没有被页映射。这里保存中断向量表、GDT等比较重要的数据结构。配置全局表述符表GDT,增加用户码段、用户数据段、任务

18、堆栈段、LDT Lgdt,lidt(重新执行),lldt 调用/init/main.C中的start_kernelStart_kernel()此前已完成段页机制的建立。Start_kernel()执行后,则可以以一个用户的身份登录和使用linux了。Start_kernel()Setup_arch();/作与cpu、内存相关的初始化 Paging_init();/arch/i386/mm/init.c完成页初始化,实现线性地址映射到物理地址的页映射。分配memory_start?memory_end的地址空间。Trap_init()/arch/i386/kernel/trap.c 初始化中断向

19、量表,调用set_trap_gate宏对中断向量表的各个表项填写中断处理程序。例如:中断80 由set_system_gate完成,实现系统调用的中断。初始化第一个任务init_task的ldt和TSS,并填入GDT的表项中;然后将其读入系统TSS和LDT寄存器中 Init_irq()/arch/i386/kernel/irq.c 初始化8259级连脚和协处理器引脚 Struct irqactionvoid(*handler)(int,void*,struct pt_regs*);unsigned long flags;unsigned long mask;const char*name;vo

20、id *dev_id;struct irqaction*next;Static void math_error_irq(int cpl,void*dev_id,struct pt_regs*regs)outb(0,0 xf0);if(ignore_irq13|!hard_math)return;math_error();Static struct irqaction irq13=math_error_irq,0,0,”math error”,NULL,NULL后继的中断在知道了设备驱动程序后,由setup_x86_irq()完成中断初始化 Sched_init()/kernel/sched.c

21、 Init_bh/将timer,tqueue,immediate加入 Time_init()/arch/i386/kernel/timer.c 初始化时间系统 Parse_options()/main.c 将启动参数付给相应变量。Console_init()/linux/drivers/char/tty_io.c 终端初始化 Kmalloc_init/linux/mm/kmallo.c 检查可用内存大小 Inode_init()/linux/fs/inode.c Vfs的I 节点初始化:初始化I node查找哈稀表 Name_cache_init()/linux/fs/dcache.c VFS

22、目录缓存机制初始化。Buffer_init()/linux/fs/buffer.c 指示块缓存初始化 Mem_init()/arch/i386/mm/init.c 下面是各个模块的初始化,在init进程建立后完成。Init 进程的建立 Kernel_thread(init,NULL,0)建立,它是所有进程的父。Init()建立dbflush,kswapd两个新的内核线程 初始化tty1设备 启动init进程根据启动脚本文件创建其它必要的进程去完成一下操作:检查FILE SYSTEM 启动系统守护进程 为各个终端建立getty进程 执行/etc/rc下的命令Init进程的启动流程 启动所需的sh

23、ell脚本文件 Etc/inittab Init根据其内容进入不同启动级别 Inittab中的选项2.3 基本日常工作 2.3.1 设置代理 2.3.2 登录 2.3.3 打开Shell prompt 2.3.4 创建用户帐号/密码 su useradd userdel passwd 2.3.5 文档资料 2.3.6 桌面环境切换 KDEGNOME 2.3.7 注销 2.3.8 关机 halt haltsys shutdown reboot2.3 基本日常工作 2.3.1 设置代理 2.3.2 登录 2.3.3 打开Shell prompt 2.3.4 创建用户帐号/密码su useradd userdel passwd 2.3.5 文档资料tar xzvf file1.tar.gzrpm-Uvh fiel1.rpm 2.3.6 桌面环境切换 KDEGNOME 2.3.7 注销 2.3.8 关机halt haltsys shutdown reboot sync

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁