看图说话:学习Linux内核(1)-ver-1.0

合集下载

Linux内核修改与编译图文教程

Linux内核修改与编译图文教程

Linux 内核修改与编译图文教程11、实验目的针对Ubuntu10.04中,通过下载新的内核版本,并且修改新版本内核中的系统调用看,然后,在其系统中编译,加载新内核。

2、任务概述2.1 下载新内核/2.2 修改新内核系统调用添加新的系统调用函数,用来判断输入数据的奇偶性。

2.3 进行新内核编译通过修改新版内核后,进行加载编译。

最后通过编写测试程序进行测试3、实验步骤3.1 准备工作查看系统先前内核版本:(终端下)使用命令:uname -r23.2 下载最新内核我这里使用的内核版本是3.3 解压新版内核将新版内核复制到“/usr/src”目录下在终端下用命令:cd /usr/src进入到该文件目录解压内核:linux-2.6.36.tar.bz2,在终端进入cd /usr/src目录输入一下命令:bzip2 -d linux-2.6.36.tar.bz2tar -xvf linux-2.6.36.tar文件将解压到/usr/src/linux目录中3使用命令:ln -s linux-2.6.36 linux在终端下输入一下命令:sudo apt-get install build-essential kernel-package libncurses5-dev fakerootsudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt453.5 内核修改3.5.1添加新的系统调用在文件:usr/src/ linux /arch//x86/kernel/syscall_table_32.S 最后增加一个系统表项:.long sys_mycall3.5.2 添加系统调用号usr/src/linux/include/ asm-generic /unistd.h 中添加: #define _NR_mycall 245 #define NR_syscalls(343为先前在系统调用表中占用的位置,即为新添加的系统调用分配系统调用号为343)3.5.3添加系统调用的处理函数在usr/src/linux/kernel/sys.c中添加以下处理函数:3.6 清除从前编译内核时残留的.o 文件和不必要的关联(如果从前没有进行内核编译的话,则可以省略这一步)终端下切换至cd /usr/src/linux输入以下命令:63.7 asm、linux和scsi等链接是指向要升级的内核源代码# cd /usr/include/# rm -r asm linux scsi# ln -s /usr/src/linux/include/asm-generic asm# ln -s /usr/src/linux/include/linux linux# ln -s /usr/src/linux/include/scsi scsi73.8配置内核,修改相关参数3.8.1 如何配置内核参数?y:将该功能编译进内核。

linux内核升级图文攻略

linux内核升级图文攻略

linux内核升级图文攻略一、Linux内核概览Linux是一个一体化内核(monolithic kernel)系统。

设备驱动程序可以完全访问硬件。

Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。

1. linux内核linux 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。

一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。

计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。

但是没有软件来操作和控制它,自身是不能工作的。

完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。

