Chinaunix首页 | 论坛 | 博客
  • 博客访问: 532418
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类:

2010-08-31 23:58:18

微型视窗操作系统 特点:体积小,有图形操作界面,和一般的系统管理功能.以下介绍几个这样的操作系统:

[1]--- giCell 微型视窗操作系统


rtCell 实时微内核-具有下列功能:
1. 完全抢占的实时微内核结构,独立的内核栈,中断和系统调用均切换到内核栈执行;
2. 256(64、32)个优先级,0为最高优先级(系统保留),256(64、32)为空闲优先级;
3. 不同优先级任务完全抢占,同优先级之间可按先进先出或时间片轮转方式执行;
4. 在一系统(定时器服务)任务中实现内核定时器,用于超时等待内核对象、周期性定 时器、任务延迟、一次定时(此时需定义一超时后执行的过程);此服务任务的优先 级由其客户任务的最高优先级驱动,随之动态改变,以消除隐式优先级反转现象;
5. 提供任务(Task)、互斥锁(Mutex)、信号量(Semaphore)、位域标志(Flag)、 定时器(Timer)、优先级消息(Message)和环形队列(Ring buffer)内核对象;
6. 任何内核对象用一整数ID标识,而非指针,从而可避免用户任务野指针的副作用,内 核对象总数不超过61440(即60K);
7. 互斥锁支持优先级继承和优先级置顶协议,在创建时设置该协议,且总按优先级等待, 优先级继承协议时仅支持同一互斥锁的嵌套调用,优先级置顶协议还可支持不同互斥 锁的多次嵌套调用;
8. 其它对象的等待方式有:优先级等待和先进先出(节省内存)等待,在创建时设置;
9. 内核数据的同步,除在任务切换,及任务和内核之间切换堆栈时暂时关中断外,其它 地方均以延迟过程调用(DPC)方式执行;
10. 任务对象支持异步过程调用(Window用语APC,相当于UNIX中的信号机制),从而可 引导任务异步的执行一个过程(前提是任务栈不小于1024字节),此过程将在该任务 下次被调度时执行;
11. 删除避免机制,拥有互斥锁的任务及处于占有状态的互斥锁均具有防止被删除的机制, 要删除拥有互斥锁的任务必须自行终止或调用任务终止函数,而要删除任一个互斥锁 则必须先使其处于空闲状态,即没有任何任务占有此互斥锁,否则禁止删除;
12. 对象命名机制,同类内核对象可用唯一的名称标识来获取其ID,达到引用目的。
13. 在内核中实现了中断的进出接口,因此用户中断处理只需写标准的C函数,而不必关 心中断底层处理的细节;
14. 系统调用以陷阱指令(x86中int指令)实现,易于扩展到“内存保护”的进程模式;
15. 在内核库之外提供了一个简单的堆内存分配机制,用于内核对象动态内存分配时调用;
16. 支持毫秒级定时器,内核定时器周期为一毫秒;
17. 支持 X387/287 硬件浮点协处理器的任务状态保护,被动方式的任务浮点状态切换(开 中断执行,由于使用了特权指令实现,因此只能在纯DOS实模式下或虚拟机X386/X387及 后续机型上执行,而无法在Windows的DOS窗口中运行,但可在DOS的全屏方式下运行)。

giCell 视口裁减及消隐处理引擎-功能如下:
1. 完善而精巧的多视口裁剪和消隐处理引擎,与微内核rtCell紧密结合;
2. 真正的事件(或消息)驱动的多窗口(视口)技术,支持顶层窗口和透明窗口的显示和 裁剪处理;
3. 当前支持Label、Edit、Botton、Slider、Listbox、TreeView、ListView、Scrollbar和 Checkbox控件,其中的Edit控件支持剪切、复制和粘贴(ctrl+x,ctrl+c,ctrl+v);
4. 类 Windos 窗口,支持平移、缩放,光标切换、窗口系统按钮,及窗口和控件的过程回调;
5. 基于透明视口(或窗口)的裁剪和消隐处理,可生成任何非矩形(多态)窗口,本示例 中的三角形窗口就是基于透明视口来实现的;
7. 支持图形内存设备(GDC),有效避免窗口重绘时闪烁,易于实现视频及动画处理;
8. ListView支持标题栏平移和缩放,Scrollbar支持鼠标滚轮驱动;
9. 内存需求小,窗口和控件的缺省状态均不使用GDC(而是采用直接屏技术),所耗内存小, 因此实用性强,包括rtCell调度器、鼠标、键盘及图形驱动的库文件在DOS下仅70余K。

