一、Linux历史

Unix强大的根本原因:

1、简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目的

2、文件对待所有东西,通过一套相同的系统调用接口来进行对数据和设备的操作

3、由于用C语言编写,移植性强

4、进程创建非常迅速,使用fork()系统调用。

5、进程间通信元语,进程间通信机制

二、Linux简介

Linux是类Unix系统,Linux内核是公开软件,Linux用途广泛。

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

三、操作系统和内核简介

内核:管理者,操作系统的核心

通常一个内核由负责响应中断的中断服务程序和网络、进程间通信等系统服务共同组成。

提供保护机制的现代系统:内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。内核空间:系统态与被保护的内存空间。

应用程序在用户空间执行,只允许使用部分系统资源和特定系统功能,不能直接访问硬件,不能访问内核划给别人的内存范围。

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

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

四、Linux内核和传统Unix内核比较

Unix内核通常需要硬件系统提供页机制管理内存;初期的Linux系统也需要MMU,有的特殊版本不依赖。

单内核与微内核设计之比较

单内核:

整体上作为一个单独的大过程,运行在一个单独的地址空间。

内核直接调用函数。

Linux是单内核。

微内核:

划分为多个独立过程(服务器),需特权服务的服务器运行在特权模式下,其他运行在用户空间。

通过消息传递处理通信。

IPC机制的开销多于函数调用。

消息传递需要一定的周期。

实际基于微内核的系统都让大部分或全部服务器位于内核。

最新文章

  1. 2748: [HAOI2012]音量调节 bzoj
  2. iOS开发 沙盒路径和使用
  3. PostgreSQL avg()函数
  4. ASP.Net页面刷新后自动滚动到原来位置
  5. IOCP I/O完成端口(了解)
  6. hdu 4414 Finding crosses
  7. js key事件 keyCode大全
  8. Google DNS劫持背后的技术分析
  9. IO-02
  10. muduo简化(1):Reactor的关键结构
  11. Saltstack的部署及其详解
  12. Thinkjs学习1—概述及MVC的粗略理解
  13. iOS之创建一个常驻线程
  14. Java常用排序算法
  15. Silverlight界面设计
  16. css 1) calc() 函数的使用. 2)box-sizing:border-box
  17. 机器学习实战(Machine Learning in Action)学习笔记————08.使用FPgrowth算法来高效发现频繁项集
  18. 阿里云免费SSL证书绑定+sever2012 IIS配置
  19. ios的一些经验记录1
  20. 一点二次插值、二点二次插值 ,matlab

热门文章

  1. T4学习- 4、Kalman Studio-T4代码生成器
  2. Programming Assignment 3: Pattern Recognition
  3. 阿里八八Alpha阶段Scrum(7/12)
  4. PyQt5---firstwindow
  5. DFS的运用(二分图判定、无向图的割顶和桥,双连通分量,有向图的强连通分量)
  6. http的长连接和短连接(数据库也一样)
  7. linux 的常用命令---------第九阶段
  8. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-1-cli
  9. pytorch GPU的程序kill后未释放内存
  10. ubuntu系统中Qt creator 编辑和应用使用中文输入法