试着尽可能用图示来表示我的对内容的理解,不足之处,还望不吝指教。前端
[TOC]c++
1. cpu与指令集程序员
CPU分为运算器和控制器编程
CPU指令架构
特权指令函数
拥有管理权限,(通常状况下,只有OS才有权限运行特权指令)spa
普通指令操作系统
拥有普通功能,通常应用程序运行命令行
不一样的运算由不一样的运算器完成运算(由指令集提供运算)code
程序员:通常面向操做系统编程
图示说明:
2. 人与机器
感受没什么好解释的,一切尽在图中
图示说明:
1. OS的目的与功能
OS:Operating System
System Call
简称为:Syscall (系统调用)
OS的通用目的与功能
图示说明:
2. 编程的层次
硬件规格:hardware specifiacation
不一样厂商的硬件规格千差万别,API也各不相同,写起来极为不便;
系统调用:数量不多,可是很精巧;
库调用:library call
把底层的功能整合出来,提供成离最终目标更近的功能;对全部的计算机功能来讲,全部的功能都是经过调用实现;(一般都是c,c++库)
图示说明:
3. 指令环
由内到外依次是环0、环一、环二、环3;
环0是特权指令,通常只有操做系统有权限运行;
环一、环2出于历史缘由,没有使用;
环3是普通指令,通常应用程序使用;
特殊状况:例如:mkdir /home/test
Note:没办法直接完成,须要向内核申请权限;
图示说明:
4. 程序的运行模式
用户空间:user space(us)
内核空间:system space
图示说明:
对OS来讲:UI是用户接口、对用户来讲UI是前端;
GUI:Graphic User Interface (图形用户接口)
CLI:Command Line Interface (命令行接口)
图示说明:
ABI:Application Binary Interface(应用程序二进制接口)
描述了应用程序(或者其余类型)和操做系统之间或其余应用程序的低级接口。
API:Application Programming Interface(应用程序编程接口)
是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工做机制的细节
图示说明:
图示说明:
图示说明: