操作系统
文章平均质量分 79
Linux0.11的实现过程
三境界
九层之台起于垒土
展开
-
linux -- per-CPU变量
per-CPU变量是一种存在与每个CPU本地的变量,对于每一种per-CPU变量,每个CPU在本地都有一份它的副本。原创 2024-01-30 23:11:56 · 498 阅读 · 0 评论 -
linux -- 中断管理 -- softirq机制
linux内核软中断原创 2024-01-30 18:46:08 · 906 阅读 · 0 评论 -
linux -- 内存管理 -- 虚拟内存的管理
vmalloc原创 2024-01-29 20:06:55 · 894 阅读 · 0 评论 -
linux -- 内存管理 -- SLAB分配器
slab原创 2024-01-29 16:44:20 · 1057 阅读 · 0 评论 -
linux -- 内存管理 -- 页面分配器
分配并使用内存,是内核程序与驱动程序中非常重要的一环。内存分配函数都依赖于内核中一个非常复杂而重要的组件 - 内存管理。linux驱动程序不可避免要与内核中的内存管理模块打交道。linux内存管理可以总体上分为两大块:一是对物理内存的管理,二是对虚拟内存的管理。原创 2024-01-26 15:27:10 · 609 阅读 · 0 评论 -
armv8 - GIC-V2 中断控制器
GIC-V2原创 2024-01-25 17:00:03 · 1016 阅读 · 0 评论 -
linux -- 中断管理 -- 中断管理以及PIC可编程中断控制器
中断理解原创 2023-03-10 23:33:12 · 997 阅读 · 0 评论 -
Understanding The Linux Kernel --- Part2 Memory Addressing
LINUX KERNEL DEV原创 2023-03-02 20:39:29 · 346 阅读 · 0 评论 -
HylicOS --- 内核级线程的创建与切换
内核级线程创建与切换原创 2022-12-18 17:11:01 · 186 阅读 · 0 评论 -
HylicOS --- 用户级线程创建与切换
线程切换原创 2022-12-18 13:42:18 · 120 阅读 · 0 评论 -
HylicOS --- 内存抽象
HylicOS已经完成了部分硬件抽象层的工作,包括MMU的初始化并对虚拟内存到物理内存做了映射,创建了页表目录。对串口进行了初始化,实现了printk格式化打印函数,方便了日志输出和程序调试。建立了异常向量表。现在要做的是内存管理部分。对内存资源的管理最终要实现对内存完全地掌控:知道哪些地方有可用合法内存。能够快速找到一块想要的大小的内存,这块内存想大就大,想小就小。原创 2022-12-16 00:04:06 · 250 阅读 · 0 评论 -
HylicOS --- 工程结构记录
hylicos构建原创 2022-12-14 11:12:31 · 276 阅读 · 0 评论 -
arm(v7)架构 --- 中断
中断 arm原创 2022-12-10 22:14:47 · 1906 阅读 · 1 评论 -
记录一下AAPCS标准
AAPCS标准原创 2022-12-07 14:48:51 · 329 阅读 · 0 评论 -
Hylicos --- krprint实现
c语言底层实现原创 2022-12-07 10:45:58 · 356 阅读 · 0 评论 -
HylicOS --- 环境搭建 与 环境测试(巨多坑)
cygwin + skyeye原创 2022-12-06 21:18:53 · 296 阅读 · 0 评论 -
内核编译 --- 链接器
链接器原创 2022-12-02 12:09:18 · 429 阅读 · 0 评论 -
ARM架构 --- MMU的初始化
MMU原创 2022-11-30 15:48:09 · 565 阅读 · 0 评论 -
ARM架构 --- MMU与协处理器CP15
MMU原创 2022-11-30 15:33:48 · 712 阅读 · 0 评论 -
内核的架构 --- 宏内核与微内核
宏内核与微内核原创 2022-11-24 16:16:11 · 708 阅读 · 0 评论 -
存储模块 --- Cache
Cache技术指南原创 2022-11-23 17:03:56 · 535 阅读 · 0 评论 -
内存模块 --- 基础扫盲
内存基础问题原创 2022-11-23 14:53:27 · 867 阅读 · 0 评论 -
x86 --- 任务隔离特权级保护
OS原创 2022-10-28 20:30:19 · 1133 阅读 · 1 评论 -
x86架构 --- 内核代码的执行
内核代码执行原创 2022-10-24 00:21:21 · 427 阅读 · 0 评论 -
x86架构 --- 内核引导
内核引导原创 2022-10-20 16:50:49 · 589 阅读 · 0 评论 -
32位x86处理器
操作系统 段界限原创 2022-10-19 14:40:59 · 458 阅读 · 0 评论 -
汇编语言 --- 32位x86处理器架构
汇编原创 2022-10-09 17:36:22 · 947 阅读 · 0 评论 -
Toy OS:Part 2: Read App From Hard Disk
操作系统基础原创 2022-09-21 09:48:34 · 124 阅读 · 0 评论 -
汇编常用寄存器以及寻址方式
x86汇编小速成原创 2022-09-18 20:25:10 · 958 阅读 · 0 评论 -
OS toy --- Part 1: Boot UI
汇编 操作系统原创 2022-08-24 15:37:28 · 135 阅读 · 0 评论 -
计算机基础 --- 负数问题
负数问题原创 2022-08-24 11:25:27 · 844 阅读 · 0 评论 -
Linux内核开发基础-1 --- 可重定位代码 分段机制的起源
操作系统基础知识原创 2022-08-16 19:19:48 · 233 阅读 · 0 评论 -
Linux内核开发基础0--实模式,保护模式,长模式
操作系统基础知识原创 2022-08-15 09:24:06 · 722 阅读 · 0 评论 -
操作系统5---多进程图像
多进程图像管理计算机硬件原创 2021-11-12 22:37:50 · 902 阅读 · 0 评论 -
操作系统4---接口以及实现
一,接口1.接口的定义用户使用计算机的三种方式:1.命令行:即通过命令程序,linux系统中常用此种方式2.图形按钮:通过鼠标点击等操作实现对计算机的操控。windows系统在这方面做的就非常优秀。这种方式通过消息框架程序和消息处理程序实现3.应用程序不管采用何种方式,我们都需要让操作系统和应用程序之间建立联系。如何建立连接 ? 操作系统接口接口其实是一种抽象,比如插排,它将内部的电路全部封装起来,只提供两个插口,用电设备插上就能用;不用管插座内部是如何实现的。操作系统接口也具有连接两个东西原创 2021-11-08 21:33:29 · 4710 阅读 · 0 评论 -
操作系统3---内嵌汇编 ( AT&T)
一,寄存器的使用发生了变化引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。常用寄存器汇总:8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp;8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp;8个8-bit寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl。它们事实上是寄存器%ax,%bx,%cx,%dx的高8位和原创 2021-11-08 21:33:16 · 966 阅读 · 0 评论 -
操作系统1---启动
一个计算机系统分为三层,最底层是硬件部分,中间是OS操作系统,最上层是APP。APP层要使用使用硬件资源,访问一些端口,必须经过操作系统,它为用户使用硬件资源提供了方便,比方说printf函数输出。大部分人都停留在立足于 操作系统去使用资源这一层境界,就像大部分人会弹钢琴,而不会揭开钢琴的盖子去搞清楚里面的构造和工作原理,自然就不会对钢琴有更深入,更接近本质的了解。上帝对CPU说,你只需要取值-执行,就够了。一开始,整个计算机的硬件大陆上还是一片死气沉沉,只隐约可见磁盘0磁道0扇区上闪烁着点点星光。刹那原创 2021-10-30 00:30:58 · 170 阅读 · 0 评论 -
操作系统2---setup模块-->head.s-->main.c
上一节已经讲到把setup四个扇区读入到内存0x9000处偏移512字节的地方,并且完成了‘Loading system…’的显示,再调用read_it来读入了system模块(操作系统代码),调用返回后转入0x90200:0x0000执行setup.s,这一届就详细说明setup.s。setup.s详解,将完成OS启动前的设置start:mov ax,#INITSEG mov ds,ax...原创 2021-11-03 08:52:04 · 406 阅读 · 0 评论