2013年苹果秋季新品发布会官方视频原声(中文字幕)

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享

(1个打分, 平均:5.00 / 5)

我们是否真的需要大数据了嘛?

(没有打分)

国内开源的嵌入式实时Linux:XtimesLinux

作者email:guohui703@163.com

引言:

Linux实时化研究是业界一个很老的话题,自从RTLinux在1999年采用独创的双内核方式实现Linux实时化以后,采用双内核方式一直是Linux实时研究的一个重要方向。在2005年左右,MontaVista公司在Linux2.6内核上使用抢占补丁的方式实现了linux的软实时,使得Linux内核的实时响应性能大为提升。目前桌面版本的Linux内核大多使用了抢占功能。

采用抢占补丁的方式比双内核方式的一个最大优点在于其编程接口的统一性。在抢占补丁方式中,实时应用与非实时使用可以使用统一的Linux API接口,他们之间的通信方式仍然采用传统的进程间通信方式即可。抢占补丁方式可以实现软实时,在硬实时方面仍然能力不足。MontaVista公司为了实现硬实时,在抢占补丁的基础上使用较为复杂的技术比如将自旋锁改成互斥量、高精度定时器、中断线程化等机制,这些机制的修改涉及到驱动程序已有的运行机理,因此会影响到Linux内核的稳定性,这对于稳定性要求高的场合,比如无线通信以及电信级应用,并不合适。经过业界测试表明,MontavistaLinux对于硬实时系统并不合适。

RTLinux引领的双内核方式通过中断虚拟化的方式能够很好地实现硬实时,虽然其需要为实时任务专门设计一套编程接口,而且实时任务与非实时任务的通信也要使用的专门通信机制,但由于其硬实时性,在一些工业控制等实时要求高地领域有重要的应用之地。在双内核方式中,实时内核接管中断,而非实时内核(即Linux)使用一个软件标志位作为其虚拟中断,虚拟中断的方式把中断控制器完全交给了实时内核,因而能达到很好地实时响应性能。双内核方式除了编程接口的不统一之外,也还有其他不足之处,比如实时内核没有自己的内存管理功能,在内存的分配仍然依赖于Linux; 实时内核虽然接管了中断,但中断的现场仍然是Linux来保存和恢复的。可以说实时内核和非实时内核是紧密耦合的,这对于系统的维护以及稳定性非常不利。

RTLinux在07年被WindRiver收购后,在开源社区就变得不活跃了。不过RTLinux的变种RTAI仍然活跃于开源社区。RTAI是完全免费,开放的,不受RTLinux专利的限制。RTAI代表“Real-Time Application Interface”,它必须与Adeos补丁一起工作。Adeos实现了一个硬件抽象层,其最重要的功能仍然是中断虚拟化,不过它比RTlinux时代的中断虚拟化功能更加完善。硬件抽象层的存在以及其功能完善,使得实时内核和非实时内核之间由紧耦合关系变为松耦合关系,这对于系统的稳定性以及代码维护是非常重要的。硬件抽象层使得Linux所需的物理资源或者从硬件抽象层获得,或者直接访问硬件(针对于Linux专属设备),套用虚拟化术语,Linux已作为实时内核的客户操作系统被调度运行。

RTAI/ADEOS 将Linux作为客户操作系统运行于实时内核之上的方式实际上是嵌入式虚拟化的内容。嵌入式虚拟化(embedded virtualization,又名Hypervisor)是最近几年热门的研究内容,它是为了弥补传统操作系统在实时性、安全性、多核扩展方面的不足而提出的。针对系统实时性的Hypervisor的方案目前主要有WindRiver hypervisor,OKL4,Lynx OS,Xenomai等。嵌入式虚拟化代表了解决Linux实时问题的目前最为先进的方法,但目前正处于推广阶段,开源的方案也比较少,上述方案中只有Xenomai是开源的,但Xenomai一般这针对某个芯片平台提供一个参考的源代码版本,如果要应用到具体平台中,还需要深入的源代码阅读才能完成移植工作,这对于一些设备厂商而言,无疑是一项高的门槛。

针对Xeonmai在平台支持方面的欠缺,笔者所在团队用了近2年半时间开发了XtimesLinux,专门针对ARM平台,而且针对特定开发板提供板级的实时方案,降低使用门槛,而且代码完全开放,希望能被工业控制,信号处理、通信等领域试用,以图在国外厂商所占据的实时基础软件市场中取得立足之地。
阅读全文»

(1个打分, 平均:5.00 / 5)

