自己项目中一直都是用的开源的xUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。最近决定研究一下xUtils的源码,用了这么久总得知道它的实现原理吧。我是先从先从BitmapUtils模块开始的。BitmapUtils和大多数图片加载框架一样,都是基于内存-文件-网络三级缓存。也就是加载图片的时候首先从内存缓存中取,如果没有再从文件缓存中取,如果文件缓存没有取到,就从网络下载图片并且加入内存和文件缓存。
这篇帖子先分析内存缓存是如何实现的。好吧开始进入正题。
基于Linux的pc启动过程
我们都知道,所有的程序软件包括操作系统都是运行在内存中的,然而我们的操作系统一般是存放在硬盘上的,当我们按下开机键的时候,此时内存中什么程序也没有,因此需要借助某种方式,将操作系统加载到内存中,而完成这项任务的就是 BIOS 。
装过系统的人一定知道BIOS这个东西,那么它究竟是什么呢?
BIOS:Basic Input/Output System(基本输入输出系统),在IBM PC兼容系统上,是一种业界标准的固件接口(来自维基百科)。有点难以理解,其实BIOS是我们电脑启动时加载的第一个程序,这个程序不是由Java语言编写也不是由C语言编写,一般是汇编程序。
BIOS程序固化在主板上的一块芯片上,是连接计算机硬件与操作系统的桥梁,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。
那么问题来了,BIOS程序