关于可文件Engine.lib和mcOutLib.obj:
1. 考虑到DOS内存的限制,库文件Engine.lib中的rtCell内核仅支持32个任务优先级(因为优先级队列太占用内存),这样即使在640K内存下,也可创建上数百个内核及GUI对象,可满足一定规模的应用程序要求; 2. 库文件mcOutLib.obj是目录giCellmcOSLib下文件的编译结果,用于处理任务的浮点协处理器(硬件)状态切换,任务浮点数状态初始化,内存分配,信息显示等操作(主要用于内核),用户也可自己编译giCellmcOSLib目录下的文件,注意:Borland C/C++ 3.1可能无法识别其中的某些浮点数操作指令;
3. 文件MAIN.C是对Engine.lib使用的具体实例,在Borland C/C++ 3.1中编译时必须打开X387/287选项和C函数参数传递约定,此文件还对任何使用透明窗口来生成非矩形窗口,以及如何使用GDC生成动画进行了演示;
4. 注意其中的一些执行顺序:浮点数操作不得放到回调函数中执行,而只能在其它任务中执行(可从回调函数中向其它任务发送消息来实现),否则程序将进行无限循环;
5. 因为浮点协处理器的任务状态切换机制使用了特权指令,所生成的可执行文件只能在纯DOS实模式下或虚拟机X386/X387及后续机型上执行,而无法在 Windows的DOS窗口中运行;
6. 由MAIN.C所生成的可执行文件在AMD机器DOS实模式、X86虚拟机qemu-0.9.0-windows以及Bochs-2.1.1下均执行良好,注意:生成的可执行文件依然是16位实模式。 压缩文件中包含窗口及其子控件的源代码,演示文件MAIN.C和DateTime.c,以及一个专用于Borland C/C++ 3.1(GUI.DSK, GUI.PRJ)的工程文件。
能力所限,不足之处,敬请指正!请将其中的“BUG”发送到邮件:taowentao_twt@163.com, taowentao_twt@sohu.com,多谢!





[2]---MATRIX NOS V.1(matrix network os) 微型视窗操作系统


Final Year Project.

Team
Thiruvambalam Sreenivas   thsree@yahoo.com   
Tharun Jacob John         tharunjacob@yahoo.com
Tony D Titus              tony_titus@yahoo.com

Government Engineering College(GEC),Barton Hill,
Trivandrum,India. 1999-2003

We are extremely grateful to Prof Balu John ( Internal Project guide, Staff Advisor )
and various resources on the net which enabled us to do our project successfully.
Credits to Brian Brown,Alexei A. Frounze,Iman Ghasr-e-fakhri.


Features

Real Mode
16 bit   
x86

I/O
File Handling
File system
Fat 12
Fat 32

Booting
Memory
Program Execution

Security
- protect bin files
- encryption
- priority level

IO control
     Key Board
     Monitor
     Floppy
     Hard disk
     Ports

Networking -
message transfer
ping
listen

Error handling

Shell       
- CLI
- Multi page
- Multi user Environment

GUI(splendor-done as another project in GEC)
multithreading


Applications


1)   This operating system can be used by students for gaining a thorough understanding of the concepts of
Operating Systems.

2)   This can also be used by Teachers to give the students a hands-on exposure to the various concepts related to OS like Bootstrap Loader, Bios handling,Shell                            
development, I/O handling etc?

3)   When developed fully this OS can be used just like any other  Commercial Operating System.

4)   The understanding of this OS will help the user to understand the PC hardware better.

5)    This source code is available to students as OPEN SOURCE - CODE
 so that they can modify/upgrade  it to get a thorough knowledge.





 

[3]--- Lvswin 3.1 OS  微型视窗操作系统


                              LVS Windows (tm)
                                     v3.1

                          The C++ Window Class System
                                      by
                              Lake View Software


                 Copyright (c) 1991, 1992, Lake View Software
                              All Rights Reserved
                        Features of LVS Windows