兼容ARM9的软核处理器设计(首本在FPGA上实现兼容ARM9指令集处理器设计的书)

         这是一本描述如何使用硬件描述语言Verilog进行FPGA设计的参考书。按照本书的指导,读者可以设计一个32位的RISC架构处理器—兼容市面上流行的ARM9微处理器。读者在完成RTL编程后,可以在购买的FPGA开发板上运行ARM9兼容的嵌入式程序。
  使用Verilog HDL进行编程到底属于硬件设计还是软件设计?这是一个很难回答的问题。它处于传统的硬件设计和软件设计的交叉点:描述的对象是硬件,但采用的方法和软件设计类似。市面上充斥着各种介绍Verilog HDL设计的书,但都是以介绍Verilog HDL的语法为主,兼而给出一些简单逻辑的Verilog RTL描述。但没有一本书介绍如何使用这种精简的语言进行成熟作品的设计,本书填补了这方面的空白。
  一个成功的RTL设计将是价值连城的,譬如ARM公司的系列处理器内核,它们都是采用Verilog等硬件描述语言进行描述设计的,用户如果想使用这些处理器内核,将需要付出昂贵的授权费用。正因为设计出成熟的RTL作品非常难,因此很多书籍对此回避,或者大而化之。好比我们在市面上看到的旅游指南书,都是连篇累牍地介绍该国的地理概貌、风土人情,以及各种介绍数据;但是这样的书籍并不受读者欢迎,而那些由旅游者介绍的各种攻略,由于有旅游者的现身说法,使人读了以后有种身临其境的感觉,受到了读者的热捧。本书尝试做一个Verilog RTL设计攻略的尝试,以流行的RISC处理器为目标,向读者传授编写Verilog程序的第一手的经验和体会。
  正因为设计出成熟的RTL程序比较难,很多公司的诸位同仁虽然口头上大力宣扬“创新”的重要性,同他交谈简直是口不离“创新”,言不离“变化”,但如果真的要他稍微改改样儿,则反而会认为非常不稳妥。指原因很简单,所谓创新,所谓变化,初期总是不稳定的,总是没有受到时间检验的,能够直接“盈利”的项目是不会稍稍“改样”来做检验创新的实验品的。于是,我们的创新要成长为众人接受的稳态的变化,需要走很长很长的一段路。幸而,在FPGA设计上,可以接受这种创新、这种变化。因为FPGA是可以不断重复可编程的,如同我们练习毛笔字的那种蘸水写的字帖,练完后,等字迹一干,下次再练不受任何影响。也就是说,读者只需要一块FPGA开发板,加上掌握了一定的Verilog RTL设计技巧,你也就和进行最高端的处理器设计的公司,比如ARM、MIPS等公司站在同一条起跑线上,他们能做的,你也能做。
  处理器设计在我们眼里之所以是那么高不可攀,原因就在于这只是为少数公司所掌握的,并不是为大众所能够掌握的技能。对于RISC处理器,我们都知道三级流水线、五级流水线,但都没有一个生动的例子来显示这三级流水线是如何工作的,是如何协调数据、指令的关系。也许有这样的开源的32位的RISC处理器设计,但都非常复杂,读者要弄懂它们,要花费大量的工夫。而且,市面上最主流的处理器是ARM公司推出的一系列RISC处理器,读者对它们的架构与指令集都有所了解。基于此,作者针对ARM9的指令集与架构,介绍Verilog RTL设计,以便读者了解处理器设计的架构,能够在FPGA上真正运行一个32位的RISC处理器。
  对于FPGA设计,最重要的是能够在开发板中运行起来。开源的32位RISC处理器开发出来了,它最大的功效是能够帮助FPGA设计者在实际中应用,而不是成为一个展览品,供大家解剖学习。对于本书开发的兼容ARM9微处理器,全部的Verilog RTL描述只有不到1800行代码,存放在一个文件当中。FPGA设计者只需明白设计的I/O接口,即可例化在设计者的设计当中,可以最大化地方便设计者。同时,由于ARM9的开发工具众多,相关的嵌入式软件设计人员也占据了主流,因此,在嵌入式软件资源方面,兼容ARM9处理器的应用会受到这些因素支持。读者在本书中得到了兼容ARM9处理器的Verilog RTL设计后,可以在网络资源以及从事嵌入式软件开发的朋友中得到支持,以在FPGA设计应用中,真正实现完全自我掌握的SoC设计。
  长久以来,我国的处理器设计水平落后于欧美国家。虽然龙芯在基于MIPS的架构上有所突破,但在更加流行的ARM架构上鲜有建树。众所周知,以Intel为代表的CISC处理器设计所采用的技术高深,设计过程复杂,在后面的追赶者望尘莫及。有些人在看到Intel的高科技设计水平后,自叹弗如,于是对其他人在处理器上的追赶嗤之以鼻。这就好比看见西方人吃西餐礼节繁琐、堂而皇之,于是自惭形秽,觉得还不如不吃饭了。殊不知吃饭不仅有西餐的吃法,而且还有快餐式的KFC、麦当劳式的吃法。ARM和MIPS就好比饮食界的肯德基与麦当劳。他们为业界提供了RISC架构的处理器,这些处理器都是采用硬件可综合语言编写而成的,易于其他芯片设计公司集成。这种设计方式生产简便、灵活快速,深受其他芯片设计公司欢迎。这就好比快餐式的做法,业界一致摒弃了Intel这种西餐式的吃法。读者如果有志于在处理器设计方面进行突破,那么掌握Verilog RTL的设计技巧,对处理器进行钻研,一定会有所拓展。
  本书以Verilog RTL设计为核心,从第1章建立Verilog RTL设计模型开始,到最后一章能够对Linux操作系统进行仿真。读者通过本书可以切实掌握到基于ARM9的数字电路设计流程,并能够利用成熟的MCU软件设计工具生成BIN文件,通过BIN文件和一个只有1800行代码的兼容ARM9处理器内核,读者能够快速完成FPGA设计。
  第1章的主要目的是建立Verilog RTL设计的模型。我们知道,进行Verilog RTL设计,必须先具有基本的硬件思维,使得在编写软件式的Verilog代码时,能够时时刻刻警惕自己写的每一行代码都会对应着实体逻辑。这一章会对数字电路的基本模型进行梳理,在这个基础上,我们才能进行复杂逻辑的组织与设计。
  第2章基于第1章建立的基本模型,采用硬件模型,使用Verilog语言进行基本的电路设计。首先,分析了Verilog这种硬件描述语言的语言特点。它是一种非常类似C的编程语言。针对RTL设计,它只有寥寥的几种格式。正如我们手机上的笔画输入法,正是这三四种格式,经过组合变换,可以写出各种各样复杂的逻辑。在掌握了Verilog RTL的语言特点后,这一章将带领读者进行串口通信的设计。串口通信涉及串行收发数据,是硬件设计中离不开的调试接口。通过该章建立的设计理念,只需寥寥几十行代码就可以设计一个高效的Verilog RTL程序。
  第3章介绍了Modelsim仿真。Verilog RTL设计第一步的检验是进行仿真。该章建立了仿真的基本流程。读者可以通过编写task函数来定制激励,比如在对UART串口进行仿真时,可以通过一个task函数把并行数据串行发送到RTL设计的输入端口上。
  第4章介绍了FPGA及FPGA开发板。FPGA是一种奇妙的芯片,它可以模拟各种数字电路的功能—只要我们按照RTL的规则编写了数字电路,FPGA就能很快成为这种功能的芯片。单独的FPGA就如同人的大脑,但如果离开了手臂、腿脚以及眼耳鼻舌等,那再聪明的大脑也不会有所作为。以FPGA为核心的FPGA开发板就如同人脑和人身体结合在一起一样,在我们编写的程序的指导下,FPGA开发板可以实现各种特定的功能。但如果再进一步,把32位的RISC处理器放置于FPGA内部,那么我们指挥“FPGA”的效率就会进一步提高。该章除了对FPGA和FPGA开发板介绍以外,还通过具体的串口通信例子,零实践指导读者对FPGA开发板进行了解。
  第5章着重介绍了ARM9TDMI这种曾经风靡一时,现在仍发挥着巨大作用的处理器架构。ARM9的嵌入式开发人员应该对ARM9的编程模型了如指掌,特别是系统设计工程师,必须熟悉汇编级的应用,才能对系统进行调试。该章将从设计的角度对微处理器的中断和指令集进行解读。我们看到的介绍ARM9的指令集都是从一条条的汇编指令的角度入手的,但是本书通过指令集的各种指令的结构把它们总结成了20类指令。于是,对第6章提出了一个课题:如何在一个.v文件内实现20条指令和7种中断。
  第6章是本书的核心,它将结合之前章节讲述的知识点,共同呈现出这只有1800行的ARM9微处理器代码。从RTL的角度看,它是由一条条关于寄存器和组合逻辑的描述组成的;从ARM9的编程模型的角度看,它必须实现ARM9架构的20条指令和7种中断;从处理器流水线的角度来看,它必须在三级执行、五级执行之间进行折中;从FPGA执行的角度来看,它必须适应FPGA的结构,在时序和面积之间折中。可以说,Verilog RTL编程就如同带着镣铐的舞蹈,在受到种种约束的情况下,还要跳出优美的舞蹈。该章将以简为纲,尽量把复杂的东西通过简洁的描述呈现给读者。让读者不仅能够理解它,而且在使用时,也能够很轻易地融入到自己的设计中。
  第7章介绍了兼容ARM9处理器内核运行的第一个程序—Hello World。在学习C语言时,学习的第一个程序就是输出Hello World。在做好了一个兼容ARM9的处理器设计后,最美妙的事莫过于在开发板中通过串口同样通过C语言描述输出Hello World。现在看看我们具有的元素:FPGA开发板、串口、处理器内核,只要我们通过ARM公司自家流行的RealView MDK以任意一款流行的ARM9 MCU为原型,就可以编写出BIN文件。这些BIN文件在例化入FPGA内的ROM后,它就从死的状态变成活跃的了。我们将看到,这些代码指挥FPGA通过串口输出任何字符串。这一简单的例子将使大家享受到SoC设计带来的乐趣,在以后的FPGA设计中可以尽量使用处理器来简化繁琐的设计流程。
  第8章介绍了兼容ARM9处理器内核性能测试—Dhrystone Benchmark。我们知道了处理器的功效,但还不知道这款兼容ARM9的微处理器内核的性能如何。本章将延续第7章的SoC设计流程,对这款处理器内核进行体检,以便获得关于它的第一手资料。经过该章的测试后,我们发现,这款兼容处理器内核可以达到1.2 DMIPS/MHz。
  第9章介绍了uClinux仿真—结合SkyEye,启动不带MMU的操作系统。有了FPGA和处理器内核的结合,本书将具有另外一个主旨,那就是把操作系统引入设计当中。SkyEye作为一款软件模拟处理器的工具,它可以作为我们这款内核的标尺,衡量它运行现代流行操作系统的能力。操作系统虽然复杂,但我们同样可以通过编写一个简单的testbench的方式,结合1800行代码构成的处理器内核,让这款操作系统也能在Modelsim中运行。经过仿真,可以看到,它可以输出同SkyEye同样的log信息。硬件工程师通过该章同样可以了解到MCU的构成。
  第10章介绍了Linux操作系统—结合mini2440开发板,启动带MMU的嵌入式操作系统。在该章中,读者可以看到开发ARM9兼容处理器内核的优势:它能够得到的帮助实在是太多了。我们不仅有软件模拟器,而且还有市面上极为流行的ARM9开发板。通过开发板,我们可以看到Linux操作系统启动起来,现在,通过编写一个tb文件,我们同样能够在Modelsim中再现ARM9处理器是如何启动Linux操作系统的。本书不同于其他只是介绍性质的书籍,通过实际的仿真步骤,我们能够清晰地理解Linux操作系统是如何与处理器内核结合在一起的。
  最后,本书附录提供了带有注释的兼容ARM9处理器内核的Verilog RTL描述。读者可以在这1800行的代码中体会Verilog RTL编程的巧妙之处,以便融会贯通,应用在自己的设计当中。如果能够在设计中应用这款处理器内核,那将是笔者最大的欣慰。

