• linux0.12系统调用


    系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。

    这个中断的设置在kernel/sched.c中443行函数中

     1 void sched_init(void)
     2 {
     3     int i;
     4     struct desc_struct * p;
     5 
     6     if (sizeof(struct sigaction) != 16)
     7         panic("Struct sigaction MUST be 16 bytes");
     8     set_tss_desc(gdt+FIRST_TSS_ENTRY,&(init_task.task.tss));
     9     set_ldt_desc(gdt+FIRST_LDT_ENTRY,&(init_task.task.ldt));
    10     p = gdt+2+FIRST_TSS_ENTRY;
    11     for(i=1;i<NR_TASKS;i++) {
    12         task[i] = NULL;
    13         p->a=p->b=0;
    14         p++;
    15         p->a=p->b=0;
    16         p++;
    17     }
    18 /* Clear NT, so that we won't have troubles with that later on */
    19     __asm__("pushfl ; andl $0xffffbfff,(%esp) ; popfl");
    20     ltr(0);
    21     lldt(0);
    22     outb_p(0x36,0x43);        /* binary, mode 3, LSB/MSB, ch 0 */
    23     outb_p(LATCH & 0xff , 0x40);    /* LSB */
    24     outb(LATCH >> 8 , 0x40);    /* MSB */
    25     set_intr_gate(0x20,&timer_interrupt);
    26     outb(inb_p(0x21)&~0x01,0x21);
    27     set_system_gate(0x80,&system_call);
    28 }

    http://blog.csdn.net/yming0221/article/details/6398414

  • 相关阅读:
    Bootstrap-CL:警告
    Bootstrap-CL:略缩图
    Bootstrap-CL:页面标题
    Bootstrap-CL:超大屏幕
    Bootstrap-CL:徽章
    Bootstrap-CL:标签
    Bootstrap-CL:分页
    Bootstrap-CL:面包屑导航
    Bootstrap-CL:导航栏
    Bootstrap-CL:导航元素
  • 原文地址:https://www.cnblogs.com/cdwodm/p/2938722.html
Copyright © 2020-2023  润新知