开发操作系统实践 (一)——写给LinDos系统开发的前言
来源:互联网 发布:送外卖软件 编辑:程序博客网 时间:2024/06/16 21:24
即使你对操作系统没有任何概念,你也不可能拒绝它,因为离了它你真的寸步难行。从你家里的台式电脑,到你背包里的笔记本电脑,从你办公桌上的传真机到你私家车里的导航仪,乃至你口袋里的智能手机或者平板电脑,甚至最简单的你听歌用的MP3、MP4等等,只要你拥有这些设备,那么你必然在使用着操作系统。你见或不见,OS(Operation System)就在那里;你烦或不烦,它运行地慢慢。
我的LinDos,顾名思义取自于Linux和DOS。从字面上您可以直观地想象到,它应该是借鉴于以上两个操作系统。是的,我正是在看了介绍Linux核心的书籍以及自己以前所了解的DOS知识的基础上,萌发了写一个小型操作系统的想法的。本人有一部中兴V880的智能手机。这部手机采用的是Android系统。源于对Android系统的喜爱和膜拜,我对我的爱机几乎到了蹂躏的地步——每天都在刷机。从Android2.2到2.3.7到4.0再刷回到2.3.7,每个版本的都在尝试,直到找到适合我的手机的系统。每刷一次,我在心里都会有一个疑问,为什么那么多大神(对手机ROM制作者的尊称,如B大,G大,C大等)可以将其他手机上的Android系统移植到这部手机上来,而且运行的还很好。他们是怎样移植过来的。于是,我搜索了Android的相关资料,才知道Android是基于Linux系统专用于嵌入式设备上的,开源的操作系统。哦,我恍然,怪不得大神们能让各种Android系统听话地运行于不同的手机上,因为它是开源的。有专门的爱好者组成的开发组织在对Android进行修改,使得它能够运行到其他硬件平台上。当然这也是Android系统基于linux的基础上,得益于Linux的开源及可移植性等特点带来的方便性。难怪很多V880的fans会强烈要求中兴公布这部手机的核心代码,因为GNU的原则要求他们必须这样做。
当然我的LinDos也是开源的,因为我借鉴了Linux,就要服从GNU的开源要求。以后我会将源码逐渐发布在我的博客的LinDos栏目里,包括开发进度及日志笔记等。
我初步设计了LinDos的系统要求:
1、最简单的操作系统。换句话说,它是简陋的,可能它连最基本的一些系统功能都没有实现。但是只要它运行了,不依赖于其他任何操作系统,独立引导了计算机硬件,我就认为它是操作系统了。
2、运行于实模式,最大管理1MB物理内存,16位系统。这一点类似于DOS。
3、单用户、单任务。
4、简单实现文件管理及内存管理。文件管理采用类似于FAT12,最大管理32M磁盘的系统。但基础版本只能运行于软盘上。内存管理采用动态内存管理模式。
5、采用汇编语言及C语言混合编程。
6、DOS及Linux双重开发环境。编译器分别使用nasm及Gcc编译器。
- 开发操作系统实践 (一)——写给LinDos系统开发的前言
- 开发操作系统实践(二)——LinDos文件系统
- 开发操作系统实践(三)——LinDos引导扇区内容及运行环境搭建
- web开发—前言
- (一)开发前言
- C#项目开发实践前言
- 开发新一代的网游——前言
- ARM嵌入式Linux系统开发详解——前言
- AT91AM9200 USB HOST开发(一)—— 前言
- Java web开发(一) ——前言
- java开发基础—前言
- 从零开发一个完整的Android项目(一)——前言
- Unity3D手游开发系列笔记(一)——前言:选择什么样的游戏引擎来开发你的游戏?
- 高并发软件系统设计原理与实践(一)——前言
- 写给程序员的编程语言科普——前言
- 开发操作系统实践(四)——对文件系统的修改
- 开发操作系统实践(五)——新的引导扇区代码
- 抽象的操作系统(一) --- 前言
- 操作符的重载以及数组/vector对象的初始化
- linux find命令应用
- Struts1学习笔记(3)-----用另一种方式创建HelloWorld
- Android TextView文字过多时,通过滚动条显示多余内容
- Runnable
- 开发操作系统实践 (一)——写给LinDos系统开发的前言
- Android 数字签名
- DWZ到的问题及自己解决方案
- android软键盘弹出引起的各种不适终极解决方案 .
- 判断一个单向链表是否有环路的算法
- dom访问方法属性
- Android开发中的单元测试-初级教程(03)
- opencv 将视频读为图片放在指定文件夹中/将指定文件夹中图片读出并合成视频 cvCreateVideoWriter试分析
- POJ 1436 Horizontally Visible Segments 线段树