您的位置:首页 > 运维架构 > Linux

Linux第一章第二章学习笔记

2016-03-15 19:44 375 查看
第一章 Linux内核简介

1、1 Unix的历史

它是现存操作系统中最强大最优秀的系统。

设计简洁,在发布时提供原代码。

所有东西都被当做文件对待。

Unix的内核和其他相关软件是用C语言编写而成的。

Unix的进程创建非常迅速,有一个frok()系统调用。

提供简洁稳定的进程间的通信元语。

1、2 Linux简介

Linux系统的基础是内核、C库、工具集和系统的基本工具,Linux主要指内核。

1、3 操作系统和内核简介

操作系统指:内核、设备驱动程序、启动引导程序、命令行shell、用户界面、基本的文件管理工具和设备工具。

内核:操作系统的管理者和操作系统的核心。一般处于系统态,拥有被保护的内存空间和访问硬件所受的权限,统称为内核空间。

当内核运行时,系统以内核态进入内核空间执行,而执行普通用户时,系统以用户态进入用户空间进行执行。

应用程序通过系统调用与内核通信,应用程序调用库函数,库函数调用系统界面,让内核代其完成不同任务。

内核三个特点:运行于用户空间,执行用户进程;运行于内核空间,进行进程执行;运行于内核空间,处理特定中断。

应用程序完成其工作的基本行为方式:应用程序通过系统调用界面陷入内核

1、4 单内核与微内核

单内核运行在一个单独的地址空间上。内核通常以单个静态二进制文件的形式存放在磁盘中。内核间通信、内核调用函数等与用户空间应用程序无异。

微内核的功能被划分为多个独立过程,每个过程称为服务器。微内核通信通过消息传递处理,即采用了进程间通信机制(IPM)。

1、5 内核的版本

Linux内核有两种:稳定的和处于开发中的。如果数字为偶数,即是稳定版内核;若是奇数,则是开发版内核。



第二章 从内核出发

2、1 内核源码树





2、2 编译内核

1、配置内核:

make config:逐一遍历所有配置项

make defconfig:容易找到内核项,并直接修改它

make oldconfig:编译内核之前都应该这样做

$zcat/proc/config.gz>.config $make oldconfig 复制配置文件并编译新内核

2、减少编译垃圾信息:

$make >../dev/null

2、3 衍生多个编译作业:

$make -jn 衍生多个作业,n是作业数。

每个处理器一般衍生出一两个作业,16核可输入:$make -j32 >/dev/null

安装新内核 make modules_install

2、4 内核开发的特点

内核编程时既不能访问C库,也不能访问标准的C开头的文件(包含<linux/string.h>头文件就可以使用)

内核编程时必须使用GUN C(gcc是多种GUN编译器的集合,在偏近体系结构的底层或对执行时间严格的时候一般用汇编语言,内核其他大部分代码用C语言编写。)

内核编程时缺乏保护机制(内核中的内存不分页)

内核编程时难以执行浮点计算

内核给每个进程一个很小的定长的堆栈(容积小固定的栈)

同步和并发(内核容易产生竞争条件,许多特性要求共享数据,需要同步机制保证不出现竞争条件)

可移植性的重要性(保持字节、64位对齐、不假定字长和页面长度由李玉移植性)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: