Linux内核参数vga=是怎样影响显示模式(4)

这里说明一点,“vga=”参数由grub处理,处理结果放在内核文件vmlinuz的头部的vidmode处。
linux启动开始,读取该值
movw %fs:(0x01fa), %ax # User selected video mode
cmpw $ASK_VGA, %ax # Bring up the menu
jz vid2
call mode_set # Set the mode
这里%fs:(0x01fa)就是引用内核映像中vidmode处
内核头部在bootsect.s中能看到
.org 497
setup_sects: .byte SETUPSECTS
root_flags: .word ROOT_RDONLY
syssize: .word SYSSIZE
swap_dev: .word SWAP_DEV
ram_size: .word RAMDISK
vid_mode: .word SVGA_MODE
root_dev: .word ROOT_DEV
boot_flag: .word 0xAA55

总结:写了这么多,估计没几个人能看懂或看完。不过,我只当是记录一下读核的一点艰辛过程。
内核代码的阅读,要花费很多的精力,翻看成千上万行代码,不停的跟踪函数调用过程。这时候,
要有一定的技巧,更要有耐心。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwxyx.html