第一章   Linux内核简介

一、Unix的历史

1、Unix系统成为一个强大、健壮和稳定的操作系统的根本原因:

(1)简洁

(2)在Unix中,很多东西都被当做文件对待。这种抽象使对数据和对设备的操作都是通过一套相同的系统调用借口来进行的:open(),read(),write(),lseek()和close()。

(3)Unix的内核和相关的系统工具软件是用C语言编写而成。(移植能力)

(4)进程创建非常迅速,并且有一个非常独特的fork()系统调用。

(5)Unix提供了一套非常简单但又很稳定的进程间通信原语。

2、Unix已经发展成为一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统。

二、操作系统和内核简介

1、操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。包括:

(1)内核

(2)设备驱动程序

(3)启动引导程序

(4)命令行shell或者其他种类的用户界面

(5)基本的文件管理工具和系统工具

2、内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。

3、在系统中运行的应用程序通过系统调用来与内核通信。

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

5、处理器的活动必然其下三者之一:

(1)运行于用户空间,执行用户进程。

(2)运行于内核空间,处于进程上下文,代表某个特定的进程执行。

(3)运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。

三、Linux内核与传统Unix内核的比较

1、操作系统内核可以分为两大阵营:单内核和微内核(第三阵营是外内核,主要用在科研系统中)。

2、内核可以直接调用函数。

3、Linux是一个单内核。

四、Linux内核版本

Linux内核有两种,稳定的和处于开发中的。

从副版本号如果是偶数,就是稳定版,如果是奇数,就是开发版。

Linux内核分析——第一章 Linux内核简介的更多相关文章

  1. Linux内核分析——第二章 从内核出发

    第二章 从内核出发 一.获取内核源码 1.Git是分布式的:下载和管理Linux内核源代码: 2.获取最新提交到版本树的一个副本 $ git clone git://git.kernel.org/pu ...

  2. Linux网络服务第一章Linux网络基础设置

    1.笔记 systenctl restart network:重启网卡网络服务 bash:刷新主机名称 netstat:查看网络状态 route -n:不做地址解析 mii-tool eno16777 ...

  3. Linux内核分析第一二章读书笔记

    linux读书笔记(1,2章) 标签(空格分隔): 20135328陈都 第一章 Linux内核简介 Unix的历史 Unix 虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统中最强大和最 ...

  4. Linux内核分析(二)----内核模块简介|简单内核模块实现

    原文:Linux内核分析(二)----内核模块简介|简单内核模块实现 Linux内核分析(二) 昨天我们开始了内核的分析,网上有很多人是用用源码直接分析,这样造成的问题是,大家觉得很枯燥很难理解,从某 ...

  5. Linux内核分析 一二章读书笔记

    第一章 Linux内核简介 1.Unix (1)Unix系统很简洁 (2)在Unix中,所以东西都被当作文件对待,通过一套相同的系统调用接口来进行:open(),read(),write(),lsee ...

  6. LINUX内核分析第一周学习总结——计算机是如何工作的

    LINUX内核分析第一周学习总结——计算机是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/ ...

  7. linux内核分析第一周学习笔记

    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  8. Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程

    Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的 ...

  9. 核心系统命令实战 第一章Linux命令行简介

    第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout  快捷键:Ctrl+d 1.1.2 Li ...

随机推荐

  1. Alpha课堂展示(麻瓜制造者)

    目录 成员简介 演示动态图 预期用户量 演示动态图 目标用户视频 分工协作 项目管理 质量控制 团队角色与具体贡献 用户反馈 成员简介 刘双玉 http://www.cnblogs.com/liu42 ...

  2. jquery1.9 下检测浏览器类型和版本的方法

    Jquery1.9版本中$.browser已被剔除: 判断浏览器类型: 复制代码 代码如下: $.browser.mozilla = /firefox/.test(navigator.userAgen ...

  3. BZOJ1941:[SDOI2010]Hide and Seek(K-D Tree)

    Description 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他决定和他的好朋友giPi(鸡皮)玩一个更加寂寞的游戏- ...

  4. C# ActiveX 网页打包验证自动升级

    原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考——BT90 ...

  5. php面试流程

  6. pytorch代码资源

    pytorch版本的faster和fpn https://github.com/jwyang/faster-rcnn.pytorch https://github.com/jwyang/fpn.pyt ...

  7. DataGridView如何绑定DataRow对象集合

    DataGridView对象是我们在进行Winform程序开发中经常使用的呈现数据的控件,而数据则是通过DataSource这个Property来设置的.根据MSDN的说明,DataGridView对 ...

  8. SQL 登录名 用户 角色

    参考博客:http://www.cnblogs.com/ChineseMoonGod/p/5860449.html,非常感谢博主的知识分享. 1.创建一个登录名,完全操作数据库权限,步骤为:创建登录名 ...

  9. JAVA调用FTP上传文件

    import java.io.File; import java.io.FileInputStream; import org.apache.commons.net.ftp.FTP; import o ...

  10. Java基础系列篇:JAVA多线程 并发编程

    一:为什么要用多线程: 我相信所有的东西都是以实际使用价值而去学习的,没有实际价值的学习,学了没用,没用就不会学的好. 多线程也是一样,以前学习java并没有觉得多线程有多了不起,不用多线程我一样可以 ...