Linux内核的主要模块(或组件)分以下几个部分:. 进程管理(process management) . 定时器(timer). 中断管理(interrupt management). 内存管理(memory management). 模块管理(module management). 虚拟文件系统接口(VFS layer). 文件系统(file system). 设备驱动程序(device driver). 进程间通信(inter-process communication). 网络管理(network management. 系统启动(system init)等操作系统功能的实现。

2. linux内核版本号Linux内核使用三种不同的版本编号方式。

. 第一种方式用于1.0版本之前(包括1.0)。

第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。

. 第二种方式用于1.0之后到2.6,数字由三部分“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。

教你如何学习linux内核

教你如何学习linux内核

教你如何学习linux内核毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。

基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。

对于一个希望能够在Linux内核的汪洋代码里看到一丝曙光的人来说,将它们放在怎么重要的地位都不过分。

我们去香港,通过海关的时候,总会有免费的地图和各种指南拿,有了它们在手里我们才不至于无头苍蝇般迷惘的行走在陌生的街道上。

即使在内地出去旅游的时候一般来说也总是会首先找份地图,当然了,这时就是要去买了,拿是拿不到的,不同的地方有不同的特色,只不过有的特色是服务,有的特色是索取。

Kconfig和Makefile就是Linux Kernel迷宫里的地图。

地图引导我们去认识一个城市,而Kconfig 和Makefile则可以让我们了解一个Kernel目录下面的结构。

我们每次浏览kernel寻找属于自己的那一段代码时,都应该首先看看目录下的这两个文件。

利用Kconfig和Makefile寻找目标代码就像利用地图寻找目的地一样,我们需要利用Kconfig和Makefile来寻找所要研究的目标代码。

比如我们打算研究U盘驱动的实现,因为U盘是一种storage设备,所以我们应该先进入到drivers/usb/storage/目录。

但是该目录下的文件很多,那么究竟哪些文件才是我们需要关注的?这时就有必要先去阅读Kconfig和Makefile文件。

对于Kconfig文件,我们可以看到下面的选项。

config USB_STORAGE_DATAFABbool "Datafab Compact Flash Reader support (EXPERIMENTAL)"depends on USB_STORAGE && EXPERIMENTALhelpSupport for certain Datafab CompactFlash readers.Datafab has a web page at </>.显然,这个选项和我们的目的没有关系。

Linux内核简要介绍(doc 9页)

Linux内核简要介绍(doc 9页)

Linux内核简要介绍(doc 9页)更多企业学院:《中小企业管理全能版》183套讲座+89700份资料《总经理、高层管理》49套讲座+16388份资料《中层管理学院》46套讲座+6020份资料《国学智慧、易经》46套讲座《人力资源学院》56套讲座+27123份资料《各阶段员工培训学院》77套讲座+ 324份资料《员工管理企业学院》67套讲座+ 8720份资料《工厂生产管理学院》52套讲座+ 13920份资料《财务管理学院》53套讲座+ 17945份资料《销售经理学院》56套讲座+ 14350份资料《销售人员培训学院》72套讲座+ 4879份资料器提供文件传输机制,而用户可以使用任何客户端程序;命令行的客户端和图形化界面的客户端都存在,并且谁都可以为传输文件写一个新的用户界面。

只要涉及到驱动程序,就会运用这样的功能划分。

软盘驱动程序是设备无关的——这不仅表现在磁盘是一个连续读写的字节数组上。

如何使用设备是应用程序要做的事:tar要连续地写数据,而mkfs则为要安装的设备做准备工作,mcopy 依赖于设备上存在的特殊数据结构。

在写驱动程序时,程序员应该特别留心这样的基本问题:我们要写内核代码访问硬件,但由于不同用户有不同需要,我们不能强迫用户采用什么样的特定策略。

设备驱动程序应该仅仅处理硬件,将如何使用硬件的问题留给应用程序。

如果在提供获得硬件能力的同时没有增加限制,我们就说驱动程序是灵活的。

不过,有时必须要作一些策略决策。

可以从不同侧面来看你的驱动程序:它是位于应用层和实际设备之间的软件。

驱动程序的程序员可以选择这个设备应该怎样实现:不同的驱动程序可以提供不同的能力,甚至相同的设备也可以提供不同能力。

实际驱动程序设计应该是在众多需求之间的一个平衡。

例如,不同程序可以同时使用同一个设备,而驱动程序的开发者可以完全自由地决定如何处理同步机制。

你可以实现到设备上的内存映射,而完成独立于硬件的具体能力,或者你可以提供给用户函数库,帮助应用程序的程序员在可用原语的基础上实现新策略,或者诸如此类的方法。

Linux内核.ppt

Linux内核.ppt
行交互操作的一种接口。
❖ LINUX文件系统: Linux文件系统是文件存放在磁盘等存储设
备上的组织方法。Linux能支持多种目前浒的文件系统,如EXT2、EXT3、 FAT、VFAT、ISO9660、NFS、SMB等。
❖ LINUX应用系统:标准的Linux系统都有一整套称为应
用程序的程序集,包括文本编辑器、编程语言、X Window、 办公套件、Internet工具、数据库等。
❖GNU 软件和派生工作均适用 GNU 通用公共许 可证,即 GPL(General Public License )
❖Linux的开发使用了众多的GUN工具
<>
GPL-开源软件的法律
❖GPL 允许软件作者拥有软件版权 ❖但GPL规定授予其他任何人以合法复
制、发行和修改软件的权利。
<>
2. Linux系统的主要特点
内核模块的能力
所有模块全部运行在内核态,直接调用函数,无需消息传递 支持多称多处理SMP机制
讲究效率的单模块操作系统
进程管理
内存管理
设备管理
文件管理
模块之间可以互相调用的单模块结构 <>
讲究效率的单模块操作系统
❖模块之间直接调用函数,除了函数调用 的开销外,没有额外开销。 ❖庞大的操作系统有数以千计的函数 ❖复杂的调用关系势必导致操作系统维护 的困难
个平台使它仍然能按其自身的方式运行的能力。Linux是一种可 移植的操作系统,能够在从微型计算机到大型计算机的任何环境 中和任何平台上运行。
3. LINUX的组成
❖ LINUX的内核:内核是系统的核心,是运行程序和管理
像磁盘和打印机等硬件设备的核心程序。
❖ LINUX SHELL: Shell是系统的用户界面,提供了用户与内核进

linux0.01内核

linux0.01内核

linux0.01内核Linux0.01内核分析的一点心得linux(linux教程linux培训)0.01内核基本上分析完了,高版本的内核也看了一点。

有一点心得与大家分享一下吧!这里我并不打算说具体的技术方面的东西,而是针对读内核的方法,谈谈自己一点感受。

我前段时间主要看的是0.01版本的内核。

Linux0.01是Linux 的"祖师爷"Linus完成的最早的一个Linux版本,其内核编译后仅仅只有512K,麻雀虽小,五脏俱全,0.01包括了从软盘启动、文件系统、控制台管理的操作系统完整功能,并提供了不少标准的用户接口,具体有kernel, boot, fs, init,mm等几个部分,没有网络部分。

为什么选择Linux0.01?各位大虾一看到0.01肯定直摇头:哎呀,都什么时代的东东了,有看的必要么?笔者当初选择0.01并没有太多的想法,只是Tm-linux小组刚开始选择的是0.01,于是就开始读吧,现在仔细想想,读Linux0.01对于初学者来说可能更容易上手些。

可能有下面的几个好处吧1)0.01的代码量较小。

