在Linux和Mac OSX启动的同时使用Windows是用户普遍的需要,使用虚拟机可以解决此问题。
最佳方案是在各个系统中使用同一个虚拟机镜像文件。找到一种分区格式,Window,Linux,Mac OSX均可读写,支持4G以上大文件,在各操作系统中读写速度较快且稳定。
本实验分析和尝试了多种文件系统格式,供大家参考。
2. FAT32
不支持4G以上大文件,但虚拟机数据文件一般都会超过4G。
3. NTFS
Mac OSX不支持对NTFS的写操作,需要安装其它软件支持,由于不是原生支持,软件对硬盘有一定损耗,且有将硬盘中数据写乱的可能。
4. EXFAT
Windows, Mac OSX, Linux在安装软件后均可支持EXFAT,但是在LINUX中读写速度非常慢,造成虚拟机操作变慢,一般用户肯定接受不了。
5. LINUX
Linux文件系统不被Max OSX识别支持
6. HFS+
HFS+在Linux环境下是只读的,不可写
7. HFS
可被Mac OSX,Linux原生支持读写,在安装相应工具后能被Windows识别只读,但是Lion以上磁盘工具不能直接格式化为HFS格式,需要用Snow Leopard磁盘工具操作,使用HFS存在一个严重问题: Linux在死机时很有可能将其分区写坏, 导致之后Linux都只能以只读方式挂载
8. 注意
需要将虚拟机文件放在前四个分区中,否则Windows不能识别
9. 结论
暂未找到完美解决方案,只好让Linux与Mac各用各的虚拟机镜像。
将测试过程遇到的问题总结成文档,让与我有相同需求的朋友少走弯路。如有哪位找到了完美的解决方案,欢迎回贴共享。
此文件为sum.sh
#bin/base
s=0i=1
num=$#
while [ $i -le $num ]
do
a=$1 #a为从外部输入的第一个数
((s+=a)) #只加第一个数的值
shift 1 #往后移动一个数,使第二个位置移动后变成第一个数
((i++)) #控制循环次数
done
echo "这$num个数的和为:$s"
在调用此程序代码页时输入n个数
sh sum.sh 1 2 3 4 5 6 . . .
文档名称
YFIOs策略开发指南
版本
V1.0.0
作者
叶帆
日期
2012-12-25
历史
文档列表
http://www.sky-walker.com.cn/MFRelease/YF_document_list.pdf
1 YFIOs简介YFIOs就是YFSoft I/OServer的简称,在物联网、云计算时代,一切以数据为中心,不同的传感器通过不同的方式接入网络,通过云计算的方式为不同的终端用户提供服务。
为了适应这种新形势的发展,加速和降低各种传感器、智能模块的入网代价,以微软成熟的.NET Micro Framework系统为基础,打造出物联网时代的轻量级嵌入式组态系统 —— YFIOs。
详情请参见《YFIOs技术白皮书》。
2 策略开发2.1 YFIOs SDK安装请参见文档《YFIOs安装指南》。
2.2新建策略项目选择YFIOs Strategy模板进行策略开发。
2.3代码模板
public StrategyInfo GetStrategyInfo()
{
StrategyInfoinfo = new StrategyInfo();
info.Name = Name;
info.ConfigSize = 0;
returninfo;
}
代码模板会自动生成如上代码。
2.4 Hello world我们在OnRun函数里,添加如下代码:
public int OnRun(IOperateop, StrategyMode mode,object arg)
{
op.Print(MessageType.Debug,"OnRun", Name);
op.Print(MessageType.Information, "HelloWorld!!!", this.Name);
return0;
}
2.5 策略测试2.5.1 编译添加策略编译我们刚刚编写的策略代码。然后启动YFIOs Manager程序,单击树形控件 中的【策略列表】项,双击列表控件中的【新建…】选项,则弹出用户策略窗体。
我们选择策略Debug\le\ YFIOsStrategy1.pe文件。
进入【执行模式】面板,我们选择执行模式为Loop,设置循环周期为200ms。
2.5.2 配置项目属性单击树形控件中的【项目属性】选项,双击列表控件中配置数据,则弹出如下界面,默认情况下,用户调试、普通信息、系统调试信息选项是没有勾选的。
我们勾选所有的选项。
2.5.4 项目部署调试保存项目后,单击【调试】->【部署】菜单(或单击部署图标)进行项目部署。
2.5.5 项目运行单击【调试】->【启动】菜单(或单击启动图标)让项目开始运行。
从信息输出窗口中,可以看到,策略已经正确加载,也输出了 Hello World!!!
3 策略调试虽然编写的策略可以在YFIOsManager通过信息输出的方式进行调试,但是如果策略比较复杂,这种调试方法还是不太理想。
因此我们构建一个TinyIOsEmulator,在Visual Studio2010环境里进行策略调试。
由于YFSoft.DriverTest是一个标准的.NET MicroFramework程序,所以调试的时候,需要把系统设置为.NETMicro Framework系统模式。
确保PF9和GND连接。
3.1 构建TinyIOsEmulatorTinyIOsEmulator项目里需要引用我们刚刚创建的策略。
测试的主要代码如下:
public class YFIOsEmulator
{
YFIOSios = new YFIOS();
public void Run()
{
YFIOsStrategy1mvs = new YFIOsStrategy1();
mvs.OnLoad(ios.operate, null);
while(true)
{
mvs.OnRun(ios.operate, new StrategyMode(),null);
Thread.Sleep(3000);
}
}
}
3.2 单步调试从下图可以看出,在VisualStudio开发环境里,我们已经可以进行调试了,并且调试窗口也输出了Hello world!!!信息。
4额外说明本篇文章仅仅是一篇策略开发入门的文章,要编写一个比较复杂的策略,还需要深入学习各种开发知识。
高阶策略开发相关的内容如下:
(1) 策略运行模式设定;
(2) 策略图形开发;
(3) 策略互相调用;
(4) 策略代码引用第三库;
(5) 策略YFIOBC操作;
(6) 策略直接调用驱动;
5相关资源1、.NET Micro Framework 官方网址
http://www.microsoft.com/netmf/default.mspx
2、.NET Micro Framework官方博客
http://blogs.msdn.com/netmfteam/
3、中文博客
http://blog.csdn.net/yefanqiu
http://www.cnblogs.com/yefanqiu
4、叶帆科技
http://www.sky-walker.com.cn/
5、物联网中间件技术开发论坛
http://www.yfios.net