PiscisOS开发笔记_1_PiscisOS的诞生和系统特性简介

本文介绍了基于X86架构的微型操作系统PiscisOS,该系统采用汇编语言开发,支持多任务处理、FAT12文件系统,并提供丰富的系统调用。文章还展示了Helloworld应用程序的实现代码及系统启动过程。

转自:http://blog.csdn.net/otishiono/article/details/7657746


博客的前三篇文章是一个关于简单的操作系统开发的系列文章,那三篇文章写于20109月份,那时还是大三刚刚开始,和朋友枫影一起做完了一个IM系统之后我们萌生了一起写个小的操作系统的念头,从那时候开始我们就开始准备这方面的知识了,当时是看了《自己动手写操作系统》这本书,初看感觉很生涩,有很多理论知识太陌生。于是就准备把操作系统这个项目当作一个长期目标,至少在离开校园之前完成它。后来大三下期我和枫影都开始忙了,我们边忙着工作,边忙着找工作,所以操作系统这个事就被我们放下了,但是我们还是在不断的储备这方面的知识。

 

再后来,我如愿以偿找到了自己向往的工作,但是枫影却出了点问题,没能和我一起进入我们曾经一起向往的公司,后来枫影就跟同学去了别的城市工作了。而我经过实习后又回到校园,用最后一年完成了当初的目标,PiscisOS就这样诞生了,虽然现在的作品很简单,但是已经远远超出了当初的设计。现在拿出来跟大家分享一下,希望能与CSDN中的汇编板块中很多志同道合的朋友一起探讨共同进步,也希望能让想做操作系统而却很迷茫的同学能有个参考。

 

 

关于这个系统我取名叫做PiscisOS,没有什么特殊的意思,个人爱好。PiscisOS的完成我参考了很多现有的开源的基于X86架构的小型操作系统:MenuetOSMikeOSMouseOS,还有msdos的源码。其中借鉴了MenuetOS中的较多的设计方案。也参考了很多书籍资料,具体不在这里详细列出,需要的话可以在工程的References文件下找到。这篇文章一旦写出来就意味着我又要写一个PiscisOS的系列文章了,因为开发中需要很多知识,不可能一篇不长不短的文章就能说清的,所以我会分模块的把PiscisOS的开发中所选择采用的各种设计详细的介绍给大家。

 

PiscisOS的所有工程源码和镜像文件可以在这里获得:http://sdrv.ms/L96AMz

这篇文章先简单的介绍一下目前完成的PiscisOS的一些特性和运行截图。

 

 

PiscisOS是一个基于X86架构的微型操作系统,系统全部代码均采用汇编语言完成,采用的汇编程序为Flat Assember,目前包括已经现的若干个应用程序代码量为7000行汇编代码。系统采用的介质为1.44M的3.5英寸软盘镜像,镜像文件名为Piscis.vfd。

 

硬件环境:

CPU386或者更新的CPU

内存:至少16MB以保证系统内核能运行,最多支持4GB

其他:键盘,软盘驱动器

 

系统特性:

多任务:最多支持250个进程,采用时间片轮转调度算法,调度时间为10ms。进程通信机制目前只实现了一个进程等待功能。

文件系统:基于FAT12的内存磁盘文件系统(Ram Disk)

编程接口:通过50H号系统中断提供系统调用,目前已经实现的系统调用如下表:

内部名称

系统调用功能号

系统调用描述

sysc_gettick

0

获取系统tick数

sysc_getkey

1

获取键盘输入

sysc_screenandcursor

2

屏幕和光标相关

sysc_putchar

3

屏幕打印字符

sysc_print

4

屏幕输出字符串

sysc_time

5

获取当前时间

sysc_date

6

获取当前日期

sysc_createprocess

10

创建进程

sysc_exitprocess

11

退出进程

sysc_waitpid

12

等待进程

sysc_rdfs

20

文件系统相关

详细说明文档见syscalls doc.txt文件。

这里给出一个典型的Hello world应用程序的实现代码:

[cpp]  view plain copy
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
  2. ;;  Application for PiscisOS: Helloworld  
  3. ;;  Assembled by Flat Assembler  
  4. ;;    
  5. ;;  23/04/2012  
  6. ;;  Copyright (C) tishion  
  7. ;;  E-Mail:tishion#163.com  
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
  9. use32  
  10.   
  11.     org 00h  
  12. APP_HEADER:  
  13.     db  'PISCISAPP000'  ;;Signature  
  14.     dd  0       ;;Reserverd  
  15.     dd  APP_START       ;;Entry Point  
  16.     dd  APP_ARGS        ;;Arguments Buffer  
  17.     dd  0       ;;Reserved  
  18.   
  19. APP_ARGS:  
  20.     times (256) db  0   
  21.   
  22. APP_START:  
  23.     mov edi, str_hw  
  24.     mov eax, 04h  
  25.     int 50h  
  26.       
  27.     mov eax, 11h  
  28.     int 50h  
  29.       
  30. str_hw  db 'Hello, world!', 0  


下面贴上系统完整启动过程的截图。

 

 

图Boot Sector程序加载磁盘文件

 

 

系统启动成功

 

 

进入系统交互界面

 

 

