1st 6月1日

原创 2016年06月01日 21:51:23

6月1日 研究ゼミ と李さん

先輩のパソコンが中國人造るOS、ubuntu kylinです。初めて聞いた、見た。
三時から五時まで、先輩はプロジェクトとがを教えました。しっかり人と思うでした。最初分からないもの(OS、Virtual Machineのだ)がたくさんですけど、プロジェクトに関しての構想がはっきりになりました。
以下は中国語てノートです。

【日本语大变难】【扑街】【以上。】

笔记与资料调查汇总

项目来源与概念
由之前毕业的学长x2制作,李桑参与win部分开发。vmOS是可封装的多虚拟机多操作系统的宿主程序与应用间的系统(暂且这样叫),目的想使用户感觉不到多虚拟机多操作系统的运行。把各个子操作系统的应用显式放在宿主操作系统上,和宿主操作系统的应用平起平坐。使用时与其他应用一样触发,被触发的应用找到对应的虚拟机并检查是否开启,由虚拟机找到对应的操作系统并检查是否开启,将应用内容放入内存并运行。利用切图方法将虚拟机中对应应用的界面绘制在宿主系统的显示上,通过捕获输入和鼠标行为等将结果返回给虚拟机的操作系统达到无缝桌面的效果。

原理:
1:虚拟机通过软件模拟硬件系统功能,提供运行其他操作系统及其上软件的环境,使多个操作系统可以同时运行在一台物理机上。虚拟机本身作为一个软件在宿主操作系统中运行,其上运行的软件在宿主机分配的内存中运行(存疑),达到隔离虚拟机中操作系统及其上操作与宿主系统隔离的效果,保证安全性。
2:为什么需要多个操作系统?因为每个操作系统实现的触发进程、使用的标准等导致一些机制(接口)不一样,不同应用、软件(如编译器和)需在不同的操作系统下才能运行,故多个操作系统需借助虚拟机安装在同一台物理机上。
3:物理显示原理 : 需显示的数据从总线(Bus)进入GPU(Graphics Processing Unit,图形处理器),经过后续步骤到达显示器输出。Linux系统的显示由Xorg(X11而来)实现,并不注重UI;实现显示分两部分,用套接字传输(vmOS的传输使用TCP/IP借用)。Windows系统对于UI要求很高,但其显示相关调用似乎都属于外设驱动(不在系统中,打游戏需要下载DirectX之类的)。
4:
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
linux操作系统中存在kernal模式与user模式,两种模式可由CPU进行转换。CPU根据程序在用户态下的调用情况决定是否进入内核态(系统调用)。一般使用user模式,以限制程序的调用能力。user模式的逻辑空间包括kernal空间,user空间和包括中断向量表IVT在内的位于首地址附近的一些控制信息,而kernal空间和首地址空间可与物理内存一一对应(在虚拟机中发现宿主分配给某linux虚拟机的空间的地址和位移量可以与此系统中的这两个空间一一对应)。
关于kernal空间称作静态空间,其中存放的是一般不进行直接调用的命令(与物理地址对应),而是等待user的调用。

实现:
linux用户态下,宿主OS上开启等待server,虚拟机上配置线程client。二者用TCP/IP协议交换数据。
server:接受来自位图区域的输入,调用显示驱动绘制应用窗口。
client:把需打印的应用数据放到当前操作系统的kernal内存,把此部分内存传入一个分享内存空间,供server调用。

效果:
桌面绘制方面实现有标题的窗口和右键菜单窗口的输出。

问题:
延迟严重,无缝桌面的画面比虚拟机中的画面慢2-3倍。
部分功能无法实现,如同一应用的提示框出现后只能在提示框进行操作而应用其他部分不能操作,提示框闪烁等。
错误多,会因中途中止程序出错。
输入的编码会出错。

最初开发时的问题:
进程间同步等。

学习:理解VB中如何实现无缝桌面。
VirtualBox-5.0.20 源码阅读。现在已grep到win相关和linux相关的桌面绘制文件关键词如下。
VBoxSeamless dwStyle draganddrop WINNT vboxvideo

相关方面需了解/自学安排:
x86内容了解学习。
操作系统的网页继续学习。
编程相关的算法与源码阅读同步进行。

LINUX和windows的区别:http://iask.sina.com.cn/b/1716534.html
内核态kernel mode和用户态user mode: http://www.cnblogs.com/zemliu/p/3695503.html

版权声明:转载请联系wx:domina000. 感谢支持

python学习 二 02 爬一个图片网站,获得主链接网址,并保存

前面的章节 Python安装 python自我学习 一 python语法,及变量类型 python自我学习 二 爬一个图片网站上 书接上回,上文书说道,我们已经获得了所有类别的链接。 下面我...
  • shuilan0066
  • shuilan0066
  • 2018年01月02日 17:44
  • 64

6月1日心得

下午一直在搞mysql,装了很长时间的mysql都忘了当初是否配置了密码,也忘了常用的操作了。开始mysql装在c:/mysql,鼓捣了半天用winmysqladmin.exe操作了半天也改不了密码,...
  • whoopee
  • whoopee
  • 2005年06月01日 20:03
  • 1251

6月1日 雨

搬家。
  • blogremover
  • blogremover
  • 2006年06月26日 14:39
  • 188

2013年6月1日

今天啊问了我几个问题 1.哪里人 2.对象 3.哪年毕业 4.哪里毕业 5.是否习惯 6.工资10K 7.奖金...
  • baicaiye
  • baicaiye
  • 2013年06月01日 15:48
  • 369

6月1日每日股评

今天各大指数纷纷上涨,大盘由上周五的低位红十字星形成V型反转,明天应该是高开高走突破5000点,下午跳水申购新股 关注煤炭有色板块,银行交通银行持续关注 上证指数 482...
  • sgyhl18
  • sgyhl18
  • 2015年06月01日 16:43
  • 477

6月1日笔记

1、显示实现接口目的:为了解决方法重名的问题。类中的成员如果不写访问修饰符默认是私有的 private,类不写访问修饰符默认是 internal。显示接口的时候必须是私有的。 2、显示实现接口后...
  • lizhixiang3
  • lizhixiang3
  • 2014年06月06日 11:06
  • 283

6月1日到7月1日‘小目标’

新的六月,大一的生活马上也要结束啦,应该在最后的这段时间内再努力一把了,首先软工杯这个python项目应该作出写源代码的东西,其次应该吧鸟哥的私房菜linux看到shell部分,还有linux下C编程...
  • helloworld19970916
  • helloworld19970916
  • 2017年05月31日 22:59
  • 80

2013年6月1日工作日志

1、         去掉“添加行”, allowusertoaddrows属性变为true,然后把button7给删掉。 2、         去掉“修改行”,readonly属性变为false,...
  • lz465350
  • lz465350
  • 2013年07月02日 15:22
  • 479

2007年6月1日 星期五

又周末了,今天竟然没什么事安排下来,让我周报都不知道今天该怎么写了 捣鼓了半天MyEclipse5.5和Eclipse3.2.2,都是最新版本下载MyEclipse5.5  http://www.my...
  • liusping
  • liusping
  • 2008年08月25日 22:03
  • 160

6月1日,每日20行。

mydialog.h#ifndef MYDIALOG_H #define MYDIALOG_H#include namespace Ui { class MyDialog; }class MyDial...
  • sinat_37705093
  • sinat_37705093
  • 2017年06月01日 23:06
  • 53
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1st 6月1日
举报原因:
原因补充:

(最多只允许输入30个字)