(5个打分, 平均:4.80 / 5)

Nick McKeown . “OpenFlow Innovation in Campus Networks”

(没有打分)

OpenStack – 开源云计算项目

时下云计算如火如荼,众多企业纷纷推出云计算相关的应用,不少还搭建企业私有云和少数公有云(代表为Amazon)。然而,业界仍然缺乏一套实用的云计算管理平台,很大程度上提高了云计算应用的门槛,制约了云服务的发展。

作为开源的IaaS(Infrastructure as a Service)平台,OpenStack遵循Apache许可,其长期设计目标为同时服务公有云和私有云,提供统一的开源资源管理平台。

OpenStack是美国国家航空航天局(NASA)和Rackspace合作研制的云计算管理软件,最初目的是存储大量的空间视频、图片等信息,随着云计算需求的增长逐渐成长起来。

自2010年7月项目成立开始,OpenStack就收到广泛关注和支持。项目成员不乏业界巨头,包括Cisco、Citrix、HP、Intel、Dell、IBM、Microsoft等。其中Dell和HP公司还利用OpenStack创建了自己的云计算解决方案,当然,所使用的企业版本与开源版本有所区别。经过两年左右的发展,该项目已经吸引了超过160家公司和2600多名开发者,足可见认可程度。

目前,OpenStack项目由若干子项目组成,包括计算组件Nova、存储组件Swift、镜像管理组件Glance、认证组件Keystone、前台组件Horizon和网络管理组件Quantum。其中前三个组件是OpenStack的核心,经过长期开发和完善,已经较为成熟。大部分的组件都是松耦合联系,支持分布式,较好的保证了扩展性。

OpenStack在虚拟化技术上支持Xen、KVM、VMware、ESX、LXC、QEMU、UML等,并通过统一的虚拟层(Libvirt)来调用,实现底层对用户透明。对现有虚拟化技术较为全面的支持使得OpenStack可以被广泛部署在多种场景,而不用担心底层需要选取哪家技术实现。同时,OpenStack还支持亚马逊的EC2和S3的API,使得面向AWS(Amazon Web Services)开发的应用可以轻松的实现迁移。

OpenStack的版本命名与Ubuntu类似,按照字母顺序,分别为Austin、Bexar、Cactus、Diablo、Essex。最新版本为第五版的Essex,这一版经过了较长的开发周期。从第五版开始,OpenStack开始注意代码的质量和用户的体验,真正可以作为较为实用的云计算管理平台。

另外,根据最新的消息,OpenStack将在今年的4月16-18日在美国旧金山举办OpenStack Conference & Design Summit峰会,讨论该项目的未来发展,大家不妨略作关注。

客观的看,OpenStack对推动云计算的发展有着积极的作用(类似的项目包括OpenNebula、Eucalyptus等),但目前的版本,功能还比较简单,面向的群体也有限。同时,不支持网络虚拟化等新兴技术,在某种程度上制约了OpenStack的功能和性能。希望OpenStack在未来能更加完善,成为功能完善而又易用的云计算平台;也希望有更多的优质开源云计算项目能够成长起来,促进产业的发展。对OpenStack有兴趣的朋友可以尝试访问官方网站,或者trystack.org,简单注册后即可进行体验。

(5个打分, 平均:3.60 / 5)

Google 扩增实境(Augumented Reality)眼镜计划

北京时间5月30日消息,据《连线》杂志网络版报道,谷歌联 合创始人谢尔盖·布林(Sergey Brin)近日在参加一次电视节目时透露,希望明年正式推出谷歌眼镜(Project Glass)。谢尔盖·布林 还在该节目上让加州副州长加文·纽森(Gavin Newsom)亲身体验了佩戴谷歌眼镜的感觉,并首次向外界演示了谷歌眼镜的显示界面和操控方法。

Gavin Newsom Project Glass

