博客专栏  >  运维   >  linux内核初探

linux内核初探

详细介绍本人对linux内核的理解

关注
3 已关注
16篇博文
  • 写文件的流程

    许多文件系统都是通过generic_file_write()函数来实现文件对象的write方法,即write(库函数)->sys_write()->generic_file_write(): ssi...

    2014-06-15 16:37
    1087
  • 文件读写的理论

    为了提高效率,稍微复杂一些的操作系统对文件的读写都是带缓冲的,Linux当然也不例外。所谓缓冲,就是操作系统为最近刚读写的文件内容在内核保留一份副本,以便当再次需要已经缓冲存储在副本中的内容时就不必再...

    2014-06-14 11:17
    1062
  • brk系统调用实现分析

    brk(addr)直接修改堆的大小。addr指定current->mm->brk的新值,返回值是线性区新的结束地址,这是一个系统调用。当用户态的进程调用brk()系统调用时,内核执行sys_brk(a...

    2014-06-10 10:02
    1601
  • Linux内核之内存管理(4)--缺页处理程序

    缺页处理程序//下面函数将一页内存页面映射到指定线性地址处,它返回页面的物理地址 //把一物理内存页面映射到线性地址空间指定处或者说把线性地址空间指定地址address处的页面映射到主内存区页面pag...

    2014-05-27 09:49
    1132
  • linux-0.12内核之内存管理(1)

    1.内存分页管理机制 内存分页管理是通过页目录表和内存页表所组成的二级表组成的,其中页目录表和页表的结构是一样的,表项结构也相同。页目录表中的每个表项(4B)来寻址一个页表,而每个页表项(4B)来指...

    2014-05-26 11:15
    1048
  • Linux0.12内核之内存管理(3)

    本系列的第三篇文章主要来介绍与共享物理页面相关的两个函数。 //在发生缺页异常的时,首先看看能否与运行同一个文件的其他进程进行页面共享处理。该函数首先判断系统中是否有另外进程也在运行与当前进程一样的...

    2014-05-27 09:22
    906
  • Linux0.12内核之内存管理(2)

    本文主要介绍Linux0.12内核memory.c中的函数 1.void free_page(unsigned long addr) //释放物理地址addr处的一页内存。用于free_page_ta...

    2014-05-26 20:43
    913
  • bootloader实现

    上篇文章我们完成了一个简单的bootloader,与其说是bootloader,不如说是boot,本篇我们完成loader部分功能.loader部分是在boot部分基础上,通过到约定好的启动盘位置上读...

    2014-05-09 11:04
    1160
  • 80x86保护模式下IDT和中断调用过程分析

    1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来。与GDT和LDT类似,IDT也是由8字节长度的描述符组成。IDT空描述符的存在标志位必须是0。IDT表可以驻留在线性地址空...

    2014-05-11 10:02
    1331
  • linux0.12内核的内存组织和进程结构

    进程结构 Linux0.12中的每个进程都有如下的结构: 在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。 在task数组中占有一项,指向一页物理内存,该...

    2014-05-24 10:26
    1212
  • linux系统调用原理分析

    写这篇文章是看到一个as汇编器里编写的汇编代码,有一个指令int 80h没有搞懂,然后自己查资料发现不少东西,本文旨在浅显的分析linux的系统调用,主要是linux0.12内核来说! 目前操作系统内...

    2014-05-05 10:28
    1241
  • linux搜索文件过程

    1.文件中的数据是放在磁盘的数据区中的,而一个文件名则是通过对应的i节点与这些磁盘块联系起来,这些盘块的号码就存放在i节点的逻辑块数组i_zone[]中。在文件系统的一个目录中,其中所有文件名信息对应...

    2014-05-25 08:36
    1327
  • linux0.11内核fork实现分析(不看不知道,一看很简单)

    曾几何时,只是一直在调用库函数fork,只知道它创建一个子进程,并且子进程返回值是0,父进程返回值是子进程pid。但是一直没有深究内核代码,今天终于使用gdb调试了一把fork的内核代码,下面就让我们...

    2014-05-19 16:18
    1147
  • 实现多任务的内核Linux0.00分析

    最近终于把实现多任务的微内核调试了一遍,我们阐述了如何在保护模式下切换任务。同时知识包括:gdt,idt,ldt,tss,时钟中断服务,特权级切换,显存编程,boot和loader功能,bios调用等...

    2014-05-15 10:15
    1054
  • Linux-0.12内核打开文件过程--sys_open源码分析

    上图展示了进程打开文件使用的内核数据结构,所以要打开文件,就要构造上图中的关系。 int sys_open(const char *filename,int flag,int mode) { st...

    2014-05-25 20:34
    1469
  • Linux-0.12内核sleep_on函数分析

    sleep_on用于进程休眠,原型如下: void sleep_on(struct task_struct **p) 当进程访问某个互斥资源时,如果资源被另外进程占用,当前进程就需要休眠。 假设...

    2014-05-23 10:10
    1031
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部