、 Linux内核分析

上传人:e****s 文档编号:320685359 上传时间:2022-07-01 格式:PPT 页数:60 大小:952KB
返回 下载 相关 举报
、 Linux内核分析_第1页
第1页 / 共60页
、 Linux内核分析_第2页
第2页 / 共60页
、 Linux内核分析_第3页
第3页 / 共60页
、 Linux内核分析_第4页
第4页 / 共60页
、 Linux内核分析_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《、 Linux内核分析》由会员分享,可在线阅读,更多相关《、 Linux内核分析(60页珍藏版)》请在金锄头文库上搜索。

1、Linux操作系统分析操作系统分析中国科学技术大学计算机系中国科学技术大学计算机系陈香兰陈香兰051287161312第一章、绪论第一章、绪论v主要内容vLinux简介v一些预备知识v操作系统根本概念v堆栈v内核态vs用户态v虚拟内存v分析和实验验证环境vVMwarevSourceInsightv相关工具介绍:GNUTools等6/24/20222第一章、绪论第一章、绪论v主要内容vLinux简介v一些预备知识v操作系统根本概念v堆栈v内核态vs用户态v虚拟内存v分析和实验验证环境vVMware、QENU、VirtualBoxvSourceInsightv相关工具介绍:GNUTools等6/2

2、4/20223什么是什么是Linux?vLinux是一个类UnixUnix-like的操作系统,在1991年发行了它的第一个版本v在Linux内核维护网站上,“WhatisLinux?6/24/20224From “vLinux的来历和目标:Linuxisa clone of the operating system Unix,writtenfromscratchbyLinus Torvaldswithassistancefromaloosely-knitteamofhackersacrosstheNet.It aims towards POSIX and Single UNIX Specif

3、ication compliance.vLinux的功能Ithasallthefeaturesyouwouldexpectinamodernfully-fledgedUnix,includingtruemultitasking,virtual memory,shared libraries,demand loading,shared copy-on-write executables,proper memory management,andmultistacknetworkingincludingIPv4andIPv6.Portable Operating System Interface S

4、tandard可移植操作系统接口标准由IEEE制订,并由ISO接受为国际标准。Institute for Electrical and Electronic Engineers电气电子工程师学会美International Organization for Standardization国际标准化组织制定各行各业各种产品和效劳的技术标准国际标准6/24/20225vLinux支持的目标体系结构Althoughoriginallydevelopedfirstfor 32-bit x86-based PCs (386 or higher),todayLinuxalsorunson(atleast)

5、theAlpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, and Analog Devices Blackfinarchitectures;formanyofthesearchitecturesinboth32-and64-bitvariant

6、s.6/24/20226v在内存管理方面不得不说的Linuxiseasilyportabletomostgeneral-purpose32-or64-bitarchitecturesas long as they have a paged memory management unit (PMMU)anda port of the GNU C compiler (gcc) (part of The GNU Compiler Collection, GCC).Linuxhasalsobeenportedtoanumberofarchitectureswithout a PMMU,althoughf

7、unctionality isthenobviouslysomewhat limited.SeetheClinux projectformoreinfo.6/24/20227“Linuxv在不同的语境下,“Linux具有不同的内涵,例如:vLinux内核、Linux系统或Linux开发套件等术语。v严格来说,Linux指的是LinuxTorvalds维护的及通过主要和镜像网站发布的内核。vGNU/LinuxvGNU/Linux的拥护者们认为,Linux仅仅是指Linux内核,而整个Linux系统的大局部都建立在GNU软件之上。6/24/20228vGNU,“g-noo,“GNUsNotUnix

8、6/24/20229Linux内核维护网站内核维护网站vTheLinuxKernelArchivesMirrorSystem6/24/202210Linux开展简史开展简史v1991年11月,芬兰赫尔辛基大学的学生LinusTorvalds写了个小程序,后来取名为Linux,放在互联网上。他表达了一个愿望,希望借此搞出一个操作系统的“内核来,这完全是一个偶然事件v1993,在一批高水平黑客的参与下,诞生了Linux1.0版v1994年,Linux的第一个商业发行版Slackware问世6/24/202211 v1996年,美国国家标准技术局的计算机系统实验室确认Linux版本由OpenLinu

9、x公司打包符合POSIX标准v2001年,Linux2.4版内核发布v2003年,Linux2.6版内核发布v6/24/202212Linux操作系统的主要内容操作系统的主要内容 vLinux是免费的、源代码开放的、符合POSIX标准标准的操作系统v拥有现代操作系统具有的所有内容,例如v抢占式多任务处理,支持多用户v内存保护,v支持SMP,支持TCP/IP,v支持绝大多数的32位和64位CPU等v还有一些其他操作系统没有的特色,比方vNFS,VFS,高效的EXT系列文件系统等6/24/202213Linux版本版本vLinux的内核版本v几种流行的Linux发行版本6/24/202214Lin

