当前位置:文档之家› linux内核简介

linux内核简介

linux 2.22
2014年11月11日8时41分
头文件
头文件提供对常数的定义和对系统及库函
数调用的声明。 C语言的头文件一般在/usr/include及其下 级目录下,如/usr/include/sys和 /usr/include/linux子目录中。 使用gcc –I ―目录”来引用保存在非标准 位置的头文件。 如:gcc -I /usr/openwin/include fred.c
linux
2.10
2014年11月11日8时41分
shell简介
shell :提供用户命令界 面,解释执行用户命令
shell
系统调用 :为用户态程
序提供内核功能的接口
内核
硬件
内核 :对硬件进行管理和
抽象
linux
2.11
2014年11月11日8时41分
常用的shell
Bourne shell
linux 2.4 2014年11月11日8时41分
Linux内核目录结构
kernel:主要的核心代码,此目录下的文件实现了大多数linux系统


的内核函数,其中最重要的文件当属sched.c;同样,和体系结构相 关的代码在arch/*/kernel中。 drivers:放置系统所有的设备驱动程序;每种驱动程序又各占用一个 子目录:如,/block下为块设备驱动程序,比如ide(ide.c)。设备 初始化程序在drivers/block/genhd.c中的device_setup()。 lib:放置核心的库代码。 net:核心与网络相关的代码。 ipc:这个目录包含核心的进程间通讯的代码。 fs:所有的文件系统代码和各种类型的文件操作代码,它的每一个子 目录支持一个文件系统,例如fat和ext2; scripts, 此目录包含用于配置核心的脚本文件等。 一般,在每个目录下,都有一个.depend文件和一个Makefile文 件,这两个文件都是编译时使用的辅助文件,仔细阅读这两个文件对 弄清各个文件这间的联系和依托关系很有帮助;而且,在有的目录下 还有Readme文件,它是对该目录下的文件的一些说明,同样有利于 对内核源码的理解。
配置内核
cd linux make mrproper make menuconfig //清除目录下配置文件和中间文件 //配置内核
编译内核
make dep //对内核源代码文件的依赖性和完整性进行检查 make clean //清楚目标文件,使有关文件处于最新版 make zImage //编译产生压缩形式的内核文件
AT&T shell Linux与之对应的是bash C shell Berkeley shell Linux与之对应的是tcsh Korn shell Linux与之对应的是pdksh
linux
2.12
2014年11月11日8时41分
shell启动
/etc/passwd记录每一个用户的shell程序
类型long long int 许多C语言支持属性描述符,如 “aligned‖,“packed‖等。由于这些在 ANSI C中不是保留字,所以可能引起冲突 。GNU C支持在前后加上“__‖来区分。 如“__inline__‖等于保留字“inline‖。
linux
2.20
2014年11月11日8时41分
Linux系统的启动过程大致可分成以下几个阶段: 硬件检测(自检); 1. 由BIOS加载操作系统引导装入程序; 2. 由操作系统引导装入程序加载操作系统内核; 3. 内核代码解压缩; 4. 内核初始化; 5. 生成init进程; 6. 系统初始化,shell命令文本的执行; 7. 生成各终端进程; 用户登录。
利用如下的命令可编译生成可执行文件:
$为操作系
统提示符
$ gcc -o mypro1 mypro1.c 生成了mypro1可执行文件,运行这个程序输入 $ ./mypro1 Hello world! 如果没有-o选项,则生成a.out执行文件 $ gcc mypro1.c $ ./a.out
程序扩展名
.c —c语言源程序
.C .cc .cxx —c++语言源程序
—汇编语言源程序 .h —头文件 .o —目标文件(可执行文件) .a .so .sa —库文件
.s .S
linux
2.21
2014年11月11日8时41分
hello
mypro1.c文件:
#include <stdio.h> int main() { printf(―hello world!\n‖); }
Linux操作系统层次结构
linux
2.1
2014年11月11日8时41分
Linux内核
Linux内核,它实现进程管理、内存管理、文件
系统、设备驱动和网络系统等功能。Linux Kernel由五个主要的子系统组成:进程调度( SCHED)、内存管理(MM)、虚拟文件系统( VFS)、网络接口(NET)、内部进程通讯( IPC) 从结构上看,Linux所有的内核系统功能都包含 在一个大型的内核软件之中。Linux系统也支持 可动态装载和卸载的模块。利用这些模块,可以 方便地在内核中添加新的组件或卸载不再需要的 内核组件。
如果不存在,则执行.bash_login;
如果.bash_login也不存在,则执行.profile文件。 然后bash将作为一个交互式shell执行.bashrc文件(如果存在
的话)
linux
TERM:终端类型 /etc/bashrc :整个系统的别名和功能; /etc/profile 整个系统的环境参数和启动程序; HOME/.bashrc:用户的的别名和功能; HOME/.bash_profile:用户的环境参数和启动程序 HOME/. profile:用户登录环境配置文件(Bourne shell的)
root:x:0:0:root:/root:/bin/bash
[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]
例:/bin/bash的启动
继承getty设置的TERM、PATH等环境变量 首先寻找/etc/profile脚本文件,并执行它。 然后在家目录下寻找启动脚本文件.bash_profile,执行它;
shell脚本,p.44
shell变量,p.45 shell控制流:test,if,case,while,
until,for shell函数 shell程序的编写和执行,参考资料: 教材 2.3 shell 编程 p.44-56 linux的使用.pdf中的2.6节
linux 2.18 2014年11月11日8时41分
linux 2.2 2014年11月11日8时41分
Linux内核目录结构
Linux内核源程序安装在/usr/src/linux下
linux
arch
drivers ... block char lib fs kernel ipc init ext2 fat froc include
alpha
i386 m86k
net modules mm
kernel mm
...
linux
2.3
2014年11月11日8时41分
Linux内核目录结构
arch:该子目录包括了所有和体系结构相关的内核代码
。它的每一个子目录都代表一种支持的体系结构,例如 i386就是关于intel cpu及与之相兼容体系结构的子目录。 PC机一般都基于此目录。 Include: 该子包括编译内核所需要的大部分头文件。与 平台无关的头文件在include/linux 子目录下,与intel cpu相关的头文件在include/asm-i386子目录下,而 include/scsi目录则是有关scsi设备的头文件目录。 init:该子目录包含内核的初始化代码,包含两个文件 main.c和Version.c。 mm:该子目录包括所有独立于cpu体系结构的内存管理 代码,如页式存储管理内存的分配和释放等;而和 体系 结构相关的内存管理代码则位于arch/*/mm/,例如 arch/i386/mm/Fault.c
linux 2.6 2014年11月11日8时41分
重新编译Linux内核
配置启动文件
cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-2.4.18 cp /usr/src/linux/System.map /boot/System.map-2.4.18 ln –sf /boot/System.map-2.4.18 /boot/System.map /* 内核符号表 */
2.5 2014年11月11日8时41分
linux
重新编译Linux内核
下载内核源代码
mv linux-2.4.18.tar.gz /usr/src/. //把内核代码文件移到相应的目 录 cd /usr/src tar zxvf linux-2.4.18.tar.gz //解压 bzip2 –dc linux-2.6.14.tar.bz2 | tar xvf -
进程信息 /proc/self 是当前进程目录的符号链接。 status文件包含PCB中的许多状态信息。用命令查看: cat /proc/self/ status /proc/<pid>/下文件、目录的意义在表1-3中列出。p.13
linux
2.9
2014年11月11日8时41分
Linux系统启动
linux
2.8
2014年11月11日8时41分
查看Linux内核状况
系统信息 procinfo命令显示大量的系统信息 p.10 /proc下文件、目录的意义在表1-1、1-2中列出。p.11-12 /proc/sys目录是一个特殊目录,支持直接使用文件系的写 操作,可以更改一些系统配置, 如:/proc/sys/fs/filemax
相关主题