Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,并且编写了我们自己的内核程序,这个内核虽然什么也没有做,但还是成功被加载进内存了.接下来我们要将这个内核程序编写详细的内容了. 0. 切换堆栈和GDT SELECTOR_KERNEL_CS equ extern cstart extern gdt_p…
自制操作系统Antz day10——实现shell(上) AntzUhl 2018-10-10 16:25 阅读:192 评论:0   Linux内核源码分析 day01——内存寻址 AntzUhl 2018-08-05 13:38 阅读:111 评论:0   后端必备的Linux知识 AntzUhl 2018-08-05 09:45 阅读:190 评论:0   自制操作系统Antz day09——实现内核 (下) 实现图形化界面 AntzUhl 2018-08-03 13:22 阅读:485…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,简单引入了C语言,接下来我们编写自己的内核. 0. 汇编生成ELF 完成实模式到保护模式跳转的这一任务是由load…
显示图片只是在多媒体课上看着bmp格式图片的突发奇想,然后就实现在了我自己的操作系统 Antz系统更新地址 Linux内核源码分析地址 Github项目地址 效果图: 显示图片的原理 在之前显卡操作时,屏幕上的像素点我们是直接赋予一个颜色值的. 0xa0000是显示屏左上角第一个像素的地址,我们只需要根据地址赋予相应图片的rgb值即可实现图片的显示.Antz使用的显卡模式只能支持255种颜色,也就是bmp中24色的图片. 所以我们需要先将一个24色bmp格式的图片进行rgb值读取,然后再将rgb…
详细代码戳这里. 一.启动引导 采用软件grub2进行引导,基于规范multiboot2进行启动引导加载.multiboot2的文档资料戳这里. 二.具体内容 开发环境 系统环境:Ubuntu 14.04 / Ubuntu 16.04 32bit/64bit: 辅助软件:Qemu and Xorriso: 编译器:GCC 实现功能 实现了图像模式下的显卡驱动,移植和编写了相关函数和打印函数:(参考<30天自制操作系统>) 实现了全局描述符表.中断描述符表的添加: 完成了中断请求,实现了定时器中…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,之前一直使用的是汇编语言,接下来要使用c语言实现内核了. 0. GCC前提 gcc -c -o main.o  m…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html Github项目地址:https://github.com/CasterWx/AntzOS 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了,并且编写了我们自己的内…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 目前已经完成了MBR的雏形,虽然有些简陋,比如我们的屏幕显示还是使用的BIOS中断,而在BIOS中断向量表只有在实模式下存在, 我们要进入保护模式之后就无法使用了.此次我们要完成直接操作显存来进行屏幕显示. 0.  关于显存 如果要…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 目前已经完成了MBR的雏形,并且直接操作显卡完成了屏幕的内容显示.接下来我们要改造之前的MBR,做一个大的改进,使MBR可以读取硬盘,因为我们的MBR受限制于512字节大小,在这么小的空间里没法为内核准备好环境,更不要说加载内核到内…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,我们这些任务都是为了进入保护模式做准备,虽然我们已经给出了jmp到保护模式的方法,但是我们还是需要理解保护模式下的一些特性,才能更好的实现我们…