- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 基于Grub 2.00的x86内核引导流程--源代码情景分析(2)
2. 基于Grub2.00的x86内核引导流程有了磁盘简介的铺垫,现切入主题Grub 2.00内核引导源代码分析。整个分析过程基本都是一个逆向分析的过程,先介绍其用法及相关描述[1],然后分析Makefile以确定生成某个可执行文件的依赖链,从而得出其对应的源文件,最后分析源文件解析其动作。 [1]对描述中涉及到英文的部分,为保留原意不致扭曲而不做翻译。毕竟在GNU Gru
2017-08-03 22:28:24 2491
原创 基于Grub 2.00的x86内核引导流程--源代码情景分析(1)
目前Linux中使用最广泛的的bootloader是Grub(GRand Unified Bootloader)。如今Grub 2已经替换了早期的0.9x系列版本的Grub Legacy, 而且Grub Legacy已经不再开发维护。虽然Grub 2从名字上看像是Grub的升级版,但其源代码实际被完全重构了。现从源代码角度分析基于Grub 2.00的x86内核引导流程。1. 磁盘简介由于在
2017-08-03 22:20:29 1150
原创 通过GDB调试内核(Kernel)和模块(Module)
一、 需求在Linux内核开发过程中不可避免地地会面对如何调试内核的问题。比如printk() 是调试内核代码时最常用的一种技术,但是这种调试方法需要对问题产生的点有个大概的感知,这样才能有的放矢地在合适的代码处添加打印信息。但是很多情况下,我们对问题产生的原因毫无头绪,也就不可能在茫茫的代码中添加printk,这时候我们就依赖于GDB构建Linux内核调试环境。本文以Linux 4.
2017-08-03 22:07:20 6093 2
原创 基于 CentOS 7.x 的 DPDK Vhost-User 环境搭建
Ø 检查CentOS 7.x宿主机配置检查宿主机CPU是否支持虚拟化:[elvis@localhost ~]$ grep -E '(vmx|svm)'/proc/cpuinfo 一般情况下,宿主机Host为物理机器,整体Vost-user环境搭建过程已经经过验证。如果基于VMware搭建的虚拟机环境,需要注意Vmware Workstation版本!如果虚拟VCPU不支持Inte
2017-08-03 21:58:45 2316
原创 Linux动态链接库函数加载之GOT与Lazy Binding
Linux在运行与位置无关PIC(Position IndependentCode)的用户态程序并加载动态链接库时,函数符号的解析过程将涉及到全局偏移量表GOT(Global Offset Table)与Lazy Binding("懒绑定")。 在位置无关代码PIC中一般不能包含动态链接库中符号的绝对地址。当运行某个调用动态库函数符号的用户态程序时,用户态程序在编译链接阶段并不知晓该符号的
2017-08-03 21:37:56 2492
原创 Linux虚拟机安装用户指南
1. 安装virt-manageryum installvirt-manager.x86_64 yum installvirt-viewer.x86_64yum installlibvirt-devel.x86_64yum installlibvirt-python.x86_64yum installlibvirt.x86_642. 修改配置文件以便使用vnc连接,vnc_
2017-08-03 20:32:21 580
原创 Git典型工作流
1. Git中常用操作之间的关系:Git中版本的表示方法(Specifying Revisions):2. 账号设置登录GitHub打开网页https://github.com/点击右上角的链接登陆按钮”Sign in”。GitHub帐号设置登录成功后,点击右上角你的帐号“Settings“->”SSH and GPG Key
2017-08-03 20:22:39 580
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人