纽森在接受《连线》的采访时说,“你很容易就会忘记自己戴上了谷歌眼镜,同时又能感受到它的强大用途。它非常地轻,戴在头上感觉很舒服,也不会显得过于惹眼。”

在演示中,布林通过眼镜右侧的触控板对系统界面进行操作。他用手指在触控板上来回滑动,寻找他用谷歌眼镜拍的一张照片。然后他把眼镜戴到纽森头上,继续用手对触控板进行操作,直到找到了那张照片。

不过,当纽森询问布林如何进行拍照时,布林并未回答。

纽森称,他对谷歌眼镜的显示屏画面质量印象深刻。当时电视节目现场光线并不适合展示显示屏,但画面质量依然“极其清晰。”

很多人担心佩戴谷歌眼镜会导致难以与真实世界互动,但纽森说,他很容易就能重新将注意力转移到桌子对面的布林和主持人身上,然后再次将注意力带回到谷歌眼镜上显示的照片上。

在布林将谷歌眼镜重新佩戴好之后,他向下滑动触控板,然后继续参加与主持人的访谈。《连线》猜测,向下滑动的作用可能是退出相册界面。因此可以推测,滑动应该是操控谷歌眼镜界面的主要动作之一。

布林称,当天他所展示的谷歌眼镜是早期原型机。“我希望明年某个时间能够正式推出,但仅是一点点希望而已。”

然而,即使是在早期,谷歌眼镜也令人印象颇深,纽森对《连线》说,谷歌眼镜“远比人们想象得要走得远。”

谢尔盖·布林表示,Google X团队开发这款眼镜已有两到三年的时间,而他本人过去一年也全程参与了谷歌眼镜的开发。他还解释了谷歌开发这种技术的原因,“我们的想法是,你可以自由的体验整个世界,而不必整天与手机混在一起。”

Image

用户戴眼镜,眼前会出现快捷标识。

用户戴上眼镜能查询地图。

Google 共同创办人 Sergey Brin 戴着 Project Glass 眼镜现身

Image
Google 的 Project Glass 计划前两天刚出现的时候,看起来像是一群工程师闲暇时间太多在做的梦而已(事实上应该也是这样没错啦…)。但没想到的是,现实世界中还真有这么个设备存在,而且是由 Google 的共同创办人 Sergey Brin 戴着,出现在一场慈善活动上。据拍照的 Robert Scoble 叙述,Brin 的眼镜看起来完全是可运作的,可以看到淡淡的蓝光投射在 Brin 的眼睛上,同时听说不只是 Brin,其他 Google 的高层像 Vic Gundotra 也都有这样一台设备在测试中。

Google 的智能眼镜计划最近引起了不小的反响。许多人热情的盼望它早日成为现实,但是持批评态度的也不在少数。这些批评有讽刺性的言论,有搞笑的视频,还有对于其毁灭人性的能力的担心。虽然智能眼镜实现的不过是智能手机的功能,但是它将现实虚拟化的潜力却更大,或许这是许多人担心的理由。

google_project_glass

在这里,我们暂时把它可能产生的社会影响放到一边,从用户体验的层面考虑一下。毕竟,智能眼镜和手机不同,它所输出的文字和影像直接展现在视野之内,是否会让人产生不舒服的感觉?Technology Review 网站为此采访了神经生物学专家 Mark Changizi。

根据 Mark Changizi 的说法,Google 智能眼镜的设计从生理学上来说,并不会给人带来不舒服的感觉。“从视觉上说,图像不会在你的前面浮动,因为它只展现给一只眼,”Changizi 解释说。

这就好像你在视野的边缘看到自己鼻子的影像,多数情况下我们不会去注意。”从每只眼中接受非对应图像,实际上已经是我们非常习惯的东西了“。

同时,他也指出,视频中展示的清晰的文字影像并不容易做到。“他们要展示给你文字,要辨别那种细节,你需要将影像放在眼睛的小窝前面,那是你视野的微小、中心的部分”。而这通常不是我们接受非对应图像的地方。

Changizi 认为,影像的合理位置应该放在视野中的脸部那里。“更加自然的放置位置,特别是非文字的时候,应该是你的视野中脸部影像已经存在的地方。”这会使得电子图层像是自己身体的一部分。电子界面的体验更加潜意识化,而不是让人感觉是盯着手机屏幕。

一位 Google 员工告诉 Technology Review,智能眼镜开发团队进行了许多实验,包括户外测试。对于测试对用户体验视觉层面的结果,他没有透露任何细节。显然,Google 官方放出的视频更多的是一种理想状态。

虽然最终结果如何还不好预测,但是 Changizi 比较乐观。“现在我们看到许多人在走路的时候眼睛盯着手中四寸的屏幕,彼此碰撞,” 他说,“无论 Google 的智能眼镜结果如何,它肯定会是一个提升。”

题外话:the Verge 网站采访了 Google 联合创始人 Sergey Brin。Brin 说智能眼镜仍处于早期原型机阶段, Google 发布视频的目的是收集人们的反馈。他说,Google 希望最终产品能够和各种不同的设备相连接。另外,智能眼镜还需要通过射频辐射测试,这对于 Brin 来说非常重要。当问到产品上市的时间时,Brin 回答说,”给我们些时间“。

提供14种服务

谷歌公司在其社交网站“谷歌+”上简单介绍“眼镜计划”,公布产品原型和一段2分30秒的视频。视频从眼镜佩戴者角度拍摄。

从视频来看,谷歌眼镜并非传统模样,主体是一根钢圈,可以架在鼻梁上,右眼前方是一块邮票大小的透明显示屏。

谷歌公司称,眼镜计算机提供拍摄照片、视频聊天、天气信息、导航信息、日程提醒等14种服务,由用户声控操作或所处环境触发。

视频中,用户行走在美国纽约街头,不时张嘴说话,向眼镜下达指令,譬如拍一张照片并上传至“谷歌+”;当他看向一面空白墙时,显示屏弹出对话框,提醒用户晚上有约;当他看向窗外时,对话框显示降水几率为10%;显示屏还弹出对话框显示用户的一名朋友就在附近。当收到朋友信息询问当天稍后能否见面时,显示屏出现提醒内容;用户口述回复,显示屏原有内容上叠现一个麦克风标识。

将进行公开测试

谷歌公司旗下X特别项目小组两年前开始开发“眼镜计划”。这一团队专门致力于开发概念产品,包括自动驾驶汽车。

谷歌称,眼镜尚在调试阶段,现阶段公布旨在展示“这项技术的样子”,希望网民就眼镜计算机提供的服务内容提出建议。谷歌官网上写道:“我们现在公布这一信息是想开始与您交流,获得您的宝贵参与。”

路透社4日援引谷歌内部人士的话报道,谷歌眼镜将进行公开测试。

