首页 > 系统相关 >linux0.01代码阅读

linux0.01代码阅读

时间:2023-08-21 16:46:11浏览次数:61  
标签:set 中断 代码 init 描述符 task linux0.01 阅读

代码地址:

https://cdn.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz

代码目录:

 

main函数:

 

代码中的命名解释:

CMOS:存储计算机基本硬件设置(如日期、时间、启动顺序等)的半导体存储器,CMOS_READ从硬件时间存储的固件读取时间,存储到startup_time中
trap:陷阱,中断的一种,用户态一些操作会被动触发的中断叫做陷阱(内存缺页、除法错误等) intr:中断 idt:中断向量表描述符 set_intr_gate:设置中断向量表 set_trap_gate:设置中断向量表 set_system_gate:设置系统调用(0x80中断)处理函数
tty:串口终端,用于字符输出的设备 gotoxy:移动字符光标位置的函数
tss:用于保存任务的上下文信息的结构 ltr(addr):x86指令,将指定位置的tss加载到CPU寄存器;上下文切换时使用 lldt(addr):x86指令,加载局部描述符表(Local Descriptor Table,LDT,用于存储任务的局部段描述符) gdt:全局描述符表
buffer_init:初始化系统buffer hd_interrupt:硬盘中断处理函数 sti:x86指令,用于设置处理器的中断标志位,允许处理器响应外部中断 move_to_user_mode():切换到用户态的函数

pause():去执行调度函数,相当于主动让出CPU使用权     schedule()         for task_list:             // 遍历信号,修改进程状态         for task_list:             // 找到第一个可运行进程         switch_to() // 切换上下文

// fork出init进程 fork:     copy_process         task_struct p = get_free_page         init task_struct p         copy_mem             copy_page_tables         set_tss_desc         set_ldt_desc         task[nr] = p;   /* do this last, just in case */         return last_pid;
// wait/wait_pid/sys_waitpid...
// 内存屏障,主动防止CPU并行优化把指令顺序打乱 static inline void sync(void) {     asm volatile ("sync" ::: "memory"); }

标签:set,中断,代码,init,描述符,task,linux0.01,阅读
From: https://www.cnblogs.com/xjjsk/p/17646426.html

相关文章

  • 代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的
     530.二叉搜索树的最小绝对差   卡哥建议:需要领悟一下二叉树遍历上双指针操作,优先掌握递归   题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html ......
  • 路径规划算法:基于指数分布优化的机器人路径规划算法- 附matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 低代码开发 轻松解决企业数字化能力建设困局
    谈及数字化,这是一个几乎所有领域都在使用的概念。当下,数字化正在经历从以企业为中心向产业为中心转移、从追求效能为主的价值诉求向追求业务创新和业务发展的价值诉求转变,不断增加的不确定性也为数字化的发展蒙上了一层阴影。除了企业自身的认知理念不清的困难,另一痛点来源于助力......
  • 低代码开发 轻松解决企业数字化能力建设困局
    谈及数字化,这是一个几乎所有领域都在使用的概念。当下,数字化正在经历从以企业为中心向产业为中心转移、从追求效能为主的价值诉求向追求业务创新和业务发展的价值诉求转变,不断增加的不确定性也为数字化的发展蒙上了一层阴影。除了企业自身的认知理念不清的困难,另一痛点来源于助力方......
  • 代码随想录算法训练营第二十天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树
      654.最大二叉树    卡哥建议:又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历    题目链接/文章讲解:https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5......
  • 鬼打墙之谁改了我的代码
    前情提要测试提了个bug:顺序输入字符过长,后端会报错。建议前端限制输入字符长度。改bug的上午经测试,输入超过10位数会报错。和后端沟通,int最大值是4294967295。由于el-input-number不支持maxLength属性,用rules校验max也有问题(不能实时校验)。因此采取了:max......
  • 【图论#02】岛屿数量,flood fill算法的代码实现与优化
    岛屿数量给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","1","0"],["1","1"......
  • python刷小红书流量(小眼睛笔记访问量),metrics_report接口,原理及代码,以及x-s签名验证202
    一、什么是小眼睛笔记访问量 如下图所示,为笔记访问量。二、小眼睛笔记访问量接口1、urlhttps://edith.xiaohongshu.com/api/sns/web/v1/note/metrics_report2、payloaddata={"note_id":note_id,"note_type":note_type,"report_type":1,......
  • 导航代码
    <ulclass="menulist"><li><a{if!isset($catid)}class="current"{/if}href="{SITE_URL}">首页</a></li>{w:navfield="catid,catname,arrchildid,pclink,type,target"where="parentid=0&quo......
  • GPT用于复杂代码生产所需要满足的必要条件
    近年来,由于人工智能(AI)技术的迅猛发展,自然语言处理(NLP)领域取得了巨大突破。其中,基于预训练模型的生成式预测算法如GPT(GenerativePre-trainedTransformer)成为了广泛关注的焦点。在开发复杂代码的过程中,使用GPT进行代码生成已经成为一种引人瞩目的方法。本文将介绍GPT用于复杂代码......