Oracle 的 Michele Casey 宣布其 Unbreakable Enterprise Kernel (UEK) 4 发布!UEK 可用于 Oracle Linux 6 和 Oracle Linux 7 ,它们是基于 Centos 的衍生版。

UEK 4 带来了不少性能和功能方面的重大更新,包括 CPU 调度、自动 NUMA 平衡以及众所期待的内核热补丁Real-Time Kernel Patching功能。

UEK 4 中的内核热补丁功能来自于 Linux 内核 4.1 主线内核的 Ksplice 开源扩展,它可以让用户无需重启系统即可更新内核,这改进了系统安全和简化了云架构的管理。去年4月发布的 Linux 4.0 内核合并了 Live Patching,为实时内核打补丁功能提供了必要的内核模块 API 和用户空间 API/ABI。

除此之外,UEK 4 还带来了 LZ4 压缩算法、低延迟网络 polling等新的功能。以及在系统安全方面做了极大增强,包括新的随机数系统调用、内核地址空间随机化、对 SELinux 、nftables 等程序的更新等。

由于 X.Org Foundation 管理不善,可能会失去其一直使用的单字母域名 x.org 。在过去的半年里,他们尝试私下解决这个问题,但是目前看起来解决的希望不大,现在考虑寻求法律解决途径——而该域名将于 2016/1/19 日到期。

这个域名注册的时间要比  X.Org Foundation 还要早,最初是 The Open Group 用于 X Window System 的,注册于上世纪90年代(1997)。注册人 Leon Shiman 是 X.Org Foundation 的创始成员,但过去几年已经不再参与该组织。

目前最大的问题是,由于之前 X.Org Foundation 未能及时递交税务报告,而一度失去了501(c)(3)身份,所以改名为 X.Org Foundation LLC。后来在自由软件法律中心的帮助下恢复了501(c)(3)非盈利组织身份,于是又解散了 X.Org Foundation LLC,这个名字已经不再使用,而  X.Org Foundation 难以证明它和  X.Org Foundation LLC 是同一个组织。

这为各种开源组织提了一个醒。

 

2015年已经过去,回过头看看发现2015异彩纷呈,称为开源之年也不过分。企业用户以前所未有的速度拥抱开源,不仅如此,像 Cloud Foundry 和 OpenStack 这样的宿敌也一起协作共享技术。同时我们也看到传统的私有商业公司像微软苹果都将他们的部分产品、软件开源。2015是令人振奋的一年。

下面我们一起来回顾一下2015发生的9件开源大事吧!

1、苹果宣布 Swift 开源

今年最大的故事因宣布新的编程语言 Swift 开源而颁给苹果公司。在此过程中,苹果的公关团队宣称全球最大的电脑公司将开源作为重要的战略部分,在开源社区拒绝之后苹果改变了自己的措辞。不过,这仍然是个令人激动的消息,因为 Swift 是伟大的编程语言,它开源之后允许用户自由的使用它。

2、微软拥抱开源

随着领导层的变化和新的市场动态,微软开始拥抱开源。出人意料的,该公司开源它的一些核心技术,包括 .NET 和 Visual Studio,以便获得开发者的注意力。这两个项目是在 MIT 开放源码许可证下发布的,该公司还为其 Azure 云上的一个网络交换机开发了一个基于 Linux 的操作系统。

3、富士通开源自己产品

富士通使用 Linux 已经几十年了,同时也致力于许多其他开源项目。但当谈到自己公司软件的时候,却一直很封闭。今年以来,该公司开源了其开放服务目录管理云管理软件。我希望,该公司将在未来开源更多的组件。

4、WordPress 开源 wordpress.com

WordPress 和 wordpress.com 背后的公司 Automattic 最近将 wordpress.com 代码重做,同时宣布将它命名为 Calypso 并成为一个新的开源项目。这是第一次基于开源代码许可证将 wordpress.com 供给公众使用。

5、AMD 宣布 GPU 资源开源

AMD 和 Nvidia 是两个 GPU 巨头。这些公司支持很多开源项目,但是当涉及到自己的软件,他们保持封闭状态。但是,现在正在改变。