很多同学都曾有成为Linux高手的欲望,也曾抱回若干砖头书,但Linux的发展何其之快,而coder 又是黑客型高手,往往坚持不了多长时间而中途放弃!2)0.01的代码简单而精简(这个简单当然是相对于后续版本而言的)。

实际上0.01完成的就是一个操作系统的最初的要求,包括启动,进程调度,内存管理等,而这些往往与硬件结合,在看高版本的内核时往往还没有接触到这些硬件知识,层层下调已经把你搞糊涂了。

3)从低版本看更能看到技术进步的源动力,比如0.01的内核很小,其启动代码可以只放在一个扇区内,而后续版本的内核较大,无法放入一个扇区内,于是压缩核心的装入方法诞生了。

再如内存管理,0.01的内存管理比较简单,内存的申请释放直接通过使用前申请,使用后释放,但考虑以后的版本功能复杂,如何解决可能的"外碎片"问题,如何解决内存不足的问题,于是对后续版本采用的"伙伴算法",slab技术,页面守护进程有更好的理解。

Linux内核安装、裁剪图文教程

Linux内核安装、裁剪图文教程

目录Practice1 (4)一编译过程 (4)1 安装必要的软件 (4)2 下载linux内核源文件 (4)3 解压缩源文件 (5)4 复制config文件 (6)5 进行menucofig配置 (6)6 menuconfig配置页面 (7)7 对驱动设置进行简单配置 (8)8 选择cpu类型 (8)9 设置完成保存退出 (9)10 开始编译内核 (9)11 内核编译过程 (10)12 内核编译过程(3小时后) (11)13 内核编译成功 (12)14 安装新内核 (12)15 新内核安装过程 (13)16 比较两个内核 (14)17 重新启动系统 (14)18 登录新内核 (15)19 新内核登录成功 (15)20 查看新内核版本号号 (16)二、编译过程中遇到的问题 (16)1 错误VFS:Unable to mount root (16)2错误Driver ‘mdio-gpio’ (18)Practice2 (20)一、内核选项翻译及选择理由 (20)1. General setup 常规设置 (20)二、裁剪过程 (21)1.进入设置界面 (21)2. General setup页设置 (22)3. Enable the block layer页设置 (23)4. Processor type and features页设置 (24)5. Power Management and ACPI options页设置 (28)6. Bus options页设置 (29)7. Executable file formats页设置 (30)8. Networking options页设置 (31)9. Device Drivers 页设置 (34)10. Firmware Drivers页设置 (37)11. File systems页设置 (38)12. Kernel hacking页设置 (40)13 CryptographicAPI页设置 (41)14. 裁剪后内核运行截图 (42)15. 内核大小9.6M (43)感受和体会 (44)Practice1一编译过程1 安装必要的软件代码: $sudo apt-get install build-essential kernel-package libncurses5-dev2 下载linux内核源文件/下载2.6.38.8full版3 解压缩源文件代码:$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/4 复制config文件命令:cp /boot/config-`uname -r` ./.config5 进行menucofig配置代码:$sudo make menuconfig6 menuconfig配置页面7 对驱动设置进行简单配置8 选择cpu类型9 设置完成保存退出10 开始编译内核代码:$ sudo make-kpkg -initrd --initrd --append-to-version=bo100 kernel_image kernel-headers11 内核编译过程12 内核编译过程(3小时后)13 内核编译成功14 安装新内核代码:$ sudo dpkg -i linux-image-2.6.38bo10015 新内核安装过程16 比较两个内核17 重新启动系统18 登录新内核19 新内核登录成功20 查看新内核版本号号二、编译过程中遇到的问题1 错误VFS:Unable to mount root描述:内核安装成功后,启动内核出现如下图错误原因:在执行内核安装的时候,initrd可能没有被安装出现以下错误如图,新版本的initrd并没有安装成功,vmlinu有两份,而initrd只有一份。