10、ux的内核版本的内核版本vLinux内核版本是由LinusTorvalds作为总体协调人的Linux开发小组分布在各个国家的近百位高手开发出的系统内核的版本号vLinux内核采用的是双树系统v一棵是稳定树,主要用于发行v另一棵是非稳定树或称为开发树,用于产品开发和改进vLinux内核版本号由3位数字组成第1位数字r为主版本号 第2位数字x为说明版本类型的次版本号,如果x为偶数,那么表示为产品化版本,为奇数时表示为实验版本 第3位数字y为修改号,表示错误修补的次数 6/24/202215几种流行的几种流行的Linux发行版本发行版本6/24/202216Linux系统的好处系统的好处v支持多种C

11、PUvX86,ARM,MIPS,SH,i960,PPC,etc.v开放源代码Opensourcev强大的网络功能v可移植性v使用GNUtools6/24/202217v一个新潮,非常稳定,多用户,多任务的环境v标准的平台v无法超越的计算能力,可移动性和适应性v先进的图形用户界面v几十个异常出色而且免费的桌面应用程序v成千上万个免费的工具和应用小程序v几百上千个专业程序由全世界的无数研究人员编制,覆盖了天文,信息技术,化学,物理,工程,语言,生物等各个学科领域6/24/202218v一个真正杰出的学习系统v很多顶级的系统开发平台,友好的编程语言及编程工具都免费包含在操作系统里面v病毒入侵,计算机

12、的“后门,软件提供商的“特别要求,强迫性的软件升级,专有的文件格式,软件使用许可证和市场策略,产品注册登记,高得惊人的软件价格,等等-Linux都没有vLinux操作系统平台保证它的“永久性v一个技术快速更新的平台6/24/202219第一章、绪论第一章、绪论v主要内容vLinux简介v一些预备知识v操作系统根本概念v堆栈v内核态vs用户态v虚拟内存v分析和实验验证环境vVMwarevSourceInsightv相关工具介绍:GNUTools等6/24/202220操作系统的根本概念操作系统的根本概念v任何计算机系统都包含一个根本的程序集合,称为操作系统。v内核进程管理,进程调度,进程间通讯机

13、制,内存管理,中断异常处理,文件系统,I/O系统,网络局部v其他程序例如函数库,shell程序等等v操作系统的目的v与硬件交互,管理所有的硬件资源v为用户程序应用程序提供一个良好的执行环境6/24/202221一个典型的一个典型的Linux操作系统的结构操作系统的结构用户应用程序用户应用程序System call对硬件资对硬件资源的管理源的管理Shell,libKernel implementation6/24/202222最简单也是最复杂的操作最简单也是最复杂的操作在控制台下输入在控制台下输入ls命令命令Shell程序分析输入参程序分析输入参数,确定这是数,确定这是ls命令命令调用系统调用调

14、用系统调用fork生成生成一个一个shell本身的拷贝本身的拷贝什么是系统调用?为什么我们敲击键盘就会在终端上显示?fork是什么?为什么要调用fork?中断的概念,终端控制台设备驱动的概念保护模式和实模式,内存保护,内核态用户态相关问题进程的描述,进程的创立。COW技术系统调用是怎么实现的?软中断、异常的概念。陷阱门,系统门调用调用exec系统调用将系统调用将ls的可执行文件装入内存的可执行文件装入内存内存管理模块,进程的地址空间,分页机制,文件系统从系统调用返回从系统调用返回如何做到正确的返回?堆栈的维护,存放器的保存与恢复Shell和和ls都得以执行都得以执行进程的调度,运行队列等待队列

15、的维护什么是shell?终端解释程序6/24/202223一些根本但很重要的概念一些根本但很重要的概念v堆栈v内核态vs用户态v虚拟内存6/24/202224堆栈堆栈v堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间v函数调用框架v传递参数v保存返回地址v提供局部变量空间v等等vC语言编译器对堆栈的使用有一套的规那么v了解堆栈存在的目的和编译器对堆栈使用的规那么是理解操作系统一些关键性代码的根底v以x86体系结构为例6/24/202225堆栈存放器和堆栈操作堆栈存放器和堆栈操作v堆栈相关的存放器vesp,堆栈指针stackpointervebp,基址指针basepointerv堆栈操作

16、vpush栈顶地址减少4个字节32位vpop栈顶地址增加4个字节vebp在C语言中用作记录当前函数调用基址espebp高地址低地址esp6/24/202226利用堆栈实现函数调用和返回利用堆栈实现函数调用和返回v其他关键存放器vcs:eip:总是指向下一条的指令地址v顺序执行:总是指向地址连续的下一条指令v跳转/分支:执行这样的指令的时候,cs:eip的值会根据程序需要被修改vcall:将当前cs:eip的值压入栈顶,cs:eip指向被调用函数的入口地址vret:从栈顶弹出原来保存在这里的cs:eip的值,放入cs:eip中v发生中断时?v?6/24/202227补充知识补充知识vAT&T汇编语言和Intel汇编语言vAT&T汇编语言中指令的操作数顺序与Intel相反vAT&Topcodeb+w+lsrc,destv存放器:%regv访存大小:b+w+l-8,16,32bitsv引用内存地址:section:disp(base,index,scale)v实际偏移:base+index*scale+disp缺省为缺省为0取值可以是取值可以是1,2,4,86/24/202228/ 调用者c

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

当前位置:首页 > 经济/贸易/财会 > 经济学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号