路透社评论说,这款眼镜计算机产品可能帮助谷歌公司更好地推动谷歌在线服务深入人们日常生活,包括广告支持的网络搜索、地图和电子邮件等;也有助谷歌应对竞争对手苹果公司推出的新款iPhone 4S和语音助手Siri。Siri具备发电子邮件、安排会议、获取天气信息等功能。

上市日期尚未确定

关于“眼镜计划”,先前业界和媒体颇多揣测,这是谷歌公司首次公布细节。美国《纽约时报》今年初报道相关内容,称第一批产品可能于今年年底前上市,售价为250美元至600美元。

用扩增实境(Augumented Reality)加强过的生活,会长什么样子呢?

Project Glass 的假想影片,整合了语音输入、日程表、Google Maps 导航、打卡、视频等功能,除了搞不清楚要怎么操作外(眼球追踪?),其实看起来在技术上已经很接近实现了!

它可以传输近在眼前的信息。谷歌实体的“眼镜”设备的扩张正在干扰人们的商业模式,大家甚至不用掏出手机就能拍照,找到方向,或是给朋友发短信。如果谷歌的“眼镜”设备都可以做得到,那么你还会需要买最新一款iPhone或是在Facebook上花费大量的时间么?

该设备的模拟视频让人垂涎三尺,其展示了“眼镜”设备的强大能力,包括通过语音控制发送信息、拍照、分享Google+、找到朋友们的位置、查看地图、找方向、设置日历提醒等等。

将这么多的功能塞进这一“眼镜”设备中需要花费很多时间和努力,很多种可能会导致这一产品失败,最显而易见的如果这一设备笨拙或是老土,亦或它太重,太昂贵,易损坏,或者大众还没做好接受它的心理准备。让我们先忽略掉上述可能,倘若谷歌解决了种种问题,如果这一设备推出后广受好评,那么这将对苹果和 Facebook造成什么样的冲击呢,他们该如何采取措施保卫自己的利益呢?

“眼镜”设备把人们在iPhone和iPod上的所使用应用通通装到里面,“眼镜”可能是运行Android系统,并且由于该设备可能是声控的,它也有可能变成谷歌针对Siri的竞争者。

(2个打分, 平均:4.00 / 5)

E语言概览

[陈怀临注:这次是真的matrixos同学的文章。上次是他的徒弟干的。。。希望同学们大胆假设,小心求证。。。但切记不要attack。。。]

e语言是基于c语言衍生出来的一种新型面向对象语言,向下完全兼容标准c语言语法,是matrix系统的基本程序设计语言,在这里,我们将只针对扩展的面向对象语法进行描述。

e语言所用到的文件类型:

1)      对象描述文件(***.d):描述一个类、对象或多个类、对象的文本文件,类、对象的定义都在该文件中实现。

2)      头文件(***.h):c语言完全等效的文件类型,可被对象描述文件、e源代码文件、以及汇编语言文件包含引用。

3)      e源代码文件(***.e):

4)      汇编语言文件(***.s):

5)      其它资源文件:(*.*):可以为一切类型文件。

类的定义:(类实际上就是一个库,在对象设计和编译时刻引用的库文件)

class className  <类继承列表>

{

head:   这个段是对象的基本信息特征之数据结构(有待具体标准化定义)

private: 这是私有数据段

int data;

public: 这是公共段

float   abc;

int protect ba;        protect关键字表示这个变量只能被外部读。

int Function();

byte   (& Dev1)[4096];               可读可写,按字节访问,4KB大小。
dword  protect (& Dev2)[256];   只读地址,按双字访问,256双字大小

interrupt: 这是中断服务程序挂接段

INT_16    : status intUartSend(int, void *);

INT_27    : status intTimer(int void *);

message: 这是消息函数段

MX_CLICK : status onClick(int, int, int, int);

WM_DOUBLECLICK  : status onDoubleClick(int, int, int, int);

event: 这是响应事件的函数段

EV_MOVE<parameters>    : status move (int, void *);

EV_HIT <parameters>      : status Hit(int, void *);

space: 这是存储空间定义段,定义对象运行所涉及的内存空间。

heap<memory: size=4096,unit=8>;

pool <memory: size=16MB,unit=4KB>;

Dev1<remap: globalBase=0xc0001000, size=4KB>;

Dev2<remap: globalBase=0xc0002000, size=4KB>;

compose组成这个类的实体模块文件。

xxx.e;

xxx.s;

xxx.a;

xxx.bmp;

option 编译这个类、或对象的选项。

};

对象的定义:

className objName

{

格式和类定义相同,但是,对象的定义优先级高于类的定义(遵循越是后期定义的变量,优先级越高的原则),例如:需要重定义的变量,函数,直接在本对象中进行重新定义即可,如下:

public:

char string[32];        在原有类的基础上,为本对象新定义一个新的变量。

重新定义对象运行所需内存空间。

space: 这是存储空间定义段,

heap <store=memory, unit=4, total=8KB>;

pool <store=memory, unit=2KB, total=32MB>;

};

我们也可以不需要类的支持,直接定义一个全新的对象:

object objXxx

{

head

private:

int  abc;

int Function();

………..

…..

space:

};

编译的时候,以对象定义为单位进行编译,生成相应的二进制对象实体文件:object.o,可供matrix系统进行装载。

E语言源代码文件(*.e):

*.e文件是一种文本文件,兼容标准c语言。在设计e语言程序时,我们完全可以按照c语言的语法,定义变量、函数,引用.h头文件,以及跟汇编文件混合编程等等。例如:

定义3个变量:

int   a, b, c;

定义3个函数:

void Func1()

{

a = b + c;

}

int Func2()

{

b = a + c;

return b;

}

status  Func3(int,  void *p)

{

。。。。。。。

。。。

return   status;

}

我们根据实际需要,在类、或对象定义文件中,把上面的函数或变量分配到合适的对象段,例如:

object Xxx

{

。。。。。

。。。

把变量b和Func1分配到对象公共段:

public:

int   b;

void  Func1();

把Func3跟一个消息挂钩:

message

WM_XXX : status  Func3(int,  void *p);

。。。。。

。。。

};

其他剩下的变量和函数,将在编译时自动分配到对象的私有段。因此,在.e文件中,函数和变量的定义以及各种运算、逻辑语法的表达,跟传统c语言几乎没什么区别。不同之处主要表现在e语言扩充的外界对象的访问和引用上面,下面简单介绍:

1如果要在e语言中引用一个外界对象。

首先,定义一个对象别名,并为这个对象别名指定实际的对象实体,如下:

class  #objXxx  =  mx . com . uart

或,

object objType #objXxx  =  mx . com . uart

class objType 来自.d文件的对象和类的定义。)

然后在代码中,通过对象别名使用这个对象,例如:

objXxx . Buffer[0] = 0×12;          访问对象公共数据,向串口缓冲区写入一个数据。

Xxx  =  objXxx . GetBardRate();  调用对象函数,获取串口波特率。

