第2章_计算机软件基础_Linux简介详解.ppt
文本预览下载声明
* * * * LINUX的组成 内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。 SHELL: Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。 文件系统: Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前许多文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。 实用工具:标准的Linux系统都有一整套称为应用程序的实用程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 POSIX标准 UNIX发展过程中,出现了许多变种(BSD, System V等)。为统一标准,出现了POSIX系列标准,它定义了一套标准的操作系统接口和工具。POSIX(Portable Operating System Interface,可移植操作系统界面)。 从理论上说,POSIX标准代码很容易移植到任何遵守POSIX的操作系统中。今天,几乎所有的正式操作系统都以支持POSIX标准为目标。 1.6.2 Linux的结构特征 应用软件及上层用户 系统调用 硬件基础 文件系统 内存管理 进程管理 缓存 块设备 字符设备 整体结构 结构特征 Linux内核基本采用模块结构,单内核模式,这使得系统具有很高的运行效率,但系统的可扩展性和可移植性受到一定影响。为了解决这个问题,Linux使用了附加模块(modules,也称模组)技术,可以方便地在内核中添加新的组件或卸载不再需要的内核组件,而且这种装载和卸载可以动态进行,即在系统运行过程中完成,而不需重新启动系统。 模组技术的实现可采用make命令。 Linux内核结构 内核源程序目录结构 内核源程序代码安装在/usr/src/linux目录下 Documentation:文档 arch:体系结构相关的代码 Drivers:外围设备的软件驱动程序 Fs:Linux支持的所有文件系统 include:这个目录包含了Linux源程序树中大部分的C语言包含(.h)文件。 init:这个目录下面的两个文件中比较重要的一个是main.c,它包含了大部分协调内核初始化的代码 ipc:这个目录包含核心的进程间通讯的代码 Modules :只是一个用来存放建立好的模块的目录 Kernel:Linux中最重要的部分,实现平台独立的基本功能。这部分内容包括进程调度(kernel/sched.c)以及创建和撤销进程的代码(kernel/fork.c和kernel/exit.c) Lib:目录包含两部分的内容。lib/inflate.c中的函数能够在系统启动时展开经过压缩的内核。lib目录下剩余的其它文件实现一个标准C库的有用子集 mm:该目录包含了体系结构无关的内存管理代码 net:这个目录包含了Linux应用的网络协议代码 scripts:该目录包含了用来配置内核的脚本 各部分功能 系统调用是核心向用户的提供的接口,也是从用户切换到内核的唯一显式途径。 进程管理和文件系统是Linux核心的两大部分。 内存管理为进程提供运行的空间(虚拟空间),是进程管理的一部分。 文件系统用来组织和管理信息,并提供外设的文件化抽象。 文件系统与进程管理之间相互联系,主要通过文件的打开动作来完成。 进程管理 kernel目录 Sched.c:调度程序,schedule函数 进程控制:fork.c(do_fork()) exit.c signal.c 模块化:module.c ksyms.c 其它:time.c panic.c resource.c sys.c dma.c sysctl.c softirq.c itimer.c 核心代码核心流程阅读 内存管理 mm目录 分页和置换 swap.c处理命令swap swap_state.c置换高速缓存 swapfile.c置换设备的管理 Vmscan.c分页(kswapd找置换页的守护进程) 分配和释放 kmalloc.c内核空间的分配和释放 page_alloc.c分配页面 vmalloc.c虚拟空间的分配、释放vmalloc,vremap,vfree 内存映射 filemap.c实现常规文件的映射 mmap.c:do_mmap,do_munmap,sys_brk fs目录及文件系统 exec.c二进制文件格式(Exec) devices.c设备注册,取消注册(open,release) block_dev.c读写块设备的缺省方法 super.c与超级块有关,定义VFS统一接口 inode.c高速缓冲的实现,读写inode例程等 dcache.c目录的高缓实现 namei.c依据名字找到索引节点号 file_table.
显示全部