android,ios,web,windows,macOS,linux系统架构
一.android系统架构
1.应用层(Applications)
系统应用,浏览器应用,微信等
2.核心层(Core)
1>.框架(Application Framework)
- 组件管理服务(Activity Manager),窗口管理服务(Window Manager),系统数据源组件(Content Manager),控件框架(View System),资源管理(Resource Manager),安装包管理(Package Manager)
2>.大量类库(Libraries)和运行时(Runtime)
- 大量类库:libc,OpenGL,FreeType,Webkit,SQLite,SSL,SGL等
- 运行时:Java核心类库,虚拟机
3.操作系统层(Operating System)
1>.硬件抽象(Hardware Abstract):
音视频接口,通话接口,GPS接口,WiFi接口等
2>.Linux系统内核(Linux Kernel):
进程线程,驱动,电源管理,内存管理等
二.ios系统架构
1.应用框架层(Cocoa Touch layer)也叫开发层
- 基础组件(Foundation),界面组件(UIKit),数据组件(Core Data)
多点触控事件(Multi-TouchEvents),多点触控控制(Multi-Touch Controls),像机(Camera),相册(Image Picker),浏览器(Web Views),传感器(CoreMotion)等
2.媒体层(Medialayer)其实就是各种应用库
OpenGL,OpenGL ES,JPG-PNG-TIFF,PDF,Core Audio,Audio Recording,Audio Mixing,Video Playback,Core Animation,Quartz等
3.核心服务层(Core Services layer)其实就是各种核心库
Collections,Address Book,Networking,File Access,SQLite,Core Location,Net Services,Threading,Preferences,URLUtilities
4.核心操作系统层(CoreOS layer)
OS X Kernel,Mach 3.0,BSD,SocketsPower,Mgmt,File System,Keychain,Certificates,Security,Bonjour
三.web系统架构
1.用户界面层(User Interface)
- 用户输入:在浏览器地址栏输入 URL
URL解析:解析URL的主机,端口,路径,协议
DNS查找:通过DNS服务器查找主机名(域名)对应的真实IP地址(一个ip要配一个服务器来执行相关的解析)
套接字连接:本地设备和真实IP对应的服务器建立连接。
HTTP 请求ーー向服务器发送 HTTP 请求,并指定协议。
服务器处理ーー服务器评估请求,确定处理插件(例如 PHP、 Java)。
通过插件处理ーー访问数据库或其他资源作为 HTTP 响应的一部分。
响应浏览器ーー将 HTTP 响应发送回浏览器。
2.浏览器引擎层(Browser Engine)
- 响应分析ーー浏览器从响应中分析 HTML 数据。
DOM 树创建ーー从解析的 HTML 构建文档对象模型(DOM)树。
样式表解析ーー解析样式表,将呈现数据链接到 DOM 节点。
JavaScript 执行ーー执行 JavaScript 代码,修改 DOM 。
3.渲染引擎层(Rendering Engine)
- 生成渲染树ーー使用 DOM 和样式数据生成
页面渲染ーー不同的浏览器app使用不同的排版引擎排列生成渲染页面树
4.操作系统层(CoreOS layer)
- 输出屏幕ーー使用操作系统提供的接口输出屏幕等设备
四.window系统架构
1.用户模式层(user mode)
- 应用程序exe
- 子系序库和用户动态库
- Native API(ntdll.dll也就是访问内核的接口)
2.内核模式层(Kernel Mode)
- windows子系统,执行体API(ntoskrnl.exe也就是提供给用户层Native API使用的服务),各种对象的管理器,对象管理器控制,微内核,驱动
3.硬件层(hardware)
硬件抽象层,设备
五.macOS系统架构
1.应用层(app layer)
浏览器,地图,苹果商店等
2.应用框架层(Cocoa)
基础组件(Foundation),界面组件(Application kit),数据组件(Core Data)等
3.核心框架层(Core Services layer)
CoreFoundation,OpenGL等
4.Darwin达尔文底层(CoreOS Darwin)
- 用户态和内核态转换层(System utilities也就是提供给用户层的接口)
- 伯克利软件套件(BSD):
处理模型,基本安全策略,POSIX API,BSD风格的系统调用,TCP/IP协议栈,BSD套接字,防火墙,VFS和文件系统,System V IPC,加密框架,各种同步机制 - 微内核(Mach):
I/O Kit,Drivers
5.硬件层(hardware)
平台支持,开放固件,硬件
六.Linux系统架构
1.应用层(Application)
各种可以执行的文件(linux是通过权限确认文件是否可执行,一般应用会以.exe结尾)
2.标准库层(Library Routine)
访问内核的接口
3.内核层(Kernel)
虚拟文件,内存管理,进程管理,抽象网络服务,
4.硬件驱动层(Hardware Drive)
提供设备访问的接口
5.硬件层(Hardware)
各种硬件设备