cyclyy / orzos-1 Goto Github PK
View Code? Open in Web Editor NEWHobby x86 operating system
Hobby x86 operating system
OrzOs是Wang Hoi业余时间编写的一个64位操作系统。 动机: 大二迷上了Linux,最初安装各种发行版不亦乐乎。 后来迷上了KDE,看到KDE的代码感觉编写得太好了于是一发不可收拾,各种折腾,为了弥补Konqueror、KWrite和Amarok的中文乱码问题, 把Firefox浏览器的编码自动识别部分抽取移植到了KDE, 封装成KEncodingProber弄进kdelibs,后来嫌fcitx太丑了又写了个KIMPanel,但是断断续续,我又不想考研,还有可恶的魔兽世界。 折腾Linux桌面多了,也学习了操作系统课程,对内核也越来越感兴趣,于是尝试着去读Linux代码,发现完全看不懂。后来去学习了Linux 0.11和Minix 2,然后发现了osdev网站这个新大陆,于是就有了这个OrzOs。 发展: OrzOs最初是基于JamesM的一套教程,我在大三暑假花了2周多才搞懂敲进来,可以处理键盘中断和显示Hello World。 之后各种缝缝补补,添加新特性,直到有一天完全变成一团乱麻。。。 再后来各种迷茫,后来阅读了一些基本的软件工程书籍,发现编写操作系统的最大难点既不在于什么内存管理,进程调度,VFS层等等算法;也不在于8042, pci, ide, vbe等硬件接口与驱动。而在于怎么把这些组合起来。Brooks的观点现在看来真是太犀利了。 于是决定重写,就是现在的OrzOs。 特点: 嗯。。虽然很丑陋,既不简洁也不强大。但是速度还能接受,有不少有趣特性,比较酷。 实现了个TLSF内存分配器,感觉比Buddy+Slab简单多了,性能分配/释放最坏也是O(1)的。 为了在long mode下改变屏幕分辨率,内核包含了一个x86emu虚拟机,可以直接在64位long mode下虚拟执行显卡ROM里面的实模式代码。 支持了单线程的异步IO和IPC,用户空间进程也可以单线程同时读键盘,鼠标和处理IPC消息。 用户空间移植了个c运行库newlib,然后移植了libpng, freetype, cairo。 用户空间支持了浮点和SSE指令。 实现了C/S的用户空间GUI框架,创建,拖动窗口神马的。支持显示png图片,最基本的unicode和用truetype字体显示中文。在过程中也学到很多东西,比较满足啦。 目标: 就是我一个人玩着比较有趣,自己向自己炫耀技术额。平时银子不多但工作轻松,聊以自娱~~ 源码: https://github.com/wanghoi/orzos Email: wanghoi#at#126.com
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.