30天自制操作系统吧
关注: 1,381 贴子: 4,819

  • 目录:
  • 个人贴吧
  • 0
    今天晚上花了大概4个小时重构了小于4kb时的内存分配器 借鉴了一下slab的想法,建了32,64,128,256,512,1024,2048字节大小内存的链表,对于小内存先分配一个页,再按对齐到2的幂的大小分割页加入到链表中。这样分配小内存的时候大部分情况下可以直接从链表中拿。 再一个是内存大小对齐,因为我选取的可分配大小都是2的幂,所以需要输入的大小需要对齐到2的幂,原来是通过多个if-else实现,现在改成了:支持硬件指令加速时,使用gcc的__builtin_clz统计高位
    迷路的路 00:43
  • 5
    HELO OS实现中文壁纸显示成功
  • 1
    本来想放个字库到软盘里的,但那个字库有整整2MB,软盘才1.44MB,怎么才放得下??后来用软碟通新建了一个光盘映像,把引导文件设置为ipl09.bin,把文件全部都放到光盘里,然后保存用虚拟机启动,结果显示“load error”,怎么办? 请求大佬帮忙解答
  • 9
    现在把nask换成了nasm,结果作者的GAS2NASK老把这些nasm不支持的命令写入bootpark.asm,怎么破??请教大神!
  • 3
    最近花了2个月重构了从PCI驱动到IDE驱动再到fat32文件系统的实现,尤其是最近一周每天4h+高强度肝fat32文件系统。 其实fat32文件系统没有很复杂,只是没有缓存的话速度非常慢,我之前的完全无缓存实现在qemu中跑出了高达20kb/s的“好成绩”,可能比百度网盘稍微快点,花了好多时间研究缓存怎么设计,顺带实现了互斥锁、读写锁,昨天刚收完尾又花了一天发现并解决栈溢出导致线程结构被覆盖掉问题。 所以如果我写这两个的主题会有人看吗?
    FIGHT 3-13
  • 0
    爆肝了3天,制作了api_fwrite,结果栈异常了。而且不知道怎么错的,现在很纠结,有两个办法:1是还这样将就着,直到想到好办法,制作api_fwrite()为止,2是直接改成安装性系统,这样似乎会好一些,所以我决定选择第二种。本来打算使用NFTS,但对NFTS强制写入是触犯专利的?(似乎)在一番苦思冥想下,我觉定使用FAT32,因为我感觉FAT32对于本来是FAT12的HARIBOTE来讲容易修改(曾经想过用exFAT,但那样改极其麻烦),至于说怎么改,看我了......
    FIGHT 3-13
  • 0
    为什么nask一直打不开
  • 14
    Helo OS 1.0.0.2018 内测版 源码暂不公开,请大家提提意见,谢谢!
    鿏氪锶 3-9
  • 4
    扫雷界面布完, 展示一下所有元素, 程序还未实现, 随机数的应用, 鼠标API的应用
  • 2
    以前在学校里,玩过中国象棋的游戏。虽然那时的象棋程序的智慧度不是很高, 但也能轻而易举地,“剃光”我的棋子。感到AI的神秘。 | 后来在书店里看到一本书,马上买下来。 | 书名我翻成《电脑将棋中的数学思考》。书名中的片假名一般词典还查不到,是 用一位古代阿拉伯数学家的名字衍伸出来的名词。 它是介绍日本的“将棋”,将棋与中国象棋近似。我不太懂,里面有些规则是被吃 掉的棋子,还能复活。当时有一位朝鲜(平壤)学生,自己
    497团 3-2
  • 4
    30天自制操作系统中出现异常时只简单显示了一下异常的名称,排查问题时只能通过一行行注释调来确认导致异常的指令。如果可以运用内核栈反向跟踪技术,在异常发生时打印函数的调用顺序,就能快速定位异常的源头。 要在自制操作系统中实现内核栈反向跟踪,要解决两个问题:1,如何得到函数调用顺序。2,如何将地址转换为函数名。 对于问题1,C编译器已经为我们解决了。 C语言中,每个函数开头都会有push rbp;mov rbp,rsp这两行汇编代码,这
  • 10
    一、环境 作者提供的QEMU并貌似不支持ACPI,所以首先要先下载最新版QEMU 下载地址: 32位:https://qemu.weilnetz.de/w32/ 62位:https://qemu.weilnetz.de/w64/ 选这个最新的下载(建议用迅雷等工具下,不然太慢) 打开安装程序,依次点OK,next,I Agree,Finish 安装完毕后打开Makefile,找到这一行: 改成这样: 二、代码 代码待会打包发出来 在haribote目录下新建acpi.c,内容如下(为了截图方便把代码挤在一起了): 在bootpack.h第20行添加如下代码: 再在bootpack.h最后加上如下代
  • 3
    如何实现真彩色和宽屏支持?最好支持XGA和VBE 请大家多多指教 @497团
  • 7
    一,先上桌面截图: 上周,我买了三本语言识别技术的书籍。一本是中文的,其特点是作者的语言描述总是 欠缺一些。这好像是我们有些顶级专家通病-----语文能力不太好,他在谈他熟悉的领域里的 东西,只表现他懂了的东西,不太考虑读者阅读理解。 第二本是英文原版的,从基础开始叙述,很详细。即学到知识,又可提高阅读英语的能力。 第三本是日本人写的,插图详细,叙述由浅入深。很适合门外汉学习阅读。 | 铁娃娃系统只有一张软盘的容
    497团 2-15
  • 3
    这一段看不懂,为什么指定这个颜色就可以用137这个色号?计算公式是怎么出来的?如果我要用RGB=[100,50,100]这个颜色该用什么色号呢?计算公式又是什么?
  • 0
    WeOS 1.0 Beta 1 (Build 3) 最新预览! 实现关机功能、时间显示功能、一些程序、改进命令行、支持中文、全新主题 本来想公布镜像的,但是发现控制台还有点问题: 还是解决这个bug再公布镜像吧,周末解决一下...
  • 5
    求助!自己写了一个应用程序,结果成这样了... 应用程序源代码: 应用程序makefile: 求大神指点指点!
  • 0
    30天已经完整看完,这是第27天的成果,实现控制台版权信息,但ui还是太像原书了! 请多多指教,不喜勿喷 我在b站上发了视频哦 最新的版本为 1.0 Beta 1 (Build 02) 下载链接(全部版本):https://pan.huang1111.cn/s/NkXElf1
  • 1
    与纸娃娃OS的区别:64位微内核,使用UEFI启动,内存使用页管理(2MB页),中断使用APIC和IOAPIC,支持多核(对称多处理器),时钟使用精度更高的HPET和apic timer.系统内置ASCII点阵字体,也支持ttf矢量字体中文显示. 代码已在github和gitee使用GPL-3.0协议开源,仓库名:clay_figure_kernel
    Eytoue 2-6
  • 1
    《30日自作OS入门》毕业以后,开始进入自己安排的实践课程。 根据大致的实践时间先后顺序,我列为31日至60日。有些课的任务项目开始的 时间虽然比较早,而完成的时间却很晚,也按原计划的时间排列。还有些小零碎 的东西,如音量调节等就忽略不计了。所列的各个课程内容都已经实现。 ==================================================================== 31日:实现32bit的真彩色XGA显示模式,把28日~30日的程序改为全彩模式。 32日:实验从U盘Boot,从硬盘Boot,增加
  • 24
    包括书,光盘,虚拟机,二进制编码器 有帮助请粉
    鿏氪锶 1-28
  • 0
    我已经做了19天了(原书时间线,非真过了十九天),接下来该做API了,可我做着做着快红温了,我到底跳不跳?
    FIGHT 1-20
  • 140
    虽然,程序还有BUG,但是我已经迫不及待的想要来分享成果了。中文字库显示。GB2312字库。搞定 字数少显示没有问题,但是字符和符号显示有问题。毕竟使用的显示函数不同 汉字多了,见上面两图,显示还是有问题。后续继续改进。汉字出来就好。
    FIGHT 1-20
  • 1
    桌面上的“REC”图标用于录音,"PLAY"图标用于播放。 ES1371声卡的录音设置,与播放设置差不多,我这里设置为 44100Hz,Mono,8bit。因为 采用普通的单声道话筒,低精度的8bit。 文件名:Feos_rec.img。在VMware虚拟机上运行有效。 链接: https://pan.baidu.com/s/1bWUZO9-Le9DtuunmsN2vCg 提取码: feos 说明: 录音功能要求录音的音频数据能够保存,如果不能保存的话,录音还有什么意义呢? 与纸娃娃不同的是,铁娃娃现在有访问软盘的功能了,只要把录音的音频数据S
    497团 1-19
  • 42
    30天自制操作系统 这是一本很烂的书不推荐看。书中完全没有写如何编程实现中断调用和文件格式和磁盘读写,多进程切换等操作系统核心内容,只是夸夸其谈一些理论,然后演示给小白如何写一个c可视化的小程序罢了,然后穿插的讲一些操作系统相关的东西,将的也很浅,而且还是个日本人写的,我就想不明白,国产的《自己动手写操作系统》比这本书好一万倍,为啥还有这么多人看这么垃圾书,后来我懂了,30天的快餐文化更适合小白,书文不对
    FIGHT 1-15
  • 3
    先上一幅铁娃娃OS读取软盘的桌面截图。 这幅图片是铁娃娃OS在进入32bit模式后,在不能利用BIOS的INT 0x13情况下,再次读取 软盘扇区获得的。 按“纸娃娃”的作者所言,进入32bit系统以后,就不能调用BIOS功能了。不能调用BIOS 就不能利用BIOS的INT 0x13访问软盘。虽然可以在进入32bit模式之前,利用BIOS功能预 先读取,但能读取的扇区数是受到限制的。实际上是不能把整个软盘2880扇区都读入到电 脑内存里的。因为在16bit模式下,给我们利用的内存范围是&quot
    497团 12-31
  • 17
    注意:这个帖子属于边写边记,之后应该会整理成文章发到其他平台。引导代码基于我自己写的bootloader,和30天的不一样 首先,我之前看过的很多书和文章都直接默认从0号软盘引导,因此引导扇区的代码也是写死了直接从扇区0读取loader。多亏了chatgpt,我找到了IBM的BIOS文档 文档中记录了INT 19中断功能就是关于Bootstrap Loader的。其中规定了:CS=0000H,IP=7C00H(也就是引导扇区的地址),DL=读取的(磁盘)驱动器号。虽然这是BIOS提供给程序用来从指定驱动
    rmwdsp 12-27
  • 8
    FeOS 体验版: 1,在QEMU虚拟机上使用 名称:FeosQEMU.img 特征: XGA 32bit全彩显示。 功能: mpeg1解码视频,无声卡对应。 有几个小游戏程序。 方法:与操作纸娃娃系统相同,文件名改成自己习惯的名称就行了。 桌面模样 2,在VMware虚拟机上使用 名称:FeosVM10.img 特征:XGA 32bit全彩显示。 功能:有wavplay播放器,运用SB16声卡。我在VMware10虚拟机上通过。 ~.vmx中要添加一行 sound.virtualDev= "SB16",设置虚拟声卡。 有几个小游戏程序。 方法:先安装VMware虚
    497团 12-8
  • 12
    虽然曾经有一篇贴吧,叫做“28天末,中文显示成功”,里面就写了中文显示,还配了代码。但具体的思路是怎样的,我们依旧一无所知。这几天逛知乎发现一个好帖子,个人认为实现中文显示的方法比那篇帖子简单。
  • 0
    最近USB的初始化终于阶段性的结束了,三分钟热度结束,于是转向跟着Vulkan官方教程学了Vulkan(本来想着Vulkan更新所以学Vulkan,鬼知道这玩意初始化这么繁琐,画一个三角形写了一千多行)。突然发现,其实我在自己系统中顺着30天作者思路写的GUI和3D图形其实是共通的。 如果把每个窗口(图层)看作是一个3D空间中的一个物体,那么其实显示出的整个界面其实就是把这些物体渲染出来的结果,每个图层的内容就是这一物体的贴图,通过map判断当前位
    迷路的路 10-26
  • 2
    梳理的启动方法是使用软盘启动,现在这个年代也没有软盘了。我就有一个问题,怎么使用硬盘启动?
    GoutouStd 10-25
  • 10
    2024.10.13 我真的是吃饱了撑的,妄图上来就用uhci挑战USB 协议,光是uhci需要手动分配生成令牌包都已经搞得够呛了。基于之前写的uhci驱动花了两天时间终于(也许?)把uhci负责的部分搞定了(约一半都被重写了)。 好不容易搞定,手搓了一个setup令牌包挂framelist上,结果qemu log显示usb_uhci_packet_complete_error,检查了uhci控制器设置的状态位是crc_timeout_error,我直接满头问号,crc不是硬件计算的吗,咋还能timeout呢???
    迷路的路 10-18
  • 8
    想必大家都看过这篇教程吧【图片】Haribote OS 实现真彩色教程【30天自制操作系统吧】_百度贴吧 (baidu.com) 应该吧里有很多人脱离了30days的工具链 用了新版的qemu 或者其他虚拟机,那么再来看这篇教程,就有些不通用了,用新版的qemu的吧友,可能照着这篇教程做完,发现还是有问题(显示有问题),其实,你是切换到了24位模式,帖子里是32位模式啊?因为每个VESA显示卡的VBE模式功能号 都不一样,所以,更可靠的方法是枚举所有的VBE功能号,然后判断
  • 12
    MP3真的比JPEG复杂几十倍,连着折腾了两周,到最后几乎是对着别人的代码抄,终于能解码出听着像音频的音频了。以鸡哥成名曲做实验品,懒得研究win下怎么输出pcm所以直接输出成wav文件,解出来的有很多奇怪的杂音(听着像溺水了一样)。 累死我了,先歇一段时间,再看看能不能修复这个问题。。 (如果能修好就修好后再放github,修不好就这样直接放github了)
  • 16
    mpeg1中的音频信号是按mp2标准编码的。 要从mpeg文件里还原音频信号,需要作mp2解码的工作。 mp2解码过程中需要用到浮点数运算。之前因为遇到sprintf( "%f" ,3.1415 )无法正常输出, 无法调试,只好断念。 后来想到用变通的办法,也可以解决浮点数的输出问题,即如果要输出浮点数3.1415, 先乘10000。 再分离出整数部分3和小数部分1415,中间加一个“.”,就能输出完整的浮点数。 %f问题解决后,发现在一定的条件下,其实现在的编译工具还是支持浮
    497团 9-21
  • 12
    高考完了,研究了一下jpeg格式,属于一边学rust一边学jpeg了。我发现这方面网上完整的中文资料很是稀缺,虽然能搜到很多文章,但都是不完整的,搞得我花了大量的时间去研究MCU、Block、FrameComponent、ScanComponent之间的关系,陆陆续续花了我半个月的时间。最终终于写出了一个简单的、作用有些的、甚至解码出的图形还有些问题的jpeg查看器。目前只支持BaselineDCT(SOF0),YCbCr色彩的jpeg图片查看器。 我怀疑解码的问题出在了IDCT变换或者DC Diff解码上,有没
  • 5
    基于gtk3和cairo(开罗图形库),在最新的Fedora39系统下开发的。窗口可随意改变大小。
  • 3
    icestar OS最新进展,任务栏可以上下左右拖动,窗口实现最大化,最小化,拉伸等操作。
    xbfltyz 8-1
  • 20
    《从0开始自作OS入门》的封面: 出版社介绍网页地址:http://zero.osdev.jp/ 封面图是从这个网页上摘下来的。 网站上有这部书的开头部分内容,可以免费窥视。也有PDF的下载,但我下载PDF后,打开还需要密码。 密码怎么申请到? 也不清楚。不过,前面大约有二十多页,包括目录可以看到一些内容介绍。 这本自作OS与《30天自作OS》有什么不一样呢? 看介绍我大致理解可能是如下: 1,以前的《30天自作OS》需用软盘起动OS,知识已经陈旧了。作者采用现在新的
  • 0
    怎么进入64位模式我不知道。
  • 0
    我想要把系统改成64位的。
  • 9
    HolonOS运行植物大战僵尸等各种游戏。
    HolonOS 7-22
  • 10
    调试ES1371声卡的现场图: ES1371(1373)声卡图: 历史回顾 当时选择ES371声卡的缘由: 1,是因为它属于32bit的PCI总线下的设备,也是学习PCI设备的必须要掌握的一步。 2,VMware虚拟机对应ES1371声卡,便于脱离实际设备,专心调试程序。 3,关键是在网上看到《编写基于VMware5的声卡驱动》,作者:张立殷。 这篇文章是PDF格式,可以下载。 《编写基于VMware5的声卡驱动》比较简略,但对学习过《30日自制OS》的朋友 来讲,一定会心领神会,知道作者在讲什么。
    497团 6-17
  • 20
    这本书总以harimain作为入口函数,想问如何才能更改?
    Bill_sq_Wu 6-14
  • 4
    在学习这本书的03_day/harib00e的项目时,发现一个现象,每次重新磁盘镜像文件时,地址0x2616处的值是随机的,每次都发生变化.有没有遇到同样现象的朋友?一起研究下原因?猜想这个是作者估计做的一个标记/?
  • 21
    一个自制操作系统,30天后的目标是什么?大概应该要能满足: 1,在实机电脑的硬盘或U盘起动并运行。 2,满屏图像分辨率,32bit色彩。至少要达到XGA。现在还要满足宽屏显示器。 * 3,驱动声卡。即能播放语音和音乐。 4,驱动网卡。 声卡种类繁多,大致可分为三大类: 一,SoundBlaster声卡。它在90年代的电脑中得到普遍使用。比如SB16是16bit,支持44.1KHz 采样频率。音质可比CD。可在DOS系统和Windows95系统中使用。其控制原理与后来发展的声卡 相比要简单
    497团 6-3
  • 0
    (声明:本系统不开源)上面看到的,就是我们ViudiraTech社区基于30day底层深度开发的一套操作系统,系统源码中基本上很少见到30day的影子了。 新功能和样式等:文件隐藏功能,新主题,桌面壁纸,自动识别文件类型,时间,ACPI等功能。并且我们修复了30day原本的桌面输入卡死问题,并彻底优化了代码,(声卡驱动已完成,但没有制作播放器)重写了整个API,可惜没有实现真彩色。 预计即将完成重构计划,准备重写引导,准备兼容新机器。 系统预

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

会员: haribote

目录: 个人贴吧