今年,AMD 宣布 GPUOpen 举措,它将在 GitHub 发布一个基于 MIT 开源许可的包括开源的效果,工具,库和SDK的套件。这个举措可以让开发者更好使用 AMD 的 GPU 资源,它被看做 Nvidia 的 Gameworks的开源替代品。

6、Google 开放人工智能资源

Google 不是第一次开源了,它早已因开源基于 Linux 的 Android 和 Chrome OS 而名声大噪。它也开源了很多其他的软件。

今年,Google 开源了人工智能(AI)发动机 TensorFlow,该公司表示“该系统最初是由 Google 机器智能研究组织下的 Google Brain 团队的研究人员和工程师为机器学习和深度神经网络而开发的系统,但该系统是通用的,现已能够应用到广阔的其他领域”。

7、Elon Musk 创建 OpenAI

elon_musk-100634839-orig

Elon Musk 是贝宝(PayPal Mafia) 最智慧的大脑和特斯拉和 SpaceX 的创始人之一。他对人工智能感到不太乐观,他害怕它对人类将是灾难性的。他与其他许多行业领导者创建了一个致力于人工智能的名为 OpenAI 非盈利性组织。根据它的维基百科页面我们知道该组织致力于人工智能的目的是“受益,而不是伤害,人类是一个整体”,同时他们将公开他们所有的专利免费供大家使用以鼓励研究人员公开他们的研究成果。

8、GCHQ 发布开源软件

gchq-100634840-orig

英国情报和安全机构政府通信总部(GCHQ)是著名的监控计划,在涉及爱德华·斯诺登案后被处理。但是,像任何一个聪明的政府机构,他们使用了大量的开源软件和同开源社区协作。该机构最近将一个内部软件开源,新的开源项目被称为 Gaffer 。

该项目是根据 Apache 许可证发布。它的 GitHub 的网页解释说,“ Gaffer 是一个框架,它可以很容易地存储含有如数量、直方图、草图等统计数据的节点和边的大规模图。这些统计数据可以通过时间窗口总结节点和边的属性,它们还可以随时间动态更新。

不是一个大的故事,但确实有趣。

9、骇自己的车现在合法了

car-100634841-orig

汽车制造商一直在用著作权法来限制修改自己的车辆,甚至在他们的汽车中隐藏缺陷。现在消费者取得一个巨大的进步,10月份美国国会图书馆允许对轿车和其他车辆的软件进行检查和修改。

这个决定对汽车制造商变得越来越重要,值得注意的是大众被发现使用软件规避排放测试。该汽车制造商正在使用版权法来阻止用户检查自己的车辆软件。他们的论点是,客户可以“调整”的软件,以规避安全和排放法规。

星球大战与Python之间的那些事

阔别十年时光,全球瞩目的第七部星球大战电影《原力觉醒》于2016年1月9日在国内上映。它将重新燃起那段神秘的太空岁月与具有原力的宇宙时光。但是,星球大战和 Python 编程语言又有什么关系呢?

Python 与星球大战背后的工业光魔

提起 Python 语言,很多人会想起系统运维、Web开发等工作。很少有人会知道 Python 也能够用于电影视觉特效的制作,其中就包括了《星球大战》某些电影特效的制作。

星战之父乔治·卢卡斯于1975年创建了工业光魔Industrial Light and Magic,从第一部《星球大战》起便参与了电影的特效制作。据 Python 官网介绍,工业光魔从1996年起开始使用 Python 语言,取代了此前的Unix shell脚本。工业光魔做出这个决定的原因,在于 Python 的学习难度低,开发速度快。当时, Python 还只是1.4版本。

工业光魔公司的Logo

电影特效行业竞争十分激烈,制作公司会不断地寻找更加优秀的编程语言,提高工作效率。工业光魔也是一直在评估 Python 语言的使用,但是近20年以来,还没有找到一个更好的替代品。

工业光魔的资深技术总监Tommy Burnette曾经这样评价道:

Python 在我们的生产流程中扮演了至关重要的作用。如果没有它,像《星球大战》第二部这样的大项目就很难完成。从集体渲染到批量处理再到影片合成, Python 将所有步骤都紧密的粘合在了一起。

