Ten Years

十年一剑!
-------------------------------------------------
Operating System Research / Technique

Friday, October 06, 2006

(Note)FreeVGA: Architecture Independent Video Graphis Initialization for LinuxBIOS


Li-Ta Lo et al

LinuxBIOS广泛使用于集群计算的应用,当前它也受到网络设备、桌面和虚拟应用开发者的关注。网络设备、桌面和虚拟应用需要支持多种多样的VGA硬件设备,而LinuxBIOS并不支持多样的VGA硬件。为解决该问题,本文提出了一个处于LinuxBIOS和VGA BIOS之间的兼容层,以来模拟VGA BIOS运行时需要的环境。该兼容层是以x86emu为基础的x86模拟器。


使用非传统方法初始化VGA显卡的方法:


SVGLib:一个提供支持老款VGA显卡通用接口的库。使用x86处理器的vm86模式来执行VGA BIOS,vm86模式下运行32位的程序没异样,但运行16位的代码时它就像是运行在传统8086CPU上。缺点是不可移植,难以调试。[http://www.svgalib.org/]



ADLO:在LinuxBIOS中增加一个BOCH BIOS,LinuxBIOS加载BOCH BIOS和VGA BIOS,并跳到BOCH BIOS执行,BOCH BIOS提供传统BIOS的环境并执行VGA BIOS。缺点是难以调试。[Adam Agnew, Adam Sulmicki, Ronald minnich, Willian Arbaugh. Flexibility in ROM: A stackable open source bios. In 2003 USENIX Annual Techinical Conference]



VIA/EPIA Port:实现一个跳板(trampoline)以在16位和32位模式之间切换,运行VGA BIOS直接在16位模式运行,但使用32位C代码来模拟标准的BIOS回调功能。缺点是不可移植,难以调试。



XFree86:为了支持多体系结构(但使用的仍是x86的显卡),在LinuxBIOS中加入一个x86模拟器x86emu,将VGA BIOS rom中的代码拷到内存有x86的模拟器执行。缺点是VGA硬件的初始化比较晚。[http://www.xfree86.com/]



FreeVGA:和XFree86类似,但对硬件的初始化比较早,并且使用以x86emu为基础的x86模拟器。



相关文章:
AMD. BIOS and Kernel Developer's Guide forAMD Athlon 64 and AMD OpteronProcessors, May 2003.
Richard F. Ferraro. Programmer's Guide to theEGA, VGA, and Super VGA Cards. AddisonWesley,1994.
Ron Minnich, James Hendricks, and Dale Webster.The Linux BIOS. In Proceedings of theFourth AnnualLinux Showcase and Conference, Atlanta, GA,October 2000.
Gregory R. Watson, Matthew J. Sottile, Ronald G.Minnich, Erik A. Hendriks, and Sung-EunChoi.Pink: A 1024-node single-system image linux cluster.In Proceedings of HPC Asia2004, Toyko,Japan, July 2004.



Post a Comment

1 Comments:

Post a Comment

<< Home