系统应用程序测试

这篇文章就写这么多内容,只是做一下简单介绍,接下来我会整理开发笔记,把详细的开发过程已经其中所学习到的知识分享给大家。

敬请期待下一篇:PiscisOS开发笔记_2_开发方法详解

内容概要:本文详细介绍了“电动汽车聚合可行域的内-外结合近似方法”的Matlab代码实现,旨在通过数值仿真手段对大规模电动汽车集群作为灵活资源参与电网调度的能力边界进行建模与逼近。该方法融合内部凸包构造与外部约束逼近策略,精确刻画电动汽车在充电状态、功率调节、时间维度等方面的聚合可调能力范围,形成紧致的可行域表示,为高比例电动车接入下的电力系统优化调度、需求响应、车网互动(V2G)等关键应用提供可靠的建模基础。文中强调科研应兼顾严谨逻辑与创新思维,并倡导借助YALMIP等成熟优化工具提升研究效率。完整的代码、工具包及相关案例可通过指定网盘链接微信公众号“荔枝科研社”获取。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的科研人员,尤其适用于从事新能源并网、电动汽车调度、智能电网、综合能源系统等方向的研究生与工程技术人员。; 使用场景及目标:①研究大规模电动汽车集群的聚合建模与灵活性量化方法;②实现电动汽车聚合可行域的内-外近似算法;③支撑含高渗透率电动汽车的电力系统日前-实时协同优化调度;④学习并应用YALMIP工具进行数学规划建模与求解;⑤为需求响应、市场机制设计及V2G运营提供技术支撑。; 阅读建议:建议读者按照文档指引循序渐进学习,结合网盘提供的完整资源(包括YALMIP工具包与示例代码)进行实践调试,重点掌握内-外近似方法的数学建模逻辑、约束处理技巧及优化求解流程,并参考团队发布的其他相关案例,深化对优化算法与仿真技术在能源系统中应用的理解。
下载代码方式:https://pan.quark.cn/s/93e47adaae45 医学研究人员近期识别了若干新型病毒,经由对这些病毒的解析,揭示出它们的遗传物质序列均呈现环状形态。当前,研究人员已汇集了丰沛的病毒遗传物质与人类遗传物质样本数据,期望能迅速辨识个体是否感染了相关病毒。为便于探究,研究人员将人类遗传物质与病毒遗传物质均表述为由若干字母构成的字符串序列。继而,检测某种病毒遗传物质序列是否在患者遗传物质序列中有所显现,倘若出现,则表明该个体感染了对应病毒,反之则未感染。《病毒感染检测实验报告》是在医学研究背景下,依托软件技术基础中的编程知识完成的一个课程设计任务,其目的在于评估人体是否感染特定病毒。在此实验中,病毒遗传物质与人类遗传物质被表现为字母序列,通过比对病毒遗传物质序列是否存在于人的遗传物质序列中,从而判定感染状态。在程序构建方面,该实验所涉及的核心知识要点包括: 1. **字符串操作**:程序需处理病毒遗传物质与人类遗传物质的序列,这些序列以字符串形式呈现。字符串操作涵盖输入、输出、比较及匹配等操作,是C/C++编程的基础。 2. **线性表**:遗传物质序列可视为线性数据结构,可通过数组来表示。程序运用全局变量数组`V``D`存储病毒与人的遗传物质序列。 3. **栈**:在循环展开病毒遗传物质时,可能需借助栈数据结构来保存某个阶段遗传物质序列的状态,以便进行所有可能的匹配尝试。 4. **BF算法**(Brute Force,暴力搜索算法):BF算法是一种基础性的字符串匹配方法,用于在文本中搜寻模式。在此,BF算法用于在人的遗传物质序列中探寻病毒遗传物质序列的所有展开形态。 5. **文件处理**:程序需从文件《病毒感染检测输入数据...
内容概要:本文系统研究了基于粒子群PSO、灰狼GWO、鲸鱼WOA、哈里斯鹰HHO、蜣螂DBO、麻雀SSA六种智能优化算法的无人机三维路径规划方法,并通过Matlab代码实现了在复杂三维环境下的路径搜索与优化对比。研究构建了包含障碍物、威胁区域等实际地形特征的空间模型,综合考虑路径长度、飞行时间、能耗及安全性等多维度成本函数,对各算法的寻优能力、收敛速度、稳定性全局搜索性能进行了量化评估与深入分析。通过大量仿真实验,全面比较了不同算法在多样化环境条件下的路径规划表现差异,揭示了各类算法的优势与局限性,为无人机在实际任务中的自主导航与决策提供了可靠的算法选型依据技术支撑。; 适合人群:具备一定Matlab编程基础,从事无人机路径规划、智能优化算法研究或相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握主流群智能优化算法在三维路径规划中的建模与实现方法;② 对比分析不同算法在复杂环境下的性能优劣,服务于算法选型与改进;③ 为无人机自主导航、无人系统协同控制等应用场景提供算法验证平台。; 阅读建议:此资源以Matlab代码为核心,建议读者结合代码与算法原理进行同步学习,通过调整环境参数与成本函数权重开展仿真实验,深入理解算法行为特征,并可根据自身研究需求进行二次开发与拓展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值