自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (7)
  • 收藏
  • 关注

原创 linux 进程切换(1) - 基本框架

了解进程切换流程;1.context_switch代码分析  context_switch函数用来完成具体的进程切换。代码调用流程:kernel/sched/core.c:schedule() ->__schedule(false); ->context_switch  context_switch函数分析:static inline struct rq * c...

2020-02-29 17:11:23 261

原创 linux 内存管理(11) - TLB flush

了解 TLB flush1.TLB flush API1.1.void flush_tlb_all(void);  这个接口用来invalidate TLB cache中的所有的条目,执行完毕了该接口之后,由于TLB cache中没有缓存任何的VA到PA的转换信息,因此,调用该接口API之前的所有的对page table的修改都可以被CPU感知到。注:该接口是大杀器,不要随便使用。  ...

2020-02-27 21:51:44 1375

原创 linux 内存管理(10)- phys_to_virt/virt_to_phys

了解phys_to_virt/virt_to_phys1.概述  对于提供了MMU的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。进程的4GB内存空间被人为的分为两个部分:用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。  内核空间中,从3G到vmalloc_...

2020-02-26 20:48:20 10323

原创 linux 内存管理(9) -页表实现

了解linux 页表实现1.ARM32处理器查询页表  32bit的Linux采用三级映射:PGD–>PMD–>PTE,64bit的Linux采用四级映射:PGD–>PUD–>PMD–>PTE,多了个PUD。缩写:PGD:Page Global Directory、PUD:Page Upper Directory、PMD:Page Middle Dire...

2020-02-23 20:08:57 1605 1

原创 linux 内存管理(8) —内存描述符(mm_struct)

了解进程内存描述符mm_struct1.概述  每个进程都只有一个mm_struct结构,该结构是对整个用户空间的描述。一个进程的虚拟地址空间主要由两个数据结来描述。最高层次的:mm_struct,描述一个进程的整个虚拟地址空间。较高层次的:vm_area_structs,描述虚拟地址空间的一个区间(简称虚拟区)。内存管理大致结构:2.mm_struct 结构体  task...

2020-02-23 11:05:17 4037 1

原创 Linux 内核调试(2) - Kdump

了解kdump1.Introduction  Kdump is a standard Linux mechanism to dump machine memory content on kernel crash. Kdump is based on Kexec. Kdump utilizes two kernels: system kernel and dump capture kerne...

2020-02-20 16:15:14 791

原创 linux 内核调试(1) - coredump

学习kernel 调试方法1.内核转储  内核转储(coredump)保存了进程某一时刻的运行状态,它在进程发生问题时产生,此时只要有程序的可执行文件和 coredump 即可对其进行调试,了解产生 coredump 那一刻进程的状态,从而发现问题点。通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等,在设置妥当的情况下,该coredump文件在程序出错时...

2020-02-19 18:06:20 1934

原创 linux 内存管理(6) - 页面迁移

了解页面迁移1.概述  A longtime aspect of the kernel’s memory-management subsystem is that it tends to fragment memory over time. After a system has been running for a while, finding groups of physically c...

2020-02-16 18:38:59 512

原创 Linux内存管理(7) - page fault

了解linux page fault.1.概述  A page fault (sometimes called #PF, PF or hard fault)[a] is a type of exception raised by computer hardware when a running program accesses a memory page that is not curre...

2020-02-16 18:38:10 1629

原创 Linux 等待队列

了解linux 等待队列1.概述  While writing modules there might be situations where one might have to wait for input some condition to occur before proceeding further. Tasks that need such behavior can make u...

2020-02-10 11:47:10 239

Device Tree debugging - part 3

linux device tree debugger 宝典卷三,解决Device Tree Issues。

2019-02-15

ORANGE’S:一个操作系统的实现

学习如何编写自己的操作系统,对于初学者很有帮助,值得学习。

2019-02-15

Device Tree debugging - part 2

linux device tree debugger 宝典卷二,解决Device Tree Issues。

2019-02-15

Device Tree debugging - part 1

学习linux device tree宝典,解决Device Tree Issues,有助于深刻认识DT.

2019-02-15

Practical_Binary_Analysis

ELF Format,Binary Analysis Fundamentals,Basic Binary Analysis in Linux,Disassembly and Binary Analysis Fundamentals

2019-02-15

Operating_Systems_From_0_to_1

linux ELF architecture,gdb debugger elf,x86 assembly language

2019-02-15

调试PLT/GOT代码

该代码包用于学习动态链接实现流程,便于进行调试PLT/GOT

2019-02-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除