首页 > 系统服务 > 详细

linux源码中的核心数据结构

时间:2016-02-23 19:02:07      阅读:202      评论:0      收藏:0      [点我收藏+]

进程线程

struct task_struct:

  进程,或者是线程数据结构

  struct thread_union

    内核进程结构,包括一个栈(大小为THREAD_SIZE 一般8kb)以及thread_info

  struct thread_info

    线程信息,包括一个task_struct

描述符

stuct desc_ptr:

    gdt,idt的结构

gdt:

  全局描述符表 ,一个cpu有一个;描述符可能有几种类型  段描述符,TSS描述符,LDT描述符

idt:

  中断描述符表,全系统只有一个

ldt:

  局部描述符表,属于进程内部,但不一定进程有该表

struct desc_struct:

  数据结构,gdt描述符或者是idt中断描述符,用于32位机器

struct gate_struct64:

  数据结构,描述idt中断描述符,用于64位

struct ldttss_desc64:

  数据结构,描述ldt,或者tss的描述符,用于64位

  struct tss_struct:

    tss,一个cpu使用一个tss,同个cpu上的进程使用相同的tss,在cpu_init中初始化,切换使用__switch_to函数,tss中指保留两个指针(ss0,esp0指向内核中的进程数据和栈),寄存器内容放在具体的thread_struct中。切换时候从相应内存位置载入。

 

运行过程:

  初始化:init/main.c

linux源码中的核心数据结构

原文:http://www.cnblogs.com/yasmi/p/5210553.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!