由此可见 Python 的强大。

Star Wars API

你知道《星球大战》系列大战中出现了多少个种族,多少种飞船吗?这些答案都可以在Star Wars API中找到。

星球大战API

据开发者介绍,Star Wars API是全球首个量化的、可供编程使用的星战数据集。开发者经过漫长的搜集和整理,汇总了星战系列电影中的人物、种族、星球、飞船等详细数据。目前,这个API中已经收录了《原力觉醒》中的新数据。API的作者还用 Python 开发了一个helper库

我们来看看可以用这个库做些什么。

将所有星球按大小排列:

import swapi
for planet in swapi.get_all("planets").order_by("diameter"):
    print(planet.name)

查看哪些人开过1艘以上的飞船:

import swapi
for people in swapi.get_all("people").iter():
    if len(people.starships) > 1:
        print(people.name)

检索Jar Jar Binks是否在电影中出现:

import swapi
pm = swapi.get_film(4)
jj = swapi.get_person(36)
for c in pm.get_characters().iter():
    if c.name == jj.name:
        print("Why George, why.")

Python 编写的Star Wars小游戏

最后,再与大家分享一个国外开发者用 Python 开发的星战相关游戏,希望大家喜欢。

访问地址:starwars.py

这个游戏类似现在的跑酷,通过上下左右方向键控制。

stars wars跑酷游戏,Python开发

最近一个新闻说,原本各大浏览器厂商推动在 HTTPS 中放弃支持 SHA-1 算法,但是由于 Facebook 等公司认为尚有少部分用户采用老式的 SHA-1 算法,而建议延长支持期。姑且不论浏览器厂商和应用厂商的做法谁更合理,那么这里提到的 SHA-1 算法是什么呢?它有什么风险么?

密码学里面有一类算法叫做哈希hash算法,也称作散列算法、摘要算法,通常用于对一段信息的取样。当你给它一段信息message时,可以用特定算法生成一段信息摘要message digest,通常摘要的长度更短。摘要digest可以表示这段信息的某种特征——就如同指纹一样,所以这个特征也叫做指纹fingerprint校验和checksum

这种算法包括我们经常听说的 MD5 、SHA-1 等算法。它通常用于加密体系的信息摘要,以建立一个可靠、安全的数据交互通道。而现在,随着对加密技术的研究和计算能力的提升,不断发现摘要算法中的缺陷和攻击方法,因此,对于涉及到数据安全的算法方面,建议每过一个阶段就更换一次摘要算法。

理想情况下,哈希算法应该有四个重要特性:

  • 不可逆:不能从摘要生成其原始信息
  • 无冲突:不同的信息具备不同的摘要
  • 易计算:对任意信息容易计算其摘要
  • 特征化:信息修改后其摘要一定变化

当然,实际上,前两个特性在应用中有一些不成立的情况。

虽然算法可以做到不可完全逆转,但是存在找到生成相同摘要的两段或更多信息的可能性。这是因为摘要信息的域值范围有限,只能表现有限种类的信息,在用来表示无限的信息时,肯定存在冲突。而在摘要算法的应用场景中,往往并不要求使用具体的原始信息,只要你能生成同样的摘要就可以了,因此,也出现了类似彩虹表这样的数据库,供根据摘要信息查询原始信息。

而且由于算法本身可能会存在的缺陷,就有可能通过算法找到两个具有相同摘要的信息。比如 2004 年,山东大学的王小云教授就率团队突破了 MD5 算法,可以找到具备相同的 MD5 摘要的两段信息,从而为 MD5 算法的死亡盖上了“核准”印章。

那么我们就来看看,包括 MD5 在内的这些哈希算法们,都活着怎么样?

据 valerieaurora.org 的跟踪,当前的摘要算法们的生存状况如下:

从上图可以看到,SHA-2 之前的算法,除了 RIPEMD-160 外,都已经被攻破或存在可实现的碰撞算法了,因此,再将其应用到产品中,就存在了各种风险。所以,尽快升级你的加密策略吧。