SendMessage(objXxx, , , );            向对象发消息:

我们也可以不必定义对象别名,在代码中直接使用对象:

mx . com . uart . GetBardRate();

2)模糊对象引用:程序设计时,当我们不完全知道某个对象的类型或类库,但是知道这个对象的部分接口或成员,这时,我们也可以直接定义一个未知类型的对象别名:

object #objXxx  =  mx . Xxx;

然后通过这个对象别名访问该对象成员。这种模糊对象的引用,可以最大限度的不依赖类库和对象类型定义,使得e语言中对象使用更加灵活方便。

3)对象其它操作:

对象动态copy: 以一个对象为基础,可以在运行时复制出来其他很多相同对象个体。

对象动态move: 一个对象动态从一个matrix系统迁移到另一个matrix系统。

对象是matrix系统中最小的软件单位,一切复杂多样化的应用,都是由一个一个的对象组成,它们之间相互协作,达到实际的功能。

纯对象为基本的软件开发。

未完,待续。。。。。。。

(3个打分, 平均:3.67 / 5)

全面向对象,矩阵操作系统

在人类的认知世界中,我们总是习惯于把事物按照个体对象来感知和总结,例如,一辆汽车,一座房子,一个人,一棵树等等。同时,一个对象又可以分解成多个小的对象,例如,一辆汽车由发动机,轮胎,方向盘等各种组件组成;再进一步,又可以分解成更加微小的对象,例如,发动机可以分解成若干个小零件构成;更进一步,每个微小的汽车零件,又可以分解成极小的分子、原子组成。这是人类对现实世界的认知模式,我们可以总结如下几个基本概念:

1、对象,个体是组成客观世界的基本单位。

2、对象,个体的定义可以宏观,也可以微观,主要根据我们认知的层次需求。

3、对象之间可能有相互作用和依赖的关系。

4、对象可能会随着时间的流失,其本身发生变化。

5、大多数对象存在于有限的空间和时间中。

6、任何一个对象个体都是唯一的,世界上没有完全相同的两片树叶。

7、有生命对象,和无生命对象。

8、…………

人们已经证实,对象概念符合人类认知的思维习惯,有利于软件开发和应用,传统的面向对象设计语言如c++,java等正被主流与用于各种软件系统的开发。但是目前,这些传统的面向对象程序设计并没有做到完全的面向对象理念。例如:当我们用c++开发应用程序时,在源代码中设计定义类:

Class classXxx{,,,,,,};

再根据类去定义对象:

classXxx  objXxx;

然后调用对象的函数或访问对象的变量:

objXxx.Function(,,,);

xxx = objXxx.Variable;

源代码是这样写的,它具备面向对象的特性,但是,当编译链接后生成可执行文件(例如.exe)运行起来后,我们不能再看见和接触这个对象objXxx。也就是说,在传统的面向对象程序设计中,我们仅仅只能在源代码开发阶段使用有面向对象特性,一旦源代码被编译链接运行,所有对象的特性完全丢失,这是一种不完全的面向对象软件设计方法,不符合人类的思维习惯,必然会给应用和开发带来诸多的不方便。

我们下面将要讨论的技术,就是要实现最彻底的面向对象系统,我们暂时称之为:矩阵系统matrix

matrix是一种完全面向对象化管理的操作系统,其基本概念是:一切皆对象。一个文件,一个程序,一个驱动,都是一个对象个体,从他们的设计、创建开始到编译运行,自始自终都具备对象的一切属性。无论是开发的源代码,还是编译过后产生的二进制体,我们在matrix中所看到的,都是对象模型。举个例:

当我们设计一个串口驱动程序时,在开发阶段,是这样描述的:(假如这个驱动的名字为objUart)

Object objUart

{

定义对象自身变量:

……

对象接口函数:

int   GetBaudRate();

void  SendData();

…………

…….

}

在编译阶段,编译器以每个对象为基础,编译生成对应的二进制对象实体,objUart.o, (注意:这并不是传统系统中的二进制对象文件),objUart.o拥有一切对象信息,包括自身的数据以及对外公共接口等,以便当这个对象被装载进入matrix系统后,其他装入的对象可以进行访问。

运行阶段,objUart.o会被装载进入matrix系统内存,其它的应用软件(确切地说应该是其他对象),便可以在matrix系统中直接访问这个串口对象公共接口。

例如我们接下来开发另一个应用程序对象objA,将要调用上面串口对象接口,

源代码开发这样写:

object objA

{

……

objUart.GetBaudRate();   获得其串口波特率。

objUart.SendData(,,,);     向串口发送数据。

……

}

编译生成二进制对象objA.o,然后装载进入matrix系统运行。

需要注意的是,对象objUart和objA是两个完全独立的对象个体,他们在开发和编译阶段完全可以互不相干,只有在运行时,并且两个对象都已经装载进入matrix系统,才发生相互作用关系。当其中一个对象并不存在时,系统也不会发生崩溃。例如,当objUart对象不在系统时,objA在调用串口对象接口时,会收到一个来自系统的消息,表明串口对象缺席,进而做出相应处理。

通过上面的实例体验,我们大概了解这种全面向对象程序设计的基本概念,没错,一切皆对象,从设计、编程,编译到装载运行,所有的一切都是基于对象以及互动的概念,我们设计一个软件系统,将主要集中考虑的是各个对象功能,以及对象之间的互动关系,这正好类似于我们现实世界环境,不同的是,现实世界的对象由分子原子组成,而matrix系统里的对象,则是由代码和数据组成。

Matrix核心是实现这一切技术的基石,下面我们来看看matrix系统的架构。

如图所示,matrix的核心由下面几部分组成:

1、基本的多线程、处理机调度内核。 为适应matrix系统设计需求,我们开发了一款名为e-kernel的基本多任务调度内核,有64个任务优先级,其中32个优先级用于实时调度,另外32个优先级用于一般任务调度。E-kernel支持单处理机,对称多处理机、非对称混合多处理机。非对称混合多处理机MMP是matrix系统引进的一种新的概念,基本目的是允许不同类型的处理机共同存在系统中,以满足各种不同的数据处理需要。例如,一个系统中可以有通用处理机,用于一般程序运行,也需要数字信号处理机,用于数学运算,也可为图形专用的处理机等,这些不同类型处理机共同存在于系统中,统一由e-kernel进行管理和调度。需要注明的是,在matrix系统中,我们会以函数为单位,为每一个函数标记一个匹配的处理机类型,以便调度到合适的目标处理机上运行。

2、基本的存储管理单元。 包括内存管理和外存管理,为对象运行时提供内存空间,也可为对象数据永久存储提供外部磁盘空间。在matrix系统里,各个对象按照一定的层次关系组织起来,当一个对象载入matrix系统后,这个对象就永久的存在于matrix系统中,而不管系统是否掉电上电,或重新启动。由此可见,对象体首先是存在于外部永久存储空间上,然后再根据需要,部分载入内存进行运行。存储管理单元也为对象开发屏蔽了大量细节技术,当我们开发设计一个对象时,根本不再需要考虑内外存访问使用等问题,就可以直接在对象中引用,例如,在对象中定义两个变量Va,Vb:

