Linux第一章第二章学习笔记
第一章 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位对齐、不假定字长和页面长度由李玉移植性)
Linux第一章第二章学习笔记的更多相关文章
- Linux内核分析第二周学习笔记
linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- Linux内核分析——第二周学习笔记20135308
第二周 操作系统是如何工作的 第一节 函数调用堆栈 存储程序计算机:是所有计算机基础的框架 堆栈:计算机中基础的部分,在计算机只有机器语言.汇编语言时,就有了堆栈.堆栈机制是高级语言可以运行的基础. ...
- 三20135320赵瀚青LINUX内核分析第二周学习笔记
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.计算机的三个法宝 存储程 ...
- Linux内核分析——第二周学习笔记
20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 (一)计算机是如何工作的?(总结)——三个法宝 ①存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: ②函数调用堆栈,高 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- 《Linux内核分析》第二周学习笔记
<Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...
- Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥
1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
<细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver
1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...
- LINUX内核分析第二周学习总结——操作系统是如何工作的
LINUX内核分析第二周学习总结——操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...
随机推荐
- PHP错误提示的关闭方法详解
关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法 最简单的办法就是直接在php ...
- Linux命令——文件和目录管理
Linux命令--文件和目录管理 基本命令 命令ls 作用:显示目录下的文件和文件夹 说明:默认显示当前目录,可跟路径参数 参数:-a,显示隐藏目录 参数:-l,显示文件权限 参数:-d,显示文件最后 ...
- 如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式
如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式 首先我们来说说为何要生成sourceMap文件呢?简单的说,sourceMap是为了压缩后的代码调式提 ...
- CSS3注意点
1.background-Origin属性指定了背景图像的位置区域.content-box, padding-box,和 border-box区域内可以放置背景图像.注意:背景色是不起作用的 2.ba ...
- array_map,array_filter,array_walk区别
这几个方法都有遍历数组,操作的过程. 很容易搞混.尤其很多人养成的编程习惯都是使用foreach来循环遍历.. 就举个简单例子. $a = array( 0,1,2,3,4,5,6,7,8,9 ); ...
- Python3入门(十)——调试与测试
一.异常处理 1.try...except...finally... 这个也就是Java里的try...cath..finally...了,直接看经典代码: try: print("开始执行 ...
- 大数据入门第二十二天——spark(一)入门与安装
一.概述 1.什么是spark 从官网http://spark.apache.org/可以得知: Apache Spark™ is a fast and general engine for larg ...
- c# 淘宝运单查询
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- 20155325 Exp9 Web安全基础
本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击 ...
- VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法
原文:VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/ar ...