Commit Graph

214 Commits

Author SHA1 Message Date
fslongjin cc39911d4d 🐛 解决了ap处理器无法处理异常的bug(原因是设置错了TSS表) 2022-04-06 18:36:56 +08:00
fslongjin b7df2805ed 存在bug,apu启动后触发异常会Reset 2022-04-06 15:11:14 +08:00
fslongjin a62454587e 🐛 暂时解决了由于时钟中断导致#DF的问题(用的华强北方法...以后再fix) 2022-04-06 15:06:51 +08:00
fslongjin 32b8a163bb bug: AP处理器发生异常时无法正确处理 2022-04-05 14:40:26 +08:00
fslongjin cac29db7c5 删除一些日志 2022-04-04 22:54:50 +08:00
fslongjin d9c7ddec66 支持多核启动并初始化AP核的Local APIC 2022-04-04 22:54:36 +08:00
fslongjin 2d1965fa2d 增加了ksuccess输出 2022-04-04 22:54:02 +08:00
fslongjin 5197253dde 🆕 AP处理器切换到64位模式 2022-04-04 22:30:06 +08:00
fslongjin 5df54732f5 bug fix 2022-04-04 18:50:58 +08:00
fslongjin 60dc9f4932 检测处理器核心数量 2022-04-04 18:42:22 +08:00
fslongjin e667fff256 🆕 gdb源代码级别调试 2022-04-04 17:46:57 +08:00
fslongjin 6d286be29f 初步完成了ahci驱动程序 2022-04-02 19:14:35 +08:00
fslongjin 21844c8ba4 修复了链表的bug 2022-04-02 19:13:43 +08:00
fslongjin 405f55624d 🆕 写入磁盘扇区 2022-04-02 17:00:19 +08:00
fslongjin 8294e0d12b 🆕 读取SATA磁盘 2022-03-31 00:17:55 +08:00
fslongjin 741aa09b9b 🆕 按照class来读取对应的pci设备的接口 2022-03-30 15:36:00 +08:00
fslongjin 576d9e33d9 add command table data structure 2022-03-25 16:51:57 +08:00
fslongjin de7583cf31 🆕 ahci的FIS数据结构 2022-03-25 16:46:08 +08:00
fslongjin 2f3f8868ae 🆕 块设备驱动的一些数据结构 2022-03-25 16:45:52 +08:00
fslongjin f4cd6f8811 🆕 使能msi的代码 2022-03-23 00:21:31 +08:00
fslongjin 08fa7b5358 🆕 能成功遍历pci总线下的设备 2022-03-22 18:02:37 +08:00
fslongjin db3749ece4 🆕 递归枚举pci总线上的设备 2022-03-21 23:44:17 +08:00
fslongjin 5e9bd1d44e 🆕 读取pci设备header 2022-03-21 20:39:14 +08:00
fslongjin 5c3a472310 🆕 pci驱动的数据结构 2022-03-21 18:34:49 +08:00
fslongjin 046bce39a9 ata_disk_handler 2022-03-21 17:13:15 +08:00
fslongjin b28f7d9c0d 🆕 新增了ata驱动程序 2022-03-20 21:35:36 +08:00
fslongjin 71d6af78d8 解决了一些小问题 2022-03-18 19:18:36 +08:00
fslongjin 75eea551e6 🐛 解决了在支持acpi2.0的bios上,无法获取rsdt的问题(目前没有使用xsdt) 2022-03-18 19:18:22 +08:00
fslongjin 8272257757 鼠标驱动程序的bug真不知道怎么改了...x先放着再说 2022-03-17 23:34:10 +08:00
fslongjin 2bb63e8e87 鼠标驱动已知bug: 数据包大小不正确 2022-03-17 22:38:23 +08:00
fslongjin a75fa791e7 已知bug:平台不提供rsdpv1时,会出现bug 2022-03-17 22:37:47 +08:00
fslongjin b3cbd3caa2 🆕 鼠标驱动(有bug,还不能用) 2022-03-17 20:51:14 +08:00
fslongjin 95dc53bda8 🐛 输出负数时出错 2022-03-17 20:05:24 +08:00
fslongjin a5feaebb73 fix some string 2022-03-17 18:00:00 +08:00
fslongjin 1e52bbe901 🐛 修复\b的bug 2022-03-17 00:17:23 +08:00
fslongjin 1333afd703 🆕 键盘驱动 2022-03-17 00:00:28 +08:00
fslongjin cc1e126959 🐛 修复了printk在画面滚动时产生的画面撕裂问题 2022-03-17 00:00:00 +08:00
fslongjin f95fa63972 🐛 修复了printk在输出\t时,背景颜色不正确的bug,以及屏幕滚动的bug 2022-03-16 23:45:01 +08:00
fslongjin 832442af6a 🆕 键盘驱动上半部 2022-03-16 13:54:26 +08:00
fslongjin d4c07ac4ad 🆕 中断上半部 2022-03-15 18:41:58 +08:00
fslongjin c187ef152a 增加了Local APIC寄存器地址映射的定义 2022-03-13 22:36:29 +08:00
fslongjin ee49849158 🆕 完成了简单的APIC中断处理功能 2022-03-13 21:09:38 +08:00
fslongjin 9cb628c3b9 🆕 完成了简单的APIC中断处理功能 2022-03-13 21:08:47 +08:00
fslongjin 1f3c8bc204 打印中断控制器结构的信息 2022-03-13 17:12:20 +08:00
fslongjin 9dd1c65cae 解析RSDT header的sign信息 2022-03-13 14:59:31 +08:00
fslongjin a879bada0a 🆕 从multiboot2获取RSDT结构体 2022-03-13 12:53:32 +08:00
fslongjin e64be7b4df 🆕 创建了acpi模块 2022-03-13 00:31:46 +08:00
fslongjin 574f323284 🆕 引入APIC驱动,完成local apic的初始化 2022-03-04 13:40:22 +08:00
fslongjin eb11be9270 🎨 明确FB_length的定义 2022-03-02 18:31:41 +08:00
fslongjin 9802d67470 🐛 解决了帧缓冲区大小计算错误的问题 2022-03-02 18:31:23 +08:00
fslongjin e573e6f1db 🐛 bug fix 2022-03-02 13:07:13 +08:00
fslongjin db8604c1e3 🆕 重新初始化页表并重映射了VBE帧缓存区 2022-03-01 20:21:32 +08:00
fslongjin 1faa84d942 🔧 更正页表 2022-02-28 23:38:50 +08:00
fslongjin be1c838ff0 🔧 对物理页的管理功能进行了一些调整 2022-02-28 22:26:15 +08:00
fslongjin 7d8f89622d 🎨 更改内存池的成员命名 2022-02-28 19:59:46 +08:00
fslongjin 0801f25b8e 🔧 缩减了为防止内存越界而预留的空间 2022-02-28 16:38:13 +08:00
fslongjin 36ad7a106e 🆕 基本完成了slab内存分配器 2022-02-28 16:15:44 +08:00
fslongjin 828621dbbc 🆕 kmalloc 2022-02-25 20:01:08 +08:00
fslongjin 1ad685f7a3 🔧 更改初始内存映射大小 2022-02-25 12:15:49 +08:00
fslongjin 8e1a0c9a4b 🆕 初始化内存池组 2022-02-25 12:15:09 +08:00
fslongjin dc3aa2ae8a 🆕 释放内存对象的函数slab_free() 2022-02-24 16:02:58 +08:00
fslongjin 5bac5bc096 🆕 创建和销毁slab内存池的函数、从slab内存池分配内存对象的函数 2022-02-23 23:33:07 +08:00
fslongjin d5eb9e8a27 🎨 将初始化8259A的代码移动到driver文件夹 2022-02-23 12:18:18 +08:00
fslongjin d06b418642 🆕 kprint 增加kBUG 2022-02-23 11:46:25 +08:00
fslongjin ad51f8b6ea 🆕 cpu模块获取处理器固件基础信息 2022-02-22 23:31:33 +08:00
fslongjin 07babf6db4 🎨 统一模块初始化函数名为<name>_init() 2022-02-22 22:17:27 +08:00
fslongjin ce7112a0d2 🐛 修复了mm模块对物理地址计算不正确的问题 2022-02-22 22:03:39 +08:00
fslongjin 6aede7ccc7 🎨 解决一些隐式类型转换问题 2022-02-22 21:47:52 +08:00
fslongjin 59b4e6f635 🔧 统一Makefile中的编译选项 2022-02-22 21:45:51 +08:00
fslongjin ea4981df4d 删除.eh_frame段 2022-02-22 21:45:20 +08:00
fslongjin fa273198b3 🔧 将部分中断信息显示,统一到kprint 2022-02-22 20:54:31 +08:00
fslongjin 3961c0e1be 🆕 printk新增翻页滚动功能(bug:用户态触发中断时翻页会出现#UD) 2022-02-22 20:45:32 +08:00
fslongjin 12cc6a8375 🔧 调整mm模块,使其能获取到multiboot2传来的信息 2022-02-22 17:05:53 +08:00
fslongjin 63cc5c2b33 🔧 启用SSE 2022-02-21 23:24:51 +08:00
fslongjin d9d83335af 🆕 转换为grub2引导(尚未更正mm模块,且目前无法将内核链接到线性地址0xffffx处) 2022-02-21 22:59:57 +08:00
fslongjin 0b0cce9326 🆕 切换为grub2引导,能进入Start_Kernel函数(未能完成初始化) 2022-02-21 14:39:48 +08:00
fslongjin 26e0b095ed 🔧 防止编译器在enter_syscall中修改rcx、rdx 2022-02-16 14:18:29 +08:00
fslongjin d3a5048f66 🆕 syscall模块,实现了第一个系统调用函数sys_printf 2022-02-16 14:07:53 +08:00
fslongjin 0757e7a3cd 🆕 do_execve函数,跳转至应用层 2022-02-13 22:41:35 +08:00
fslongjin 781a105d2f 🔧 修改了第一个内核线程的函数名 2022-02-13 11:26:27 +08:00
fslongjin d1671bc121 🐛 修复了无法切换进程、无法进行浮点运算的bug(将main.c中的init函数名进行修改) 2022-02-12 22:14:51 +08:00
fslongjin 26c23e0e65 🐛 修复了物理页分配时,起始页号计算错误的问题 2022-02-10 14:01:43 +08:00
fslongjin 67633eb04e 🆕 内核线程(在kernel_thtread函数中调用test_mm会产生问题) 2022-02-10 13:45:38 +08:00
fslongjin 39ddc21ca5 🆕 实现简单的读取键盘数据的功能 2022-01-29 15:12:34 +08:00
fslongjin 8ab02c496c 🆕 新增内存拷贝函数memcpy 2022-01-29 15:11:33 +08:00
fslongjin eff673edcb 🆕 新增了使用8259A芯片的中断响应程序 2022-01-29 12:52:25 +08:00
fslongjin 49eaf6ce95 删除了一些信息的打印 2022-01-28 22:45:05 +08:00
fslongjin 98e62e1e19 🆕 完成了简单的内存管理单元,能分配内存页面 2022-01-28 16:31:40 +08:00
fslongjin 8131264e3f 🆕 完成了初始化内存管理单元的代码 2022-01-28 14:46:15 +08:00
fslongjin 134692fa85 🐛 修复了十六进制显示格式,填充不正确的问题 2022-01-28 14:33:54 +08:00
fslongjin 012948d345 🔧 修复了一些隐式类型转换 2022-01-28 13:44:48 +08:00
fslongjin ecd78d08e9 🆕 增加了memset函数(汇编实现) 2022-01-27 18:36:32 +08:00
fslongjin 40a551d154 🔧 使cpu支持SSE(目前会出现#GP) 2022-01-27 14:58:14 +08:00
fslongjin ae52d9c2d2 🔧 修正一些表达 2022-01-26 22:26:24 +08:00
fslongjin ba7f1bb4ea 🔧 使用C语言重写了设置中断门的代码。 2022-01-26 18:04:33 +08:00
fslongjin 06cfb1ceb9 🆕 实现了异常捕获模块 2022-01-25 18:04:18 +08:00
fslongjin 14374d5faf 🔧 优化了虚拟机启动脚本 2022-01-25 13:33:36 +08:00
fslongjin d0cd77799c 🆕 定义了寄存器在入栈后的偏移量 2022-01-24 23:11:41 +08:00
fslongjin a632e72ed3 🔧 修改一些编译相关的宏 2022-01-24 23:11:10 +08:00
fslongjin 4c438ce64d 🆕 设置门的宏定义 2022-01-24 23:10:38 +08:00
fslongjin cfd0f76059 🆕 设置了IDT,装载了TSS到GDT中。实现了第一个简易的中断处理函数ignore_int 2022-01-24 20:56:59 +08:00
fslongjin 278c35111f 🔧 bux fix 2022-01-24 18:01:40 +08:00
fslongjin ead838bffd 🆕 完成了printk(暂不支持浮点数打印) 2022-01-23 23:17:52 +08:00
fslongjin cbbd2e1bf4 🆕 完成了vsprintf和数字转字符串 2022-01-23 14:43:50 +08:00
fslongjin 1afa20dc55 🆕 格式化输出一个字符串 2022-01-22 23:01:12 +08:00
fslongjin a79315a31c 🆕 strlen函数 2022-01-22 22:56:23 +08:00
fslongjin df7b3a3716 🆕 printk.c, 在vsprintf中部分完成了解析字符串的工作 2022-01-22 15:55:34 +08:00
fslongjin 8ab4d5b98a 🆕 添加对bool类型的支持 2022-01-22 15:54:21 +08:00
fslongjin 4810257d1c 🆕 新建了全局库glib 2022-01-22 13:36:16 +08:00
fslongjin 166d4070a6 🆕 ASCII字库 2022-01-21 22:10:11 +08:00
fslongjin 3d37bf9c3a 🔧 更改为使用bochs虚拟机(qemu暂时没法正常显示画面) 2022-01-21 22:04:24 +08:00
fslongjin f479f32102 🔧 修改为makefile的构建方式,程序能正常运行 2022-01-21 13:49:09 +08:00
fslongjin cff4f4eb29 🆕 完成了内核执行头程序(编译仍有问题) 2022-01-21 11:43:18 +08:00
fslongjin 24a0a78d15 🆕 完成了内核执行头程序(编译仍有问题) 2022-01-21 11:43:13 +08:00