object objXxx

{

……

int Va;           一般程序变量,放在内存,系统掉电、重启将不能保存。

int saved Vb;     可存储变量,系统掉电、重启将保留当前值。关键字saved表示这个变量放在外存空间。

……

}

3、对象管理器。 对象管理器是matrix系统对象存在的基础,管理对象的载入、移出,组织对象在matrix系统中的层次关系,以及实现对象之间的互动。

4、根对象mx根对象mx有两个作用,第一,是一切对象载入到matrix系统的基点,类似于传统文件系统里的根目录;第二,为其他对象提供基本的内核服务,例如:我们可以调用mx.CreateThread(,,,,,)来创建一个线程。根对象mx是与matrix核心一起开发并紧密的绑定在一起的。

5、接入/接出单元。 这是matrix系统对象跟外界交互的基本接口,主要包括:调试接口,本机或交叉调试;操作显示接口,简单的控制台shell,复杂的图形界面操作等,实现人与对象互动;各种网络通信接口,互联网,移动通信网等,方便在各种网络中对象之间互动。

注意:以上并不是构成matrix系统的必须部分,在一个功能更加简单的matrix系统中,可能只存在一个控制对象和网络通信接口,例如一个网络温度传感器,放在珠穆朗玛峰山顶,我们可以在非常遥远的北京某一matrix系统设备上,方便地获得当前山顶温度,使用下面句法:

(IP:128.123.113.2)mx .TemSensor . GetTempreture();

(IP:128.123.113.2)表示这个温度传感器对象所在matrix系统的网络IP接入/接出地址。

举这样例子或许并无多大实用意义,这里主要是想说明matrix系统的简易方便使用的特性。同理,我们可以再举个例子,获取某辆汽车轮胎气压,语法如下:

(Cell: 13312345678)mx.MyCar.GetTierPressure();

(Cell: 13312345678)表示这辆汽车对象是通过移动网接入到matrix系统网络。

matrix系统的对象模型定义和互动:

在传统的面向对象基础上,我们扩展了对象结构,定义了一种更加符合人类思维习惯,功能更加强大的对象模型。

类的定义:

class className  <类继承列表>

{

head:   这个段是对象的基本信息特征之数据结构(有待具体标准化定义) 

private: 这是私有段

int data;

protect: 这是受保护的段,跟传统的定义有所区别,这个段的数据外部只能读

char *ss;

struct store xxxx;  int const abc;

public: 这是公共段

float abc;

int Function();

interrupt: 这是中断服务程序挂接段

INT_16    : status intUartSend(int, void *);

INT_27    : status intTimer(int void *);

message: 这是消息函数段

MX_CLICK : status onClick(int, int, int, int);

WM_DOUBLECLICK  : status onDoubleClick(int, int, int, int);

event: 这是响应事件的函数段

EV_MOVE<parameters>    : status move (int, void *);

EV_HIT <parameters>      : status Hit(int, void *);

space: 这是存储空间定义段,定义对象运行所需动态内存空间。

heap <store=memory, unit=8, total=4096>;

pool <store=memory, unit=4KB, total=16MB>;

};

对象的定义:

className objName

{

和类定义相同,需要重定义的变量,函数,直接在对象中进行重定义,例如,如下重定义内存空间段:

space: 这是存储空间定义段,定义对象运行所需动态空间。

heap <store=memory, unit=4, total=8KB>;

pool <store=memory, unit=2KB, total=32MB>;

};

跟传统面向对象不同的是,matrix系统也可以不需要类的支持,直接定义对象:

object objXxx

{

head

private:

int Function();

………..

…..

space:

};

定义上面对象的私有成员函数:

objXxx :: int Function();

matrix系统可以在运行时刻复制已有的对象:

object objCopy;                    首先,定义一个空对象。

objCopy  =  ObjectCopy(objXxx);      复制已有对象到空对象

objCopy.Function();                   调用复制对象的成员函数。

matrix对象描述语言,对象编译器,对象处理机,对象接口总线:

实现matix系统,我们还需要一个基本的工具链,那就是描述matrix对象的一种新型高级语言和他的编译器,这个对象描述语言基于c/c++,并作了相当大的扩展,我们暂时定义为e语言。e语言应该是一个比较灵活的语言,代码设计以对象(或类)为基本单位,及所有的代码都是包含(属于)在某个对象里面的。e语言支持高级语言和低级语言的混合编程、编译。生成的输出结果以每个对象为单位的2进制的对象体,用于装载、连接进入matrix系统。为方便开发,也可以支持多个对象体融入一个对象文件,一次性连接载入matrix系统。

对象处理机的开发,是为了更加很好的适应matrix对象这种工作模型,主要有两点考虑:对象互动的安全性和对象装载的灵活性。

matrix系统对象装载可以在任何时刻,任何内存地址,这就要求二进制对象具备可重定位特点。常规的处理机架构下,比如ARM处理机,需要进行动态连接,对象内部所使用的相对地址必须根据载入内存的地址进行变动,这会消耗大量的时间。对象处理机可以解决这一问题,对象处理机有一组基址寄存器,分别用于代码段,数据段,堆栈段,扩展数据段访问,以及对象互动访问。代码、数据的寻址都是基于这些基址寄存器,并有着访问权限,越界检查的功能,可以非常灵活的进行对象重定位,以及相对安全的对象互动。这种技术跟x86系列处理机段寻址结构类似,但相对简单高效,并且在现有的处理机基础上很容易实现。不可否认,就要被遗弃的段访问技术,在matrix系统里将会派上很大用场。

对象接口总线,前面讲到,对象体二进制文件装载进入matrix系统,成为可运行的一个对象,这是一种对象入住matrix系统的方式,还有另一种方式,那就是通过对象总线的连接进入matrix系统。比如说一个智能家庭的中心控制器,是一个matrix系统,我们可以通过对象总线,把各种按照对象规范设计的家电设备连接到中心控制器,于是就可以通过这个中心控制器,以对象方式访问各种家电设备对象。例如:打开电视机,mx.TV.PowerOn();

对象运行时连接技术:

matrix系统中每个对象都是独立的代码、数据空间,对象之间的互动访问必须保证高效率,如下两个对象objA和objB,相互调用对方的公共接口函数实现互动。

object objA                              object objB

{                                        {

objB . Function(,,,);                           objA . Function(,,,);

}                                        }