- Powerful windowing system.  Allows as many window objects as

memory permits.  Windows objects can be stacked, tiled, moved,

resized, and changed in many other ways.  There is a whole

 assortment of various input and output messages to interact with

 windows.  All windows are active and can be written to at any time.

- All windows can be virtual.  This allows you to create windows

larger than the screen.  Data entry screens automatically pan around

the virtual window as the user moves the cursor.  The user can also

use the mouse to pan a window.


- Multi-field formatted data entry.  You can create data entry forms

that consist of one or more input fields.  You have full control

over user input and can tie validation functions into each input

field.

- As of version 1.6, there are functions specific designed to

support the Paradox Engine.  Paradox Engine is a trade mark of

Borland.  These functions allow you to read user input directly from

a Paradox Record Buffer.  Large model only.

- Moving bar menus.  You can easily create pop-up, pull-down, and

Lotus-style menus, as well as any other custom menu that you can

define.  All with automatic mouse support.

- Scrollable pick menus.  Allow you to pick one item from a list of

items.  Also with mouse support.

- Several video output methods.  These include direct screen

writing, CGA snow reduction, and video BIOS writing.  28 and 50 line

modes available on color VGA screens.

- Keyboard management routines.  Allows you to tie keystrokes to

functions, and specify a function to be called while waiting for a

keypress.

- Full mouse support is available with all these routines.  One

function call and the mouse is enabled.  No other work necessary,

though you can manipulate mickey if you wish.

 
google翻译成中文的译文如下:

                               LVS的视窗(商标)
                                     
3.1版本

                          
在C + +窗口类系统
                                      

                              
莱克维尤软件


                 
版权所有(c)1991,1992,湖查看软件
                              
保留所有权利
                        
特点LVS的视窗


            
- 强大的视窗系统。让尽可能多的窗口对象作为
            
内存许可证。窗口对象可以堆叠,平铺,移动,
            
调整大小,并改变了许多其他方式。有一个整体
            
各种输入和输出消息分类与互动
            
窗口。所有的窗口都可以书面主动随时。

            
- 所有窗口可以是虚拟的。这允许你创建窗口
            
大于屏幕。数据录入屏幕自动平移
            
作为用户的虚拟窗口移动光标。用户还可以
            
使用鼠标进行平移一个窗口。

            
- 多场格式的数据项。您可以创建数据输入形式
            
即由一个或多个输入字段。您已完全控制
            
在用户输入,可以配合到每个输入验证功能
            
场。

            
- 截至1.6版,也有具体的设计功能
            
支持悖论引擎。发动机是一个悖论的商标
            
Borland公司。这些功能允许您直接从读取用户输入
            
一个悖论记录缓冲区。较大的模型只。

            
- 移动栏菜单。您可以轻松地创建弹出式,拉下来,
            
莲花风格的菜单,以及任何其他自定义菜单,您可以
            
界定。所有自动鼠标支持。

            
- 滚动选择菜单。让您从清单中挑选一个项目
            
项目。还支持鼠标。

            
- 几种视频输出方法。这些措施包括直接屏幕
            
写作,海巡署积雪减少,视频BIOS写作。 28和50线
            
模式可以用彩色VGA屏幕。

            
- 键盘管理程序。允许你以配合键击
            
功能,并指定一个函数的调用,而等待
            
按键。

            
- 完全支持鼠标与所有这些例程提供。
            
函数调用和鼠标启用。没有其他的工作需要,
            
虽然你可以操纵米奇如果你的愿望。






[4]--- minios 0.01 微型操作系统


minios目前已经完成的功能:
bootsector
进入保护模式
内存分配模块
简单的线程调度模块
信号量
时钟
统一的设备驱动模型
标准输入输出设备驱动
内存及字符串相关的标准C库函数


附件codes.zip的目录结构如下:
codes
|-relocate        连接程序的源代码,将bootsector和minios连接成一个可启动的磁盘镜像
|-bootsector      bootsector的源代码
|-minios          minios的源代码
|-bin             所有的目标都在此目录中。其中minios.vhd就是可启动的磁盘镜像

