那些不熟知的系统 开发语言 虚拟机 运行平台

来源:互联网 发布:阿里云2核2g 编辑:程序博客网 时间:2024/04/29 14:59

突然觉得作为一个开发人员,嗯,虽然是刚入行不久的,但也可能正是如此,所以很多系统和开发语言都没有接触过,甚至是没有听说过。

对此汗颜,做个笔记,将每一个新了解的系统和语言记录下来,或许哪一天,可以拿来装一把砖家,大笑玩笑~

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------·

微笑首先因为Android开始了解到 ios 系统,晒些简单属性,至于装备、技能、大招什么的,过招时再去细细咂摸!

基本属性:

         苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。

系统结构:

         iOS的系统结构分为四个层次:核心操作系统(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),Cocoa 触摸框架层(the Cocoa Touch layer)。最新版的iOS系统(iOS5)中,系统操作占用大概774.4MB的内存空间。

惊讶怎么又出现一个 Mac OS X 系统

基本属性:

          MacOSX是苹果麦金塔电脑之操作系统软件的MacOS最新版本,这是一个基于UNIX核心的系统,增强了系统的稳定性、性能以及响应能力。它能通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D、3D和多媒体图形性能以及广泛的字体支持和集成的PDA功能。MAC OSX通过Classic环境几乎可以支持所有的MACOS9应用程序,直观的Aqua用户界面使MACintosh的易用性又达到了一个全新的水平

        MacOSXServer亦同时于2001年发售.架构上来说与工作站(客户端)版本相同,只有在包含的工作群组管理和管理软件工具上有所差异,提供对于关键网络服务的简化存取,像是邮件传输服务器,samba软件,LDAP目录服务器,以及名称服务器(DNS)。同时它也有不同的授权型态。

 奋斗还有一个Darwin,是上面的小弟

           Darwin 是由苹果电脑于2000年所释出的一个开放原始码操作系统。Darwin 是MacOSX 操作环境的操作系统成份。苹果电脑于2000年把Darwin 释出给开放原始码社群。现在的Darwin皆可以在苹果电脑的PowerPC 架构和X86 架构下执行,而后者的架构只有有限的驱动程序支援。

           Darwin 是一种Unix-like 操作系统,整合数种的技术,包含开放原始码的XNU 核心,一种以微核心为基础的核心架构来实作Mach kernel。操作系统的服务和userland 工具是以4.4BSD (柏克莱软件套件的UNIX),特别是FreeBSD 和NetBSD) 为基础类似其他Unix-like 操作系统Darwin 也有对称多处理器的优点,高效能的网络设施和支援多种整合的档案系统。

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。

  • Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
  • Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher- order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中 都被使用。
  • Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。
  • Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
    • 任何方式可以被用作中缀(infix)或后缀(postfix)操作符
    • 闭包按照所期望的类型(目标类型)自动地被构造
    两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
  • Scala可与Java和.NET进行互操作:Scala 设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载 类),允许访问成千上万的高质量类库。

 

 
 MonoMono project logo.png开发者Novell稳定版本2.10.8[1]/
2011年12月19日;53天前 (2011-12-19)操作系统跨平台类型运行平台许可协议GPL,LGPL与MIT,或双重许可网站http://www.mono-project.com/

           Mono是一个由Novell公司(先前是Ximian)主持的项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334 和 Ecma-335)的.NET工具,包括C#编译器和共通语言执行平台。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X和Solaris。

Mono现由Novell持有双重许可,这和Qt和Mozilla应用程序套件的情况相似。Mono的C#编译器及其相关工具发布于GNU General Public License(GPL)之下,其运行时库发布于GNU Lesser General Public License(LGPL)之下,其类库发布于MIT License之下。这些均是开源协议因此Mono是一个开源软件。如果你打算向Mono贡献你的源码,则你须签署一个版权分派给Novell以允许它将这些代码在其它协议下再申请许可,从而允许Novell保留其双重许可的能力来持有Mono的商业协议。

微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于FreeBSD,Windows和Mac OS X的.NET实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。我们还可以见到另外一个.NET实现版本,Portable.NET项目,该项目与Mono项目有着很多相同的目标。

Mono虚拟机包含一个即时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64和64位模式的SPARC。该虚拟机可以将代码即时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。


 

 

Dalvik虚拟机

      (百度)   Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

 

      (维基) Dalvik虚拟机Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik是由Dan Bornstein编写的,名字来源于他的祖先曾经居住过名叫Dalvík的小渔村,村子位于冰岛Eyjafjörður

大多数虚拟机包括JVM都是一种堆栈机器,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。

 dx

dx 是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.class。由于dex有时必须进行最佳化,会使档案大小增加1-4倍,以ODEX结尾。

差异

  • Dalvik虚拟机并没有使用JIT(Just-In-Time)技术. 从 Android 2.2 开始, Dalvik 虚拟机也支持 JIT.
  • Dalvik虚拟机有自己的 bytecode, 并非使用 Java bytecode.

 

 
 
 
 
 
 
得意途中杀出一只Android、可是我的大爱啊、必须贴出来
 
Android
  • Dan Bornstein的讲座资料
  • Android虚拟机Dalvik与JVM
Android
开发
Android 软件开发工具包 ·Apache Ant ·Dalvik ·Developer Challenge ·Eclipse ·Google Code · 谷歌应用程序发明家 · Google I/O · Bionic · APK · Roboto · 快速启动
Android logo.png
Android robot.svg
 使用者接口
HTC Sense ·Motorola Motoblur ·Samsung TouchWiz
 应用程式
地球 ·Goggles ·Gmail ·地图 ·星空 ·Talk ·翻译 · Voice · YouTube
 服务
Android Market ·谷歌搜索 ·Android云端推送(C2DM)
 Google Nexus
Nexus One ·Nexus S ·Galaxy Nexus
 第三方固件
CyanogenMod ·MIUI ·InsertCoin
 衍生平台
OPhone ·百度易平台 ·Replicant
 列表
Android相关主题 ·Android装置列表 ·Android版本历史 ·Android开源应用
 其他
Rooting
 
Google ·开放手持设备联盟

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

持续更新哟、