E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
自制操作系统
30天
自制操作系统
——第二十一天用C语言编写应用程序
帮助发现bugCPU的异常处理功能,还能帮助我们发现bug,比如下面的例子:bug1.c:voidapi_putchar(intc);voidapi_end(void);voidHariMain(void){chara[100];a[10]='A';/*这句没有问题*/api_putchar(a[10]);a[102]='B';/*这句有问题*/api_putchar(a[102]);a[123]
水龙吟唱
·
2021-09-23 22:40
操作系统
c语言
操作系统
30天
自制操作系统
——第二十天保护操作系统
在实现保护操作系统之前,我们先来实现两个功能。一个是使用API显示字符串,另一个是用C语言编写应用程序。使用API显示字符串显示字符串有两种方法,一种是显示一串字符,当遇到字符编码0时结束。另一种是先指定要显示的字符串的长度,然后进行显示。实现方式如下:console.c节选:voidcons_putstr0(structCONSOLE*cons,char*s){for(;*s!=0;s++){c
水龙吟唱
·
2021-09-18 07:34
操作系统
操作系统
c语言
汇编
30天
自制操作系统
——第十九天系统调用(API)
系统调用API(applicationprograminterface)即应用系统对操作系统功能的调用,也可以称为系统调用(systemcall)。今天我们就来实现系统调用的功能,我们先来思考一下WIN10系统是如何实现系统调用的呢?下图是简化版的Windows系统架构图:Windows计算机中处理器有两种模式,分别为用户模式(用户态、目态)和内核模式(核心态、内核态、管态、系统模式、管理模式)。
水龙吟唱
·
2021-09-16 20:59
操作系统
windows
c++
操作系统
30天
自制操作系统
——第十七天制作命令行窗口
今天的任务是制作命令行窗口,那么命令行窗口应该是什么样呢?在Windows系统里我们都使用过命令行窗口,它首先是黑底的,可以在里面输入各种字符、可以对输入的命令进行响应…命令行窗口的制作用到的都是之前的知识点,难度并不大。修改的代码量较大,篇幅有限,就不把代码粘贴上来了,有兴趣的同学可以自行下载阅读。这里主要记录一下制作命令窗口的关键步骤(本节没有什么新的知识点,可以直接跳过):一、绘制命令行窗口
水龙吟唱
·
2021-08-24 20:30
操作系统
windows
操作系统
30天
自制操作系统
——第十六天实现多任务(二)
任务休眠上一篇我们实现的多任务,是为每个任务分配相同的时间。实际情况可能是A任务一直闲着没事干,B任务就一直拼命干活,这种分配显然是不合理的。那么如何避免这种浪费呢?我们可以把这样闲着没事干的任务,从tasks里删除,这种做法在多任务里叫作“休眠”(sleep)。当FIFO有数据过来时,我们再将A任务唤醒。(这里大家可以类比线程状态及状态切换,思路是相同的。)首先来创建task_sleep,mta
水龙吟唱
·
2021-08-23 05:19
操作系统
操作系统
汇编语言
c语言
Day4—
自制操作系统
用C语言实现内存写入在naskfunc.nas中创建一个往指定内存写入内存地址的语句;naskfunc;TAB=4[FORMAT"WCOFF"];制作目标文件的模式[INSTRSET"i486p"];用来告诉nask,这个程序是给486用的;如果不指定,就会认为是只有16位寄存器的CPU[BITS32];制作32位模式用的机械语言;制作目标文件的信息[FILE"naskfunc.nas"];源文件
Anita-Sun
·
2021-07-12 21:49
自制操作系统
Day3——
自制操作系统
INT0x13函数磁盘读、写、扇区检验,以及寻道需要输入的参数:AH=0x02;(读盘)AH=0x03;(写盘)AH=0x04;(校验)AH=0x0c;(寻道)AL=处理对象的扇区数;(只能同时处理连续的扇区)CH=柱面号&0xff;CL=扇区号(0-5位)|(柱面号&0x300)>>2;DH=磁头号;DL=驱动器号;ES:BX=缓冲地址;(校验及寻道时不使用)返回值:FLAGS.CF==0;没有
Anita-Sun
·
2021-07-11 22:02
自制操作系统
《30天
自制操作系统
》的第一天--2018-03-26
下了一本电子书,分别是《Linux内核设计与实现》,《深入理解LINUX内核》,分别了看了快一个月了,但是感觉只是这样看太无聊,没有练手的机会,所以今天开始看了《30天
自制操作系统
》的第一章,明天开始搭建环境
zerophp_os
·
2021-06-11 06:05
自制操作系统
9:绘制窗口 - 调色板描绘背景世界
参考:https://blog.csdn.net/tyler_download/article/details/52556502像素颜色直接绘制,没有亮度和饱和度等信息。只有8位256种颜色直接绘制颜色改为,24bit数,rgb表示法,3原色。每个8bit.3色结合,就可以构造出所有颜色。这就是调色板。调色板做一个RGB数组。8bit数就从直接表示颜色改为数组下标。显示模式改为调色板模式,需要通知
张某人的胡思乱想
·
2021-05-19 00:08
自制操作系统
操作系统
自制操作系统
6:寻址5M-天高任鸟飞
参考:https://blog.csdn.net/tyler_download/article/details/52242599DOS是实模式,20位总线,1M内存。体验不好。寄存器也是16位的。90年代用dos编程,竟然也有WPS这样的神作,真是佩服求伯君。windows是保护模式,32位总线。4G内存,80386是经典,win95也是经典。保护模式不再直接寻址,而是用GDT获取描述符,描述符中
张某人的胡思乱想
·
2021-05-17 00:50
自制操作系统
操作系统
「30天制作操作系统系列」1~4天从汇编到C语言
这个听起来像天方夜谭,但是真有一本书就叫做《30天
自制操作系统
》,当然,
自制操作系统
的目的不是要去对标Windows、Linux、MacOS等流行的现代化操作系统,而是了解操作系统制作与运行的整个流程与细节
代码狂魔v
·
2021-05-16 17:10
代码狂魔
操作系统
自制操作系统
5:由实模式进入保护模式之32位寻址
参考:https://blog.csdn.net/tyler_download/article/details/52021120https://www.bilibili.com/video/BV1VJ41157wq?p=5&spm_id_from=pageDriver先分析kernel.asmhttps://github.com/wycl16514/OS-Kernel-from-real-to-p
张某人的胡思乱想
·
2021-05-16 15:20
自制操作系统
操作系统
自制操作系统
4:内核突破512字节
参考:https://blog.csdn.net/tyler_download/article/details/51970921上一节软盘可读就是为此做的准备,上节是内核读取其他扇区的文本显示出来。本节将实验第一扇区是个引导程序,负责把其他扇区的内核读入内存,然后跳转到内核所在内存运行,移交控制权。引导程序:主要功能就是读取其他扇区的内核到内存中。依次创建boot.asm,kernel.asm然后
张某人的胡思乱想
·
2021-05-16 13:59
自制操作系统
内核
操作系统
三十天
自制操作系统
(2)
第4天今天一开始也学最后学的用汇编写一个能被C语言调用的函数,函数名叫write_mem8,功能是在指定内容中写入特定的数据。这个函数有两个参数,第一个参数表示目标地址,第二个参数表示写入的数据。这个函数最重要的功能就是往指定的内存地址中写入数据,那么用C语言可不可能也指定一个内存地址呢?其实是可以的,使用C语言中指针的概念就可以了。C语言中所谓的指针其是就是平时所谓的内存地址。比如想要往0xa0
whatcanhumando
·
2021-04-30 09:27
三十天
自制操作系统
(10)
第22天CPU中的IRQ中断是从0x20号开始的,0x20也就是定时器中断。0x0~0x1f都是CPU异常所使用的中断。0x00是除零异常;0x06是非法指令异常;之前介绍的0x0d是一般保护异常;0x0c是栈异常。我们一开始先讲栈异常。所谓的栈异常,就是定义一个数组比如a[100],但是却在程序中访问a[101],这就是栈异常。CPU不会因为应用程序访问超出定义的栈发出警告,但是如果应用程序访问
whatcanhumando
·
2021-04-24 16:25
30天制作操作系统第2天
30天制作操作系统第二天这是一个菜鸡为了学习操作系统来练习写的操作系统,参照于书籍《30天
自制操作系统
》。
Most3R-03
·
2021-03-08 10:18
30天自制操作系统
操作系统
linux
c++
编程语言
c++vstextouta怎么用_计算机
自制操作系统
(十二):用C语言开发内核,详析C语言机制...
一、为什么要用C语言我曾经的理想是一直用汇编语言来编写操作系统,因为只有用汇编语言才能感觉到自己是下沉到计算机的最底层来控制它,一旦动用了其它的更高级的语言(如C语言),会让自己觉得自己的工作再也不那么“纯粹”了。因为高级语言是建立在已有操作系统和别的编译器基础之上的。我们的目标本来就是从0开始造一个操作系统,可是还没写出来之前就先用了别人的操作系统和工具了,这样的感觉让人感到气馁。但是,换个角度
聂小影
·
2020-12-27 20:37
30天
自制操作系统
光盘_计算机
自制操作系统
:总序
一、不忘初心电子计算机---是20世纪人类最伟大的发明之一。本人机械专业出身,但是最热爱的专业是电子,如果有机会再让我选择一次,我会毫不犹豫的选择读EE。由于缺乏电子行业所需的实验环境和实践机会,后来慢慢就把注意力转移到了计算机,因为只需要一台电脑就可大显身手了。没有机会当程序员,多年以来一直在自学,业余写点小代码,但却有一颗非要将问题弄懂的纠结心。记得90年代末上大学的时候刚开始接触计算机,对计
weixin_39757122
·
2020-11-18 11:31
30天自制操作系统光盘
dosbox
中文操作系统
windows操作系统原理
30天
自制操作系统
day03-进入32位模式并导入C语言
30天
自制操作系统
进入32位模式并导入C语言制作真正的IPL该部分主要是对第二天结尾内容的深入。
抱山
·
2020-11-02 01:37
操作系统实验
操作系统
《30天
自制操作系统
》避坑排雷指南和命令大全
前言《30天
自制操作系统
》是日本Coder川合秀实先生的著作,对于想了解操作系统原理或者有志于底层开发的同学们好处多多。
末树之墨
·
2020-09-16 10:08
综合基础
从零开始
自制操作系统
(序)
第0天好吧,确实是有想过写操作系统的。但是,退缩了。就像上次想写一完整版的编译器的时候看到的这张截图:(嗯,这就意味着你很难看完这源码,甚至一生都难以看完)无知则无畏:书中作者向大家传授了一个从零开始开发操作系统的诀窍:——不要在一开始就一心想着要开发操作系统,先做一个有点操作系统样子的东西就行。如何开发操作系统:准备的步骤如下:在windows(或其他)系统上编写源代码->用c语言编译器编译源代
無菌與
·
2020-09-15 00:21
操作系统
操作系统
从零开始
2020年7月27日-2020年8月2日(每天1小时,共5小时,合计220小时,剩9780小时)
进行周一到周五:早上:进行设计模式视频教程一个(继之于重构,重构与模式等)和业务晚上:进行UE4视频教程一个,文档一个,大象无形以及InsideUE4一个周六上午:3,windows核心编程->30天
自制操作系统
directx3d_beginner
·
2020-09-13 01:23
验证第二个1万小时定律
自制操作系统
第一站
参考《30天
自制操作系统
》老规矩,先显示一个Hello,World;tiger-os;TAB=4;以下这段是标准FAT12格式DB0xeb,0x4e,0x90DB"TIGERIPL";启动区的名称,可以是任意字符串
wanyongtai
·
2020-09-12 10:08
自制操作系统
自制操作系统第一站
自制操作系统
自制操作系统
学习4 进入32位保护模式
自制操作系统
学习4进入保护模式一、概念1.为什么要进保护模式2.x86基本运行模式1.实地址模式2.保护模式3.64位模式4.正在进入保护模式5.正在进入64位模式3.段描述符二、进入保护模式的步骤:三
谢厂节_编程圈
·
2020-09-11 23:46
#
操作系统
30天
自制操作系统
(一)从计算机结构到汇编程序入门
《30天
自制操作系统
》这本书就不一样,一点一点的构建一个玩具操作系统,虽然没
weixin_34111819
·
2020-09-11 17:56
自制操作系统
(一)
从今天开始制作一个操作系统,今天完成最基本的功能---输出helloworld。计算机在读取磁盘的时候,首先从最初的一个扇区开始读盘,然后如果这最后2个字节不是55AA,计算机会认为这张盘上没有所需启动程序,就会报一个不能启动的错误,如果计算机确认了第一个扇区的最后两个字节正好是55AA,那么它认为这个扇区的开头是启动程序,并开始执行这个程序。IPL,initialprogramloader,启动
材大难为用
·
2020-09-11 16:32
操作系统
30天
自制操作系统
笔记
2016.8月做的笔记,偶然翻到以防后面丢失。最后的操作系统代码上传GitHubhttps://github.com/Dandelionshine/30OSconsole:控制台通过键盘输入命令的一种方式。基本上只用文字进行计算机操作。开发操作系统:制作一张“含有操作系统的,能够自动启动的磁盘”映像文件:软盘的备份数据。做出备份数据,将备份数据写入磁盘世界上第一个操作系统:对着CPU的命令代码表,
dandesy
·
2020-09-11 15:53
OS
30天
自制操作系统
——用U盘启动自制系统
本文转自:http://blog.csdn.net/nonekey/article/details/8758715最近试读了《30天
自制操作系统
》的前两章,感觉很有意思。
piaopiaopiaopiaopiao
·
2020-09-11 15:13
OS
30天
自制操作系统
第一天 从计算机结构到汇编程序入门
一,先动手操作这个故事的一开始,作者先用了一个二进制编辑器和一个汇编工具写了操作系统的启动程序helloos.img,在这个软盘已成为传说的时代,书中使用了PC模拟器QEMU,书中方法就不介绍了,其实直接使用VMware也是可以达到同样效果的。操作步骤如下:列出其中几个关键步骤:系统选择:虚拟机创建好,找到软驱:在软驱连接到helloos.img:启动后的效果图:我把helloworld改成了he
fw1993
·
2020-09-11 14:32
operating
system
《30天
自制操作系统
》第2天
1.汇编语言学习与Makefile入门ORG0x7C00;指明程序的装载地址(将程序装到内存哪个起始地址上)INT0x10;调用显卡BIOSJMPentry;跳到某个地址MOVax,0;AX=0所有的汇编指令都汇编为对应的机器指令,比如:ADDCX,0x1234;编译为:81C134122,计算机是用来计算的,计算的是什么?数据;数据需要一个地方保存、存储他,这个地方在哪?叫什么?存储数据的地方很
宇宙379
·
2020-09-11 13:04
《30天自制操作系统》
30天
自制操作系统
:第1天:从计算机结构到汇编程序入门
第1天:从计算机结构到汇编程序入门先是用一个二进制文件编辑器手写了一个二进制文件,再解释了一通CPU内部的数据表示和二进制,再写了一点汇编程序。汇编语言讲解DB指令意为“definebyte”,也就是往文件里直接写入1个字节的指令。DB指令也可以用来写字符串,如DB“hello,world”RESB指令意为“reservebyte”,如果想从现在地址开始空出10个字节来,就可以写成RESB10,意
Yichuan_Sun
·
2020-09-11 13:20
自制操作系统
30天
自制操作系统
------窗口操作
一个多任务的操作系统会有很多窗口,进行任务切换的同时窗口操作肯定也是必不可少的。一、窗口切换我们可以使用键盘或者鼠标进行窗口的切换。自制的操作系统的窗口都是一个个图层,每个图层都是有各自的高度的,高度最低的是操作系统的背景图层(也就是桌面),高度最高的是鼠标图层。我们使用按键F11来作为窗口切换的按键,按下F11,我们就将从下面数第2个图层的高度提升为shtctl->top-1,shtctl->t
Xuan0715
·
2020-09-11 13:16
操作系统
《30天
自制操作系统
》 第一天 从计算机结构到汇编程序入门
效果图相关概念CPU开发环境搭建源码汇编程序指令解释启动区bootsector效果图相关概念CPU中央处理单元,除了与别的电信号交换以外什么都不会,对于电信号只能理解开与关两种状态。CPU就是个集成电路板,它只是忠实地执行电信号给它的指令,输出相应的电信号。指定位置显示0还是1等。CPU最早只是发明用于处理电信号,后续发现开/关与0/1,可以结合到一起,变成二进制数计算机。给每一个文字都编上号(字
love_world_
·
2020-09-11 12:08
操作系统
30天
自制操作系统
第二天
;hello-os;TAB=4ORG0x7c00;指明程序的装载地址;以下的记述用于标准FAT12格式的软盘JMPentryDB0x90DB"HELLOIPL";可以自由写扇区的名字(8字节)DW512;1扇区的大小(必需要512)DB1;集群的大小(必需要做一个扇区)DW1;FATA从这里开始(一般是从第一扇区开始)DB2;FATA的个数(必须是2)DW224;根目录区域的大小(通常为224项)
岳麓山鸡王
·
2020-09-05 21:49
自己开发操作系统
算是《30天
自制操作系统
》的读书笔记吧,但是我觉得原书不少地方啰嗦,某些做法值得商榷http://product.china-pub.com/36828381.二进制编译器首先下载Bzl1621.lzh
21aspnet
·
2020-08-25 17:06
汇编语言
C基础
Linux基础
30天
自制操作系统
30天
自制操作系统
下载地址https://pan.baidu.com/s/1VkNiKw3OmH4DQmwIX8qECA扫码下面二维码关注公众号回复100024获取分享码本书目录结构如下:第0天着手开发之前
余松
·
2020-08-25 16:55
操作系统
c
硬件
30天
自制操作系统
30天
自制操作系统
下载地址https://pan.baidu.com/s/1VkNiKw3OmH4DQmwIX8qECA扫码下面二维码关注公众号回复100024获取分享码本书目录结构如下:第0天着手开发之前
余松
·
2020-08-25 16:11
操作系统
c
硬件
[
自制操作系统
] BMP格式文件读取&图形界面系统框架-应用接口设计
Github:https://github.com/He11oLiu/JOS本文将介绍在本人JOS中实现的简单图形界面应用程序接口,应用程序启动器,以及一些利用了图形界面的示例应用程序。本文主要涉及以下部分:内核/用户RW/RW调色板framebuffer共享区域8bit颜色深度BMP格式图片读取与绘制读BMP头总是出现问题?不合理的数据?为啥读出来的图片颜色怪怪的!!为啥是倒的,还有的运气不好出
zhuzhu81
·
2020-08-23 00:32
《30天
自制操作系统
》第一天
首先,这本书的操作系统需要用软驱来装载,但是当今都什么年代了,哪儿来的软驱,所以大家可以用虚拟机实现这本书里的所有东西,我用的是Virtualbox,这是一款免费的虚拟机,个人感觉vmware太笨重了(虽然功能很全),言归正传,新建一个虚拟机神马的自己google,下面是添加一个软驱然后就可以把软驱文件img文件加载进去了,前期工作已完成,下面是hello.img的编写,书上用2进制编辑器写太扯淡
战魂嗜杀
·
2020-08-22 03:09
30天自制操作系统
[Rx86OS-I] 计算机开机从软盘启动显示字符串Hello World
平台处理器:IntelCeleron(R)Dual-CoreCPU操作系统:Windows7专业版x86阅读《30天
自制操作系统
》—川合秀实[2015.03.12–03.14],[03.26整理]笔记。
文字篇章
·
2020-08-22 02:25
碚大
读书笔记《30天
自制操作系统
》day01
1.计算机只知道01代码,计算机启动时从引导扇区开始执行,文件如下hellos.asm(2013.04.07自己用二进制代码构筑一个引导扇区,具体构成见下图二)DB0xeb,0x4e,0x90,0x48,0x45,0x4c,0x4c,0x4fDB0x49,0x50,0x4c,0x00,0x02,0x01,0x01,0x00DB0x02,0xe0,0x00,0x40,0x0b,0xf0,0x09,0
ltbylc
·
2020-08-22 02:53
虚拟机-操作系统
30天
自制操作系统
笔记
1keyDBdefinebyteRESBreservebyteDWdefinewordDDdefinedouble-wordword->16bytes字节->16*8=128bitsdouble-word->32bytes->256bits0x1fe-$:这一行现在的字节数如果是100,则输出0x1fe-100个字节的0x00FAT12:windows软盘格式FileAllocationTable
Mancuojie
·
2020-08-22 00:22
OS
30天
自制操作系统
(第02天)–汇编语言学习和MakeFile入门
第二天,我们将之前的程序进一步翻译成汇编语言,进一步了解启动程序到底做了些啥。还记得第一天中有一部分程序主体么,以及最开头的代码,我们把它们翻译成汇编看看。;hello-os;TAB=4ORG0x7c00;指名程序的装载地址;以下一段是标准FAT12格式软盘专用的代码JMPentryDB0x90DB"HELLOIPL";引导扇区的名称,随意写,8字节DW512;每个扇区(sector)的大小,必须
Excel_Fan
·
2020-08-22 00:03
30天自制操作系统
三十天
自制操作系统
(14)
第26天前一章中我们做的操作系统已经越来越像超作系统了,我们同时打开了2个console窗口,并且把task_a的窗口给了消了。现在我们在启动时显打开一个console窗口,然后用户自己操作打开另一个窗口。我们就这么规定,如果按下shift+f2那么就打开一个命令行窗口。为了方便我们将把开命令行窗口单独作成一个函数。structSHEET*open_console(structSHTCTL*sht
whatcanhumando
·
2020-08-20 20:49
30天
自制操作系统
自制操作系统
前5天内容的总结-HelloWorld输出;hello-os;TAB=4ORG0x7c00;ORG命令指令程序开始地址JMPentry;无条件跳转到entry函数中//我寻思,后面这段代码不会执行啊
shu_8708
·
2020-08-20 01:13
操作系统
C语言实现队循FIFO缓冲区-《30天
自制操作系统
》
本代码整理自《30天
自制操作系统
》P135的整理FIFO缓冲区写的很好,所以记录一下(增加了一个fifo8_free函数,用于查询剩余容量,觉得有用)。
Tianyu-liu
·
2020-08-18 13:19
ffmpeg
银行家算法的C语言实现
尤其是在拜读了川合秀实的三十天
自制操作系统
后,感觉自己对操作系统的理解不再那么抽象化了,而开始变得有血有肉起来了。银行家算法是在系统资源有限的情况下,避免进程出现死锁的一种解决办法。
秋原风
·
2020-08-16 15:04
C++
30天
自制操作系统
之第15天 多任务(1)
多任务的本质是利用定时器和far跳转在任务之间进行切换,具体来说,一开始先运行main函数(就是处理我们的鼠标、键盘和定时器等事件),0.02s后定时器超时,执行如下语句:farjmp(0,4*8);这是一个far跳转,先看一下farjmp的实现:_farjmp:;voidfarjmp(inteip,intcs)JMPFAR[ESP+4];eip,csRETfar-JMP指令指向的目标地址段是4*
刘秋杉
·
2020-08-11 20:27
30天自制操作系统
操作系统-第十五天 多任务(多进程)实现
多任务的实现过程终于等到第十五天-多进程的实现,在《30天
自制操作系统
》中介绍了多任务的实现,在此理清一下思路。
lz_zl_
·
2020-08-11 20:19
操作系统
汇编学习
babyos (六)—— 显示ASCII字符和汉字
参考:http://blog.sina.com.cn/s/blog_8c7bf19701010rhn.html《30天
自制操作系统
》0.实验结果:1.测试
孤舟钓客
·
2020-08-11 12:19
BabyOS
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他