如何启动minios:
你必须安装Microsoft的Virtual PC 2007
你可以在微软的官方网站下载他的安装程序,程序大小约30M

安装完成后就可以双击codes/bin/vm.vmc运行minios了

如何编译minios:
编译minios共需要三种编译器。
codes/bootsector/bootsector.asm必须用nasm进行编译,将编译的结果命名为bootsector并且拷贝到codes/bin
codes/minios/platform/platform.asm必须用masm32进行编译,编译的结果在codes/minios/platform/platform.obj
其余的代码都用vc6编译即可,vc6的工程在codes/minios/minios.dsw
如果你手边没有nasm和masm32,不要紧,因为这两个文件一般不需要改动,直接用我编译好的目标文件就可以了

双击minios.dsw打开vc6,点击菜单Project->Project Setting->Debug,修改Executable for debug session一栏
将Virtual PC.exe的完整路径填入。如果你安装在默认的路径下,就不需要修改它。
然后直接Ctrl-F5运行就可以编译并且运行了。

如果大家感兴趣,我会放出具体的文档说明





[5]---pyos  微型操作系统

关于pyos

http://blog.csdn.net/xiaohan13916830/archive/2004/06/27/27643.aspx

关于pyos

有关pyos实验的心得体会,我已断断续续写了几篇,都在放在自己所维护的纯C论坛上,及哈工大紫丁香BBSProgramming版 了。最初只是自己的一个兴趣,写下一点东西也只是为了留了笔记,以利于自己以后查看方便,避免遗忘。没想很多朋友下载看后都很感兴趣,很多朋友都给我发来 电子邮件鼓励我把实验继续下去,也给我提出了很多建议,并指点了我实验中很多错误,在此,真诚的向所有关心的朋友表达一种真诚的谢意。也有许多朋友来寻问 我开发的进度安排及pyos的定位,以及为什么不用c而要用c++开发的问题。在此,我想简单的描述一下我目前对此一系列问题的看法。

在以前,我对pyos并没有一个很明确的定位,只是做为自己学习的一种兴趣,想到哪儿写到哪儿,而现在虽然也是想到哪儿写到哪儿但我确有一个比较明确的定位了:pyos将是一个给教师及学生使用的实验性操作系统。

pyos并不打算做成一个能实际大众化应用的系统,因为这样的系统LinuxWindows就已经很好了,还有很多其它非常优秀的系统,pyos是绝不可能达到那样的水准的,而且似乎也没有那样的必要。然而对于适合于中国学生学习操作系统原理来说的操作系统,目前似乎还没有一个很好的这样的系统。我目前还是一个本科学生,对于这一点,我是深有感触的,不论是Linux还是更简单一点的Minix,它们都过于庞大了,而且对于中国学生普遍较低的英文水平来说,阅读代码中的注释与相关的文献资料,都不是一件非常容易的事情。这也就造成了大多数同学在学习操作系统学习组成原理的时候感到一种枯燥,因为他们没有可以实际动手做实验的这样的一种系统。pyos正希望成为这样的角色,通过现代的c++语言,pyos可以有一个更好的结构化的设计,它的各部份都是可以替换的,比如你可以自己写一个中断类或者显卡类能实现你对系统的控制。因此pyos采用了c++来开发,它并没有考虑一种效率性,也没有期望可以夸平台,它的目标就是能在虚拟机下运行、实验的操作系统。另外,一个中国人,且英语极烂的人写的系统是不会在里面加入英文注释的:)。

如果在将来,老师会用pyos给学生做演示,会让学生用pyos做实验,我就心满意足了:)

pyos正随着自己的实验的进行,还在不断的编写改进中,离成熟还有十万八千里,我也不知自己是否真能如愿完成这样的一个系统,但我会让自己尽力而为之。

感谢大家,关希望大家继续关心与支持!谢谢!





[6]---BabyaSystem 微型视窗操作系统




Babya System包括一套迷你操作系统,Babya应用和其它一些软件。



这个是以上介绍的这些微视窗操作系统的源程序包下载URL:

这个是以上介绍的这些微视窗操作系统的源程序包下载URL

 


阅读(1372) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~