微信号:infoqchina

介绍:有内容的技术社区媒体

Q新闻丨新版本发布潮:Ceylon、Node.js和Atom;微软公布用于Windows的OpenSSH代码;苹果开源三个加密库

2015-11-05 08:15 Q新闻
1
新版本发布潮
Ceylon 1.2、Node.js 5.0、Atom 1.1


近日,CeylonNode.jsAtom都发布了最新的稳定版,我们决定通过这篇文章快速介绍新版本中大多数值得注意的特性和增强功能。


Ceylon 1.2


Ceylon最新版1.2与上一版1.1时隔一年之久,为我们带来了如下新特性:

  • 命名构造函数 – 这些函数不依赖重载,有命名(除了类名)且命名的首字母小写,可以使用关键字new来声明构造函数。

  • 序列化

  • 原生注释

  • 更好的流敏感类型

  • let、switch、if表达式

  • 内联对象表达式

  • Tuple及Entry的解构

  • 直接引入单例成员

  • 等等。


Ceylon 1.2还引入了新的API:不可变map和set、Collection.permutations()、formatFloat()以及其它API;Java编译器进一步优化,增强了的与Maven和Java注释互操作性,为Scala库的互操作提供了基础支持,编译后的类是可序列化的;JavaScript编译器支持类型函数;重写调试器,模块可被打包成Java EE WAR Archive格式;强化IDE,重新设计在线IDE。想要详细了解Ceylon 1.2更新的特性及增强的功能,推荐阅读Gavin King发布的公告


Node.js 5.0


在历经多年的小碎步发布(0.x.y)后,Node.js于今年加快了步伐,无论是源代码提交的数量还是版本的编号都跨上了新的层级,每隔一至多个月会发布一个新的主版本。Node.js 5.0是一个中间过渡的版本,将在2016年四月被替换为v.6.0,届时的6.0版本会变成一个LTS(长期支持的)发布。有稳定性需要的用户推荐继续使用4.x.版本。


Node.js 5.0是为那些想要尝试最新增强功能的用户准备的,他们只是期待更多的重大突破。由于使用了新版的V8引擎,所有的原生附加组件都需要被重新编译,官方声明中完整列举所有的特性变更。


Atom 1.1


此次发布是继Beta通道之后的首个版本。Atom团队决定在主通道的基础上再引入两个新通道来处理代码回归问题,它们分别是Beta通道和Stable通道。如果只使用一套代码库,就可以直接由这套代码生成每一个发布版,这种代码维护模型简单,所需开销很小,但是一旦当代码公开发布后发现了问题将会造成很大的问题:首先需要回滚新版本,然后解决问题,最后再发布一个新的镜像,随之而来的问题是,在初始发布后到回滚前的这段时间内代码库会增加很多未测试的新特性,而再次发布的代码则会包含这段代码。团队决定引入分离通道并发布测试版本正是为了解决这个问题。


Atom 1.1引入了一个测量字体的新方法,这种方法依然基于DOM,但却使用了一种更可控的方法。字体测量过程曾经让IDE变得缓慢无比,所以这一改变是人们迫切需要的。新版本中针对GC暂停进行了最小化处理,当新内容需要渲染时不再总是创建新的节点,而是通过DOM元素重用来提升渲染性能。Atom 1.1中的其它改进还有:强化模糊搜索,生成更优质的搜索结果;Markdown预览支持安装的主题;以及其它几项修补。官方声明中列举了Atom最新版本中的所有增强功能。


2
OpenSSH代码
微软用于Windows的新项目


近日,微软的PowerShell团队宣布初步完成了用于Windows中进行OpenSSH通信的NoMachine工具的升级工作,并公开了相关源代码。预计,该项目将在2016年上半年全部完成。