两个对象独立设计和编译,它们只需要知道对方公共函数的调用方式即可,当两个对象编译后载入到matrix系统时,它们并不知道对方具体存在于什么内存位置,更不可能知道对方的公共函数的地址,同时为了保证效率问题,它们之间也不可能通过系统调用的方式来实现互动,这就需要一种新的技术实现直接对象间调用,我们称之为运行时连接技术,例如:当objA第一次运行到调用objB的函数时,会发送一个对象连接请求信号到matrix核心,matrix核心进行各种权限检查,如果符合要求,就直接把这个函数地址连接到objA内部,当下一次调用该函数时,objA就不必要再次向系统发送请求,直接可以调用这个函数。这就是所谓运行时连接技术,它跟人们之间相互交流,从生疏到熟悉的认识过程非常相识。

matrix系统的优势:

一个新颖的系统,可能并不是很容易地列举出来一大堆优点缺点,也许只有往后的运用,才能逐渐的体现其各种优势所在,对创作者来说,往往就是一个不经意的信息,导致整个想法的产生,总结归纳如下几点:

1、简单、高效的程序设计:完全的对象化,更加符合人类思维习惯的代码设计,让程序设计更加注重对象功能的实现,而不用再去学习复杂的系统方面知识或架构、工具方面等技术。

2、统一的程序设计:一切皆对象,程序设计就是对象设计,不再像传统系统那样,分为各种各样的软件类型,协议,开发等等。对象之间耦合也是统一的格式,更加方便分工合作开发、以及重复使用其他人的智慧成果。

3、灵活开放的系统组成:以对象为基础构建的系统,可以根据实际运用需要,增加、裁减、或选择不同的对象个体。

4、便利的网络互动:以对象为基础网络通信或编程,完全不需要了解各种复杂的网络知识和技术,网络对象之间和本地对象之间的互动通信,除了速度有差别以外,其他完全没有区别。

5、数字地球:各种仪器仪表互连提供统一标准。

6、虚拟现实世界。

matrix是一个巨大的工程:

1)首先是matrix系统本身的实现,包括matrix 核心,e语言编译器,开发工具等(如果要想获得更好的对象运行性能,对象处理机架构也必须被实现。)

2)matrix系统各种技术规格、对象规范的定义和文档撰写,需要一个专门组织机构来负责,并且是免费开放的。

3)矩阵网络的实现,多网合一,各种中间层设备和通信软件,需要各个厂商合作。

matrix系统开发现状:

matrix系统思想来自电影《黑客帝国》,作者经过多年的努力,利用业余时间,致力于开发并实现了matrix核心里面的多任务调度e-kernel第一版,接下来会继续开发第二版内核的同时,将定义完备的matrix对象模型和e语言语法。往后的任务会更加艰巨,希望新的力量加入,一起来实现这个有趣的工程。

联系邮箱:mx65536@gmail.com

慎重声明:
由于我平时工作比较忙,不常来网上逛,没想到大家的评论如此激烈,甚至吵骂起来了,实在是我不愿意看到的。首先感谢大家这么热情的支持,不管鼓励也好,还是怀疑也好,都谢谢大家.

在这里,我需要向大家,以及陈首席澄清一件事情,matrix并不是我本人的言论,事实上这是跟我一起接私活做项目的合作过的兄弟发言,弯曲的帐号也是他一手包办帮忙申请的,没想到我的朋友如此这样在网上较真,希望各位海涵,如有他骂过的网友和说过的脏话,我代他向你们致歉.

最后,谢谢大家的关注.感谢弯曲,陈首席,以及其他编辑同志,给这个发表文章的机会.谢谢你们搭建这个平台,让更多的思想,技术展现在大家眼前.

(2个打分, 平均:5.00 / 5)

内网也可以DropBox——私有云“阳盘”小记

过去一两年里,云存储的美国鼻祖Dropbox——这个几十人的小团队在4年间将企业的估值做到了100亿美元。2011年,苹果也推出了自己的云存储产品——iCloud。苹果前CEO乔布斯将iCloud评价为“下一个伟大远见”的产品。同观国内,金山、腾讯、360、阿里、华为、联想、中国移动等巨头纷纷进入,就连酷盘、115网盘等中小创业公司也纷纷一头扎进这个行业当中。
上述公司的技术架构和商业模式也几乎和DropBox如出一辙:建立大规模云存储后台服务,同时推出前台客户端,吸引大量用户参与,从中产生收费用户收取费用。
相对于个人市场,企业用户对文件存储和分发软件有着更紧迫而现实的需求。但是,如果把这种模式照搬到企业市场,存在着一个弊端:即,上述产品都需要用户把数据传送到位于互联网机房的云后台,而基于敏感数据的安全管理以及当前云模式诚信机制的担忧,很多企业不会选择轻易的上传企业数据。同时,企业对存储产品的要求,也有别于个人。
针对企业文件存储需要,在2010年底,几个在通信领域有着丰富工作经验的创业者,成立了新云软件,专门研发针对企业使用的私有云存储软件,并且给该产品起了一个很有四川特色的本土化名称——阳盘(YoungDisk)。针对企业存储需求特点,除了具有个人存储产品好用的客户端和分享功能外,阳盘着力打造了企业需要的数据私有化、数据存储加密,以及按照严格企业组织架构进行文档分发的控制功能。
阳盘基于C/S架构设计,同时也支持web客户端。企业可以将服务器部署在企业内部机房,甚至企业部门内部。同基于个人产品自发共享的模式不同,阳盘为系统设计了一个超级管理员,超级管理员可以给部门管理员赋权,也可以直接将某一个共享目录指派给某部门单独共享。
产品特点
1、文件微观同步技术
有别于传统文件同步,YoungDisk采用文件微观同步技术,将文件拆分成极小的单元进行同步,实现了快速差异对比、差异同步,在较差网络链路的极端情况下,可提供高速同步效果。
2、加密传输通道
文件传输通道采用SSL协议进行加密,数据传输安全有保证,防止黑客恶意窥探和窃听。
3、严格权限管理
用户采用组、用户交叉权限管理,不同的用户可以继承不同组的属性,保障用户仅能按照企业管理规定,操作权限内的文件。
4、灵活组目录共享
组可拥有多个共享目录,组内用户可指定对共享目录内文件的操作权限,包括只读、可删除、读写,
5、选择同步
可选择指定目录进行同步。
6、文件误删除恢复
对于误删除的文件,用户可通过恢复机制进行恢复,保证工作的连续性。
7、手机和WEB客户端
可通过手机和WEB访问存储文件,适用于出差、会议、网吧上网等临时获取指定文件的场合需要。
目前,新云公司团队规模依然不大,从最初的几人发展为10人规模,目标是打造建立企业内部更安全、更灵活的DropBox。2012新春伊始,新云愿意和各路豪杰一起,打造更给力的企业级私有云存储,合作方式包括并不限于产品代理、产品直接整合、甚至直接肉身加入。
在内网也想DropBox起来吗?您还等什么呢?需要的可以在这里跟帖留言,新云团队竭诚为您服务!
(5个打分, 平均:3.60 / 5)