linux内核简介.ppt

linux内核简介.ppt
API和系统调用完全不同:
–API只是一个函数定义 –系统调用通过“软中断”向内核发出一个明确
的请求
2020年2月10日
东华大学计算机科学与技术学院 by XinLuo
10
系统调用图解 用户态
内核态
系统调用 1
系统调用 返回
2
trap 0
2020年2月10日
东华大学计算机科学与技术学院 by XinLuo
中断的概念,终端 控制台设备驱动
Shell程序分析输入参 数,确定这是ls命令
什么是shell?
终端解释程序
什么是系统调用?
内核态用户态相关问 题,内存保护
调用系统调用fork生成 一个shell本身的拷贝
调用exec系统调用将ls 的可执行文件装入内存
从系统调用返回
Shell和ls都得以执行
系统调用是怎 么实现的?
3
Linux 基本概念
• 系统调用 • 内存管理 • 进程管理 • 虚拟文件系统(VFS) • 信号机制 • 内核初始化过程
2020年2月10日
东华大学计算机科学与技术学院 by XinLuo
4
➢ 提纲
• 用户态和内核态 • 系统调用意义 • 系统调用方法
2020年2月10日
东华大学计算机科学与技术学院 by XinLuo
Memory manager Signal 。。。
File systems Process management Device drivers Net work
Kernel interface to the hardware
Terminal controllers Terminals
Device controllers Memory controllers
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
页表
物理内存页 某字节
CR4寄存器
标志是否开启PAE
PDPT
页目录
页表项 页目录项
CR3寄存器
PDPT基地址的物理地址
PDPT项
内存管理(cont.11)
• 80x86内存访问优化
– TLB和Cache – TLB
• 缓存已经转换好的<线性地址↔物理地址>对 • 当CR3的值发生变化时,所有表项失效
内存管理(cont.5)
GDTR/LDTR
32bit
内存中:段描述符表 段地址 8 内存的某段
非编程寄存器装段描述符
段描述符 32bit 某字节
输入:段选择符(段寄存器)
13bit的index 1bit的TI 2bit的RPL
输入:逻辑地址
32bit
段地址
输出:线性地址
32bit
内存管理(cont.6)
第31bit
由分段机制ቤተ መጻሕፍቲ ባይዱ生出来的线性地址
第0bit
10bit页目录索引
10bit页表索引
12bit页内偏移 物理内存页
页表
某字节
页目录
页表项
CR3寄存器
页目录项
页目录基地址的物理地址
内存管理(cont.8)
• 80x86中的分段/分页
– 分页实现 – 硬件支持的扩展分页(4M或2M) – 注意兼容性的考虑
概述(cont.3)
• Linux发展的三条线索
– Linux内核出现
• GNU已经完成了对几乎全部UNIX的软件的重写,除了内核 • GNU的内核项目Hurd,进展缓慢 • 1991年,Linus Torvalds在一个教学的UNIX-like的操作系统Minix基础上 开发了Linux内核,并以GPL发布 • Linux内核实现了Posix标准,能很好的和GNU软件配合,成为了GNU系 统的内核 • Linux内核飞速发展,很多公司利用GNU软件+Linux内核发布自己的操作 系统,例如RedHat、Debian、FedoraCore和Gentoo等,这些系统被称 为GNU/Linux系统,一般就直接叫做Linux
内存管理(cont.10)
• 80x86的分段/分页
– 当物理内存大于4G时,如何利用之
• 80x86的寻址能力是64G(36bit地址宽度)
– PAE和PSE,PSE不被Linux支持
• 原理很简单,32 → 36
– 实现很难: » 区分虚拟地址空间 » 兼容扩展分页机制 » 注意这是硬件层面
• 因为已经解耦,页表项存的 基地址+页内偏移=36即 可
标记 标记 物理地址 物理地址
0/1 0/1
内存管理(cont.12)
• 80x86内存访问优化
– Cache
• 改善分页机制 • 缓存<内存中的内容↔线性地址>对 • 直接映射 → 全关联映射 → 组关联映射
直接映射
函数运算 线 性 地 址 标记 某块内存 (多字节) 某块内存 (多字节)
内存中的块和缓存中的块 是多对一,而且不可变。 例如:内存块映射到内存 块基地址mod缓存的总块 数
• 80x86分段/分页
– PAE的实现:增加一级(注意页表项/页目录项是8字节,其中 24bit用于和页内偏移来合成物理地址) – CR3每指定一个PDPT就可以寻址4G – 如何在程序中使用呢?
第31bit 由分段机制产生出来的线性地址 第0bit
2bit PDPT 9bit页目录索引 9bit页表索引 12bit页内偏移
• 80x86的分段/分页
– 分页概览
• 分页
– 打白条,拆东墙补西墙 – 也可能相反
• 把线性地址(虚拟地址)空间中的某块和物理地址(物理内存)中的 某块映射起来
– 利用索引找到基地址 – 加上偏移量
• 这种映射是以固定大小(页)为单位
– 80x86是4096,但是支持扩展分页到4M
• 其过程是:
• 进程内存空间布局 • 内核态虚拟地址空间
– 异常、中断、陷入、软中断、软件中断、底半(BH) – 上下文、抢占、内核栈、中断栈
• 总结
前言
• 内核 → 操作系统
– 内核:管理硬件资源,提供进程运行环境
• • • • 设备管理 进程管理 内存管理 文件管理
– 操作系统:内核+系统软件+其他常用软件
• 核心进程 • 编辑器 • 交互界面等
前言(cont.1)
• 操作系统(内核)的讲法
– 内存管理 – 系统调用 – 中断处理 – 内核同步 – I/O管理 – 文件系统......
• 我们
– 以内存管理为线索,把部分几个串起来
提纲
• 前言 • 概述
– Linux发展简史 – Linux内核简介
商业版本繁荣 • POSIX→标准化
概述(cont.2)
• Linux发展的三条线索
– GNU的发展
• UNIX并不是免费的,其软件也不是开源的 • Richard Stallman在1983年发起开源软件项目,为了构建一个免费的操作 系统:包括编辑器、编译器、文本处理和内核等 • 很多UNIX上的软件都被重写,并以GPL发布 • Emacs和GCC是旗舰项目
• Linux发展简史
– Linux是一个UNIX-like操作系统内核 – UNIX是个商标,被Open Group拥有 – UNIX用来表达符合Unix标准的操作系统
• 被Open Group的“Single UNIX Specification”认证通过才可使用UNIX 商标,否则被称为UNIX-like系统
• 内存管理
– 实模式 – 保护模式 – 虚拟地址到物理地址的总体映射关系(分区)
• 进程内存空间布局 • 内核态虚拟地址空间
– 异常、中断、陷入、软中断、软件中断、底半(BH) – 上下文、抢占、内核栈、中断栈
• 总结
概述
• 约定
– 用Linux表示使用Linux内核的操作系统,即发行版本,如Debian – 用Linux内核来表达一个内核
标记
某块内存 (多字节)
内存管理(cont.14)
• 80x86内存访问优化
– Cache
组关联映射
标记 某块内存 (多字节)
线 性 地 址
内 存 块 号 组 号 块 内 偏 移
内 存 块 号 块 内 偏 移
标记
标记
某块内存 (多字节)
内存管理(cont.13)
• 80x86内存访问优化
– Cache
全关联映射
比较运算 线 性 地 址 标记 某块内存 (多字节) 某块内存 (多字节)
内 存 块 号 块 内 偏 移
标记
全关联中,缓存中的块 和物理内存中的块没有 函数关系,必须挨个比 较“标记”来检查缓存中是 有该块。 硬件可以用一次比较来 实现,但是复杂度高。
• 概述
– 一个计算机系统(硬件)包括:
• 中央处理器 • 存储器 • 外设
– 存储器
• 是一切操作的场地(Arena) • 操作系统的操作都必须在一个内存空间中完成
– – – – 运行进程 中断处理 系统服务 I/O处理
– 解析内存管理的思路:
• 硬件支持和接口 → Linux对内核态虚拟地址的映射 → 用户态虚拟地 址的映射
提纲
• 前言 • 概述
– Linux发展简史 – Linux内核简介
• 内存管理
– 实模式 – 保护模式 – 虚拟地址到物理地址的总体映射关系(分区)
• 进程内存空间布局 • 内核态虚拟地址空间
– 异常、中断、陷入、软中断、软件中断、底半(BH) – 上下文、抢占、内核栈、中断栈
• 总结
内存管理
线性地址 逻辑地址 分段单元 分页单元 物理地址
段选择符(给出段地址)
内存管理(cont.3)
• 80x86的分段/分页
– 分段概览
内存中:段描述符表
段地址
内存的某段
段描述符
输入:段选择符(段寄存器)
某字节
16bit
输入:逻辑地址
32bit
段地址
输出:线性地址
32bit
内存管理(cont.4)
• 80x86的分段/分页
看图说话:学习Linux内核(1)-ver1.0
——以内存管理为线索
腾讯研究院/北京分院/无线组 周晓波(xiaobozhou) 2010-03-29
提纲
• 前言 • 概述
– Linux发展简史 – Linux内核简介
• 内存管理
– 实模式 – 保护模式 – 虚拟地址到物理地址的总体映射关系(分区)
– Linux发展的三条线索
• UNIX的发展 • GNU的发展 • Linux内核的出现
概述(cont.1)
• Linux发展的三条线索
– UNIX的发展
• 世界上没有一个操作系统叫UNIX——白马非马 • 1969年,Ken Thompson和Dennis Ritchie在AT&T贝尔实验室实现了 Unix→Multics涅磐 • 1973年,用C语言重写Unix→飞速发展 • AT&T以分发许可证的方式,把Unix分发给大学和研究机构,及至 Unix第六版,AT&T意识到商业价值,成立USL,并宣布对Unix所有 权→开放到封闭 • 同时伯克利成立CSRG,开发并发布BSD Unix→Tcp/IP • AT&T引入BSD的一些优点,发布Unix System V→它和BSD成为现 代UNIX的两个分支 • 很多公司基于这两个分支发布自己的系统Solaris,HP-UX,AIX等→
内存管理(cont.10)
• 80x86分段/分页
相关文档
最新文档