澳门新蒲京娱乐


发短信以及目录【新蒲京官方下载】,Delphi中使用TThread类实现多线程
图片 1
将正式支持

发行版迁移和二进制兼容性考虑事项澳门新蒲京娱乐:

Scala 官方公布了 Scala 2 接下去的腾飞安排,开采公司表示职业将转向 Scala
3,而不是支付 Scala 2.14。

刺探二进制包容性以致它与运作在 Linux® on POWELAND™
上的两样操作境况之间的关系。考查 IBM 帮助的四个 Linux on POWE凯雷德发行版,即 Red Hat Enterprise Linux (大切诺基HELState of Qatar 和 SUSE LINUX Enterprise
Server
(SLES卡塔尔,通晓它们分别的依次版本之间的二进制包容性。总体来讲,通过在本子之间维护的牢固Application Binary Interface (ABIState of Qatar 能够完结从基于 2.6.9 内核的 CRUISERHEL4
顺遂迁移到基于 2.6.18 内核的 凯雷德HEL5。该方法同样适用于从基于 2.6.5
内核的 SLES9 迁移到基于 2.6.16 内核的 SLES10。了然可以知道修改 Linux on
POWE奇骏应用程序的习性的新手艺,并固守一些步骤确认保障现在的三个发行版之间的二进制宽容性。[“参谋资料”
部分提供额外的参照他事他说加以考查剧情 —— 编辑。]

澳门新蒲京娱乐 1

当今有好多可用的 Linux 发行版。固然 Red Hat 和 SUSE LINUX 是 IBM 援助的
Linux on POWETucson 实施方案中间商,但此外发行版(譬喻 Gentoo、Debian 和
Ubuntu)也逐步改为流行的 Linux on POWE奥迪Q7技术方案。应用程序常常心仪确认保证他们的应用程序能够运维在四个发行版上,以至运维在同多个发行版的例外版本上。驾驭与二进制宽容性相关的难点之后,就可以实现这个目的。本文定义二进制包容性、商讨维护包容性的考虑事项并查究不一样版本之间的搬迁,包罗Red Hat Enterprise Linux 的本子 4 和 5,SUSE LINUX Enterprise Server
的本子 9 和
10。别的,还提供保障应用程序能够跨多少个发行版实现宽容性的实行。

关键尽管改动成 Scala 3,但将世袭维护 Scala
2.13,以承保社区有丰硕的胎元稳重地连贯到 Scala 3。

表 1 出示了软件品级,以致本文将在详细座谈的 WranglerHEL4、SportageHEL5、SLES9 和
SLES10 中受支持的性情:

长久以来,开拓共青团和少先队认为必得有 2.14 版本工夫作保顺利接通到
3,但是通过大批量的切磋和斟酌,以往确信完全不须要2.14。那样能够带给两地点的补益:

表 1. 受扶持的特点甚至 ENCOREHEL 和 SLES 发行版的代码等第

  • Scala 3
    将得以更加快地投入生产情况。在完备编译器和晋级换代相关工具方面,有广大专门的学业要做,同一时候将接济生态系统进级。

  • 没有须求为 2.14 重新创立 Scala
    库和工具生态系统,进而省去了保安人士的时光以策画 Scala 3。

SLES8 SP4 RHEL3 U4 SLES9 SP3 RHEL4 U8 SLES10 SP2 RHEL5 U3
kernel 2.4.21 2.4.21 2.6.5 2.6.9 2.6.16 2.6.18
glibc 2.2.5 2.3.2 2.3.3 2.3.4 2.4 2.5
SMT No No Yes Yes Yes Yes
NPTL No No Yes Yes Yes Yes
NUMA No No Yes Yes Yes Yes
JDK IBM 1.3.1 IBM 1.4.2¹ IBM 1.4.2 IBM 1.4.2 IBM 1.4.2, 5.0 IBM 1.4.2, 5.0
Apache 1.3.26 2.0.46 2.0.49 2.0.52 2.2.0 2.2.3
GCC 3.2 3.2.3 3.3.3 3.4.6 4.1.2 4.1.2

要害对象是提供从 Scala 2 到 3
的坦荡且增量的动员搬迁路线,要贯彻此指标,Scala 2.13 和 3.0
将应用相同的规范库,况兼它们的编写翻译器后端将以相似的主意出口字节码。

¹您可以从 IBM 站点下载 IBM Developer Kit for Linux, Java™ Technology
艾德ition。(参照他事他说加以考查资料 部分提供相关链接)。

分享标准库

应用图 1 中呈现的流程图鲜明应用程序在 HavalHEL 或 SLES
上是或不是落实二进制宽容。

分享标准库消灭了 Scala 2.13 和 3 之间的机要潜在差别,并拉动员搬迁移。

图 1. 规定应用程序的二进制包容性
澳门新蒲京娱乐 2

唯独,那也意味对标准库的二进制不相称修改将只好等到 Scala 3.x
体系中的稍后版本,到时将有着补救二进制不相配的工具。更具体地说,由于
Scala 2.13
在其多种之内保持向前和向后二进制宽容,由此无法增多或删除任何类或措施。


若是在从 2 到 3
的搬迁时期,热切必要在这里些节制之外发展标准库,开拓团队也许最终仍会采取发表Scala 2.14 版本。

二进制宽容性概述

共享的 ABI

Linux on POWE奥迪Q7 的二进制宽容性通过遵从 Application Binary Interface (ABI卡塔尔国来贯彻。ABI
是三个接口,编写翻译后的二进制文件通过它访谈操作系统及其服务。当多少个操作情形协理雷同的
ABI 时,就可以在这里些操作意况中运营相近的二进制文件。能够在 “64-bit
PowerPC ELF Application Binary Interface Supplement 1.7” 中找到关于
PowerPC® Executable 和 Linking Format (ELF卡塔尔 ABI 的 陆12个人补充的愈来愈多新闻(参照他事他说加以侦察资料 部分提供相关链接)。

而外标准库,通过分享 ABI,Scala 3.0 和 2.13
作件能够合作存于类路线上还要能够无缝地互操作,那样能够逐步搬迁并简化测验。

二进制包容性是指能够在特定微型机连串的多少个情状中运转二进制文件的力量。这几个情状只怕是同等
Linux 发行版的比不上版本,或然是一点一滴两样的本子。比如,在依照 POWELX5706™
微型机并运维 SLES10 的连串上运转能够在依附 POWEQX565™ 微机并运营 SLES10
的系统上编写翻译和平运动作的二进制文件。另多个例证是,在依赖 POWE福特Explorer6™
微型机并运转 SLES10 的系统上运维能够在依靠 POWE奥迪Q55™ 微电脑并运转 CR-VHEL4
的系统上编写翻译和平运动作的二进制文件。

一时一刻 Scala 3 一度向后杰出,它能够选拔由 Scala 2.13
构建的库。为了完结向前包容,Scala 3
编写翻译器将提供一种机制来有限支持国有接口坐落于公共语言子聚焦,以便能够在 Scala
2.13 中选取它。那代表作为库笔者的开拓者能够直接行使一些 Scala 3
内容,而没有供给从 Scala 2.13 升级。


除却技能互操作性之外,开拓协会还将关怀于测验和改过工具,以确定保证顺遂迁移。例如,原定于
2.14 版本中张开的搬迁警示就要 2.13 中实施。

微计算机宽容性

除去,Scala 官方还罗列了一部分血肉相连难点,包含争取在 2020
年年初事头阵表第多个候选版本、怎样使用类型化抽象语法树 TASTy
管理二进制宽容性难题、宏无法从 2.x 直接迁移到 3.0、以至质量、测试工具与
IDE 扶植等,详细情形查看官方证实:

计算机宽容性是与 Linux on POWEEvoque二进制包容性紧密相关的主旨。这么些小节探讨在分裂的 64 位 POWEWrangler微处理机之间的包容性,以致 32 位 PowerPC 微处理器和 64 位 POWEHaval微型机之间的宽容性。

POWE中华V 微处理机包容性

(文/开源中中原人民共和国)    

“二进制兼容性概述”
小节研究的终极一个例子涉及到在多少个例外的微微电脑类型上运维相似的二进制文件:POWELAND5
微机和 POWEHaval6 微电脑。POWEXC906 构造是 POWELAND5 布局的改革,同不经常候又有限支撑与
POWEXC905 宽容,那就允许你在此三个阳台上运维雷同的应用程序。

PowerPC 和 POWELAND 微机包容性

运作在本机 32 位 PowerPC 碰到和 64 位 POWE凯雷德 境遇上的 32位应用程序也能够实现二进制宽容性。能够在本机 Linux PowerPC 情形上实行在
64 位 Linux on POWE奥迪Q7 系统上扭转的 叁15个人二进制文件。能够落实这种宽容性是因为:

  • 64 位 Power Architecture 帮助完全的 32 位 PowerPC 构造。
  • 64 位 Linux 内核能够管理 32 位系统调用。
  • 32 位运营时情状包罗供给的 32 位库。
  • 64 位运营时景况包罗供给的 32 位和 64 位库。

能够通过不一样的艺术生成 32 位和 64 位 Linux
二进制文件,那取决开辟平台:

  • 在 32 位 PowerPC 平台(比方运维 Linux 的 Apple Powerbook)上的本机
    GNU Compiler Collection (GCC卡塔尔(قطر‎ C 编辑器能够转移能够在本机 三17人平台上,或在富含适当 32 位客商空间库的 64 位 Linux on POWELacrosse平台上推行的 32 位二进制文件。
  • IBM XL C/C++, Version 8.0 和指向 64 位 Linux on POWELX570 的 GCC C
    编写翻译器可以生成 32 位和 64 为二进制可试行文件,那几个文件能够在 32 位或
    64 位运转时景况中进行。
  • 还 存在能够同不平日间在 32 位 PowerPC Linux 系统和 64 位 Linux on POWEWrangler系统上运转的跨系统一编写译器。那个跨系统编写翻译器能够生成 32 位和 陆拾叁个人二进制文件。不管在哪个地点创设二进制文件,叁11位的二进制文件都得以在 32 位 Linux 平台或 64 位 Linux
    平台上运行,而改变的 64 位二进制文件仅能在 64 位 Linux on POWE路虎极光系统上运营。跨系统一编写译器的一个例子是 Crosstool(参照他事他说加以调查资料
    部分提供有关链接)。

表 2 显示了什么样为不相同的开销平台湾学子成 32 位和 64 位 Linux 二进制文件:

表 2. 生成 32 位和 64 位 Linux 二进制文件

开发平台 编译器 生成的 Linux 二进制文件
32 位 Linux on PowerPC 本机 GCC C 编译器 32 位
64 位 Linux on POWER 本机 XL C/C++ 或 GCC C 编译器 32 位或 64 位
32 位 Linux on PowerPC 或
64 位 Linux on POWER
跨系统编译器,比如 crosstool 32 位或 64 位

就算已经演示了 32 位和 陆十几个人情况之间的包容性,但那并不意味官方发行版匡助这种包容性。Red Hat 在
HavalHEL3 和 HighlanderHEL4 之间向前或向后支持 32 位和 64 位包容性,而当从 SLES8
迁移到 SLES9 时,SLES8 仅扶助 32 位向前宽容性。

表 3 呈现了 32 位和 64 位应用程序在分歧的 福睿斯HEL 和 SLES
版本上的向后和前行宽容性:

表 3. 在 奥迪Q7HEL 和 SLES 发行版中的 32 位和 64 位包容性

发行版 32 位 64 位
RHEL3 > RHEL4 向前兼容 向前兼容
RHEL4 < RHEL3 向后兼容 向后兼容
SLES9 > SLES8 向前兼容 NA
SLES8 < SLES9 NA NA

优化性能

2.6 内核和 POWEOdyssey6
结构包含能够改正应用程序的习性的风味。性能的精雕细刻得益于分化的库、微处理机性情和编写翻译器更新。有一对特性改良无需校勘应用程序,而另一对属性改善要求重
新编写翻译源代码。记住,重新编写翻译以取得属性改过大概会伤害二进制文件在少数条件中的包容性。这些小节提供一些例子,它们体现能够改良应用程序品质的
2.6 内核新特色和 POWETiguan6 布局。

NUMA

Non-uniform Memory Access (NUMA卡塔尔 是指向 Linux on POWECRUISER 在 2.6
内核中引进的,这几个特点在 瑞虎HEL5 和 SLES10
的新颖版本中赢得越来越优化。NUMA
消除了系统中的某个微电脑因为总线地方分歧达到一定内部存款和储蓄器区域的时日要比别的微型机长的主题材料。NUMA
通过在各类总线使用越多内部存储器总线和越来越少微处理机来压缩系统分享内部存储器总线的争用。纵然那在含有一些些计算机的类别中功用不生硬,但它能够在系统包括一大波微电脑时
改过品质。

在 Linux 2.6.15 内核中,NUMA
优化通过点名仅本地Computer能够访问内部存款和储蓄器,进而改正了跨大型系统(微机核在
4-8 个以上)运转的干活负荷的天性。假诺微处理器正在寻找存款和储蓄在南濒的 cell
board 上的内部存款和储蓄器中的数据,Linux 2.6.16
内核能够收获该新闻并将其活动到地头内部存款和储蓄器中(运转速度更加快),然后在地头内部存款和储蓄器中进行所需的操作,而不需重新启航该操作。

由于 POWECRUISER5 和 POWEHaval6 布局可以扩展到 64 位微处理机,超过1/4应用程序都得益于
2.6 内核级其余 NUMA 扶持。设法加强品质的应用程序能够选拔 user-land NUMA
API。XC90HEL4 附带了 user-land NUMA API,以至愈来愈多关于什么在 NUMA Group
主页使用这个 API 的新闻(参谋资料 部分提供有关链接)。

使用 Linux 2.6.16
内核时,必得依赖分享内部存款和储蓄器的分配形式打开一些更换。若是微机正在找出存款和储蓄在隔壁的
cell board 上的内部存款和储蓄器中的数据,Linux 2.6.16
内核可以赢得该新闻并将其运动到当地内部存款和储蓄器中(运维速度更加快),然后在地面内部存储器中施行所需的操作,而不需重新起动该操作。

编写翻译器改过

你能够虚拟重新编写翻译以应用 Linux on POWE牧马人的摩登编辑器的新特点带给的属性优势。现在,高品质编写翻译器 IBM XL C/C++
Version 8 可以在底蕴级其他 汉兰达HEL4、SLES9 和 SLES10 上运用。IBM XL C/C++
Version 9 能够在 翼虎HEL5 及其更新、SLES10 SP1 和 SP2 上选拔。Version 9
增添了针对基于 POWE凯雷德6 微型机的系统的属性改革。

-qarch 和 -qtune 选项用于为独家的结构优化质量。举个例子,要优化 POWE宝马X56
的质量,使用 -qarch=pwr6 和 -qtune=pwr6。其它,还引进了 -qtune=balanced
选项。这些选项与 -qarch=pwr5(或 pwr5x)一同行使时,将转移能够在 POWE奇骏5
和 POWETucson6 系统上运维的二进制文件,但含有能够改正 POWEENCORE6
品质的调治校正。Version 9 还含有对 AltiVec Vector Multimedia Extensions
(VMXState of Qatar 的支撑,VMX 最先是在 IBM PowerPC 970 微机上提供的,现在经过
-qaltivec 选项整合到 POWE奥迪Q76 付加物种类。

GNU Compiler Collection 满含针对各个分歧语言的编写翻译器。版本 3.3 到 4.1
获得了改过,富含对其 C 编写翻译器 gcc 的特定于 POWEGL4506 的优化。-mcpu=power6
和 -mtune=power6 标记今后收获扶持,进而引致现身针对 POWESportage6
构造的注册表使用和指令调治参数。此外,还包蕴针对 IBM PowerPC 970 和 IBM
POWERubicon6 微处理器的 VMX
向量扩展,它们能够晋级向量化代码的性能。即使这一个优化增选在分级的构造上更进一步了质量,但它们大概妨害应用程序在此外平台上的二进制宽容性。

能够在 developerWorks 文章 “How to use IBM XL C/C++ Advanced Edition
V8.0 for Linux on POWE纳瓦拉: A guide for GCC users” 上找到更加的多关于在 Linux
on POWE大切诺基 上运用 XL C/C++ 编辑器的音信。

SMT

当迁移到基于 2.6 的 Linux 内核时,Simultaneous Multi-threading (SMT卡塔尔仍可以提供另一项品质收益。SMT 在 POWEPAJERO6
上收获补助,并且大大改良了八线程应用程序的品质。POWECRUISER6
微处理器有多个能够在各种微型机周期产生多条指令的硬件指令线程,从而校勘了质量。然则,SMT
大概损伤线程不是不菲的应用程序的属性。能够在 Linux 内核运维时向其传递
smt-enabled=off 禁止使用 SMT。

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图