作为OpenBSD的子计划,OpenSSH是SSH协议的免费开源实现。不同于telent和ftp中的明文传输,所有使用 OpenSSH 工具的通讯都会被加密。因此,很多远程登录工具都选择支持OpenSSH来提高通信的安全性。NoMachine就是一个拥有Windows和Linux版本的远程桌面工具。它在OpenSSH 5.9版本的基础上完成了Windows的移植工作。


去年六月份,微软宣布旗下的PowerShell框架未来将支持Windows与Linux之间的SSH加密传输。同时,PowerShell团队也将参与OpenSSH项目并将贡献相关成果。其目的不仅仅是令OpenSSH能够在Windows系统中稳定工作,更是要把相关优化反馈给OpenSSH项目。微软群组软件工程经理Angel Calvo曾表示,市场上已有许多SSH的解决方案。因此,PowerShell团队决定在这些方案中选择一个经过验证的方案作为基础,将其紧密整合至Windows。


近日,PowerShell团队的首席软件工程经理Steve Lee宣布,该团队选择了和NoMachine合作进行Windows中OpenSSH的支持工作。目前,该团队已经完成了基于OpenSSH 7.1的NoMachine代码升级工作,并正在进行代码公开化和开放贡献的工作。但是,即将公开的版本还只能算是技术预览版,只完成了基本功能,还不能作为产品发布。PowerShell团队会继续合作进行NoMachine的开发工作。该项目需要完成工作包括如下内容:


  1. 升级NoMachine到OpenSSH 7.1(已经完成);

  2. 将OpenSSL和LibreSSL替换为Windows的加密API,将其作为Windows服务进行运行;

  3. 解决POSIX的兼容性问题();

  4. 稳定代码并解决反馈的问题;

  5. 作为产品发布。


目前,该项目的进展还只是进行第一步。PowerShell团队计划在2016年上半年完成以上全部步骤。在此期间,微软表示非常欢迎相关人员就OpenSSH for Windows进行积极反馈。


3
回应争议
苹果开源三个加密库


苹果宣布开源其操作系统的安全子系统中三个主要组件,其中一个库使用的具有限制性约束的许可证引发了争议,此次声明也对该争议作出相应解释。


三个被开源的组件是:


  • corecrypto:所有加密库的基本构件,为其它库提供低阶加密原语,Apple声称,“iOS或OS X应用不应直接使用corecrypto。”开源corecrypto的目的是让开发者或其它对corecrypto感兴趣的团体可以查验它的具体实现以及安全特性。corecrypto的许可条款比其它两个库更为严格。


  • Common Crypto:一个为常见加密操作(如对称加密、基于散列的消息身份认证、摘要加密等)提供支持的库,为iOS和OS X提供加密服务。


  • 安全框架:一个为证书、密钥以及信任策略管理提供API的库。这个库中包含一些很重要的OS X和iOS服务,例如:Keychain、传输层网络安全等。


许多公开评论指出,苹果发布的声明中有一个重要细节,其实它最底层的组件corecrypto并没有被真正开源,我们顶多可以将其视为一种“代码披露”的行为。事实上,苹果强制所有下载corecrypto的用户必须接受他们的“内部使用许可协议”,这个协议授予下载者自下载日起90天的查看权利,而且明文禁止再分发。Reddit的一位评论者认为,90天的源码查看限制赋予了他们自由撤销授权的选择权:万一苹果决定停止对外公开下载“corecrypto”,这项协议可以确保他们的源码在全球范围内的授权时间最多只有额外的90天。


此举的另一重要原因是,我们实际上无法明确知晓是否能通过苹果提供的源代码有效地构建包含在正式版iOS和OS X中的加密库和框架。


尽管如此,Apple仍然希望为第三方开发者提供这些加密库从而让他们能够在自己的App中应用更多高级安全特性。



 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 秒杀系统架构分析与实战 码农必备技能:烂代码的处理之道(下) “天猫·喵葩”电商互动生态共创论坛-深圳站 程序员加班之说-谈效率 年会抽奖送什么?