• Android 系统图形栈(二):OpenGL ES 库和 EGL 库加载过程

    1. OpenGL ES 和 OpenGL ES 库的区别 OpenGL ES : 它本身只是一个协议规范,定义了一套可以供上层应用程序进行调用的 API,它抽象了 GPU 的功能,使应用开发者不必关心底层的 GPU 类型和具体实现。 OpenGL ES 库:OpenGL ES...


  • Android 系统图形栈(一): OpenGL ES 和 EGL 介绍

    OpenGL ES 什么是 OpenGL ES? OpenGL ES(OpenGL for Embedded Systems)是 OpenGL 三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,各显卡制造商和系统制造商来实现这组 API。1 OpenGL 基本概念 因为 OpenGL ES 是 OpenGL...


  • Linux I/O 模型详解

    Linux I/O 模型 在 Linux/Unix 系统环境下进行 I/O 编程时,我们经常会遇到这些似懂非懂的名词: Synchronous I/O Asynchronous I/O Blocking I/O Non-blocking I/O 首先,这里讲的 I/O 指的是用户空间的 I/O,并且主要侧重于网络编程中的...


  • Linux 内核加载启动过程分析

    本文是基于 Linux Kernel 4.4.49 版本内核源码中的 x86 32 位体系结构进行分析。 BIOS 传统模式下的 X86 PC 启动过程 什么是 BIOS? 简单来说 BIOS 也是一段程序代码,但是它比较特殊,它是 CPU 启动后执行的第一段代码,存储在...


  • ramfs, tmpfs, rootfs, initramfs的区别

    什么是文件系统? 如果你接触过Linux系统中的文件系统,相信你对下面这些名词肯定不会陌生,例如:ext2, ext3, ext4, FAT, FAT32, tmpfs, rootfs, NTFS, YAFFS, sysfs, procfs 等等。俺滴神啊,怎么会有这么多不同类型的文件系统啊,那么文件系统到底是个什么东西呢? 下面是引用自Wikipedia上关于文件系统的介绍: 在计算机系统中,文件系统(file system)是一种存储和组织数据的一种方法,它使得对数据发访问和查找变得更加容易。 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理存储设备所用的数据块的概念,用户使用文件系统来保存数据而不必关系数据实际保存在物理存储设备的地址为多少的数据块中,用户只需要记住这个文件的所属目录和文件名即可。在写入数据之前,用户也不必关心硬盘上哪个数据块没有被使用,所有的物理存储设备的存储空间的分配和释放功能都是由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。 文件系统可以用来在不同的物理存储介质上存储和组织数据,通常最常见的物理存储设备是硬盘,光盘以及Flash,磁带等等。但是,在某些情况下文件系统也可以使用内存(random-access memory,RAM)作为文件的存储介质,例如tmpfs,当文件存储在这种存储介质上时,一旦计算机掉电之后,该介质上面的所有文件就都消失了。甚至有的文件系统可能根本没有对应的文件,例如如proc文件系统。 什么是...