博客专栏  >  系统运维   >  Linux内核学习笔记

Linux内核学习笔记

Linux 内核学习笔记,更适合于入门级别的Linux内核学习 To Be a Linux Kernel Hacker--闫明

关注
62 已关注
53篇博文
  • Linux 内核学习(2)

    (注:转载请表明出处:http://blog.csdn.net/yming0221)持续更新中......Linux0.11内核--8086中的实模式Linux0.11内核--启动引导代码分析boot...

    2011-05-06 20:15
    4765
  • Linux 内核学习(1)

    (注:转载请表明出处:http://blog.csdn.net/yming0221)持续更新中......1.Linux 内核系统体系结构2.Linux 的进程控制块数据结构3.linux/Makef...

    2011-04-23 21:35
    7091
  • Linux 内核--任务0的调度切换

    本文分析基于Linux 0.11内核,转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/09/6533865.aspx。  main.c中在m...

    2011-06-09 13:43
    5468
  • Linux 内核--fork()函数创建进程 (续)之copy_mem(int nr, struct task_struct *p)

    本问分析基于Linux 0.11内核,转载请标明出处http://blog.csdn.net/yming0221/archive/2011/06/06/6528490.aspxcopy_mem(int...

    2011-06-06 22:03
    4421
  • Linux 内核--fork()函数创建进程

    本文分析基于Linux 0.11内核,转载请表明出处http://blog.csdn.net/yming0221/archive/2011/06/05/6527337.aspx  Linux在move...

    2011-06-05 22:24
    6092
  • Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode

    在main.c的程序中,当设备初始化完毕后,程序将从内核模式切换到用户模式,也就是所说的任务0,执行fork()函数(该函数使用内嵌的汇编,防止函数调用弄乱堆栈,造成写时复制COPY_ON_WRITE...

    2011-06-01 13:46
    6441
  • Linux 内核--硬件中断初始化及中断描述符表

    以下是硬件初始化函数void trap_init(void) { int i; set_trap_gate(0,÷_error); set_trap_gate(1,&debug); ...

    2011-05-29 22:25
    4098
  • static,inline,volatile的作用

    1、static(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件...

    2011-05-24 13:47
    6678
  • Linux0.11内核--启动代码分析setup.s 建立页目录和页表

    head.s开始pg_dir.................org 0x1000pg0: .org 0x2000pg1: .org 0x3000pg2: .org 0x4000pg3: .org 0...

    2011-05-19 22:25
    3392
  • Linux0.11内核--idt(中断描述符表的初始化)head.s分析

    head.s被编译成system模块的最前面部分,故而称为头部。这段程序处于地址的绝对0处,首先是加载各个数据段寄存器,重新设置中断描述符表 idt,共 256 项,并使各个表项均指向一个只报错误的哑...

    2011-05-17 23:17
    4532
  • Linux0.11内核--A20地址线

    1981 年 8 月,IBM 公司最初推出的个人计算机 IBM PC 使用的 CPU 是 Intel 8088。在该微机中地址线只有 20 根(A0 – A19)。在当时内存 RAM 只有几百 KB ...

    2011-05-16 12:49
    2638
  • Linux0.11内核--启动引导代码分析setup.s

    setup的整体作用:首先利用BIOS中断读取机器的数据,将其保存在地址0x9000:0x0000处,覆盖了原来bootsect.s代码所在的位置,由于bootsetc模块的代码运行完毕,已经没有其他...

    2011-05-14 19:19
    4359
  • Linux0.11内核--32位保护模式GDT(全局描述符表)

    在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型:在Rea...

    2011-05-12 17:11
    3450
  • Linux0.11内核--启动引导代码分析bootsect.s

    Linux内核中的系统启动引导代码位于/boot目录下但是,由于。Linus当时是在MINIX系统上开发Linux的,最初MINIX系统上还没有移植gas程序,因此Linus就使用了MINIX系统上的...

    2011-05-09 22:02
    6768
  • Linux0.11内核--8086中的实模式

    8086/8088CPU中寄存器为16位,16位子长的机器可以访问的最大存储地址空间为64K,但是8086/8088CPU的地址线有20根,能够寻址1M的地址空间。为了解决这种冲突,采用存储器分段的办...

    2011-05-06 20:30
    2656
  • Linux0.11内核--系统中断处理程序int 0x80实现原理

    系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。这个中断的设置在kernel/sched.c中441行函数中void sched_init(void...

    2011-05-05 22:09
    12811
  • Linux0.11内核--进程的调度(运行态(就绪态)和睡眠态之间的转换)

    当进程等待资源或者事件时,就进入睡眠状态。有两种睡眠态,不可中断睡眠态( TASK_UNINTERRUPTIBLE)和可中断睡眠态( TASK_INTERRUPTIBLE)。处于可中断睡眠态的进程...

    2011-05-04 13:12
    4180
  • Linux0.11内核--进程的调度(就绪态和运行态之间的转换)

    进程的调度linux系统中,一个进程有5种可能状态,在sched.c第19行处定义了状态的标识:#define TASK_RUNNING 0 // 正在运行或可被运行状态#define TAS...

    2011-04-29 09:08
    6411
  • Linux0.11内核--指针的指针 任务结构体

    在linux内核进程调度函数schedule()中定义了struct task_struct **p,它是指向指针的指针,由于linux内核中task数组定义如下: struct task_struc...

    2011-04-26 17:20
    3445
  • Linux0.11内核--进程的结束

    进程的结束结束一个进程,就是要释放该进程所有的结构和资源,让系统从此之后再也感觉不到它的存在。如前面所说的,一个进程的结构包括:task[]数组中一项,指向了该进程的task_struct和内核堆栈所...

    2011-04-19 22:22
    3342
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部