`
nkg052do
  • 浏览: 15551 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

windows 64bit平台移植总结

阅读更多

windows 64bit平台移植总结
2010年08月10日
  随着64位的CPU以及操作系统的出现, 同时不少的软件厂商也纷纷宣称自己的软件支持64位操作系统, 对软件移植到64bit下的要求,显得日益迫切。 
  通过把目前工作中一个流程移植到64bit下,研究应用程序移植到64bit的解决方法。 该文档主要描述Windows平台下对于32it代码快速移植到64bit下可能遇到的问题, 以及对应问题的解决方法。 其中包括64bit操作系统介绍, 软件工具,编译问题的解决,移植平台SDK功能组件的处理。并总结了编写与平台无关代码的建议。
  随着硬件的发展,以及日常生活中对性能的要求越来越高,64bit操作系统也开始慢慢被应用起来,下面将描述64bit操作系统主要的应用, 版本的分类,并重点介绍我们移植的目标操作平台x64版的操作系统。(该内容参考附录[2]) CPU扩展到64bit, 意味这一个机器周期可以处理64bit的二进制, 如果仅以MOV指令传送数据来衡量性能的话,传送64bit的数据,在32bit下需要2个机器周期,在64bit下则只需要一个机器周期,当然软件不仅仅是传送数据,这里仅仅说明64bit在性能上还是有一定的提升。64bit将可以应用在下面一些方面:
  l         需要大量的可寻址内存,即系统总体内存需求超过4GB的应用。
  l         同时管理大量用户或者应用线程。
  l         需要通过实时加密解密提高安全性的应用。
  l         需要数学精度和浮点性能的应用。
  l         需要大规模的,强大的数据库性能的应用。
  l         需要64bit计算的大内存寻址功能的应用。
  l         需要提高数字内容创建功能。
  l         需要通过最大限度的性能实现逼真的影院级消费者体验。
  l         需要将以前只限于64bit工作站的功能移植到企业,消费者和计算机爱好者的台式机中,包括3D建模,渲染,动画,模拟和软件开发。 微软在2003年就发布了64bit的操作系统,根据不同的微处理器架构,分为两个不同版本:IA-64版, x64版。
  针对英特尔(Intel)的IA-64架构的安腾2(Itanium2)纯64位微处理器的Windows XP 64-Bit Edition Version 2003 for Itanium-based Systems。它是拥有64位寻址能力的强大的操作系统,主要面向顶级的高端IA-64架构的工作站,用在高端的科学运算,石油探测工艺,立体绘图,复杂的动画制作等等,是一种用在高效能运算(High Performance Computing)的强大的操作系统。支持双处理器;最低支持1GB的内存,最高支持16GB的内存。
  针对超微(AMD)的x64架构的皓龙(Opteron)与速龙64(Athlon64)所属的64位扩展微处理器的Windows XP 64-Bit Edition for 64-Bit Extended Systems。由于英特尔也发布了x64架构的Intel EM64T技术的至强(Xeon)与奔腾4(Pentium 4)的64位扩展微处理器,故微软将该版本的的Windows XP 64-Bit Edition改为Windows XP Professional x64 Edition,它支持AMD与Intel的x64架构。可以使用在一般x64架构的工作站,桌面电脑以及笔记本电脑,用途与32位Windows XP Professional一样,但具有64位寻址能力。支持双处理器;最低支持256MB的内存,最高支持16GB的内存。
  微软后面的操作系统版本均有相应的64bit的版本。 X64版本的使用比较广泛,它下面一些特征:
  l         同时轻松支持32位Win32程序及64位程序;
  l         在64位运行的程序代码和32位运行的程序应该是同一份代码;
  l         使现有程序具有企业级应用性能;(Enable existing applications to scale to enterprise capacities)
  l         支持新的设计使之可以利用巨大地址空间及内存空间;
  l         支持32位既有程序。
  x64 位平台使用的API仍然是熟悉的 Win32 API,但它出现了一些新的兼容 64 位的数据类型,所以可能需要对代码进行少量的更改。这就意味着开发者可以从单个代码库构建代码的 32 位和 64 位版本,减少了由于维护两个代码库所带来的维护开销。但是,在x64中出现了新的子系统称为 WOW64。
  WOW64 是 Windows-32-on-Windows-64 的缩写。它为现有的 32 位应用程序提供了 32 位的模拟环境,可以使大多数 32 位应用程序在无需修改而直接运行在 Windows 64 位版本上。它类似于旧的 WOW32 子系统,负责在 Windows 32 位版本下运行 16 位的代码。其结构如图2-1.
  
  2-1 WOW64子系统
    尽管x64 CPU本身具有 32 位兼容性模式,可以处理 IA-32 指令的实际执行,但WOW 层仍然必不可少。WOW子系统负责诸如在32位和64位模式之间进程切换以及模拟32位系统的服务。
  WOW子系统特点有以下一些:
  l        当不关注性能和可伸缩性的问题时,WOW64使开发者可以利用大多数现有的32位代码。这样的好处是对于某些模块不能很快的迁移到64it时, 可以暂时保留,把另外一些使用该模块的程序迁移到64位,采用远程过程调用(RPC)的协议在他们之前对32位模块功能的使用。
  l        当性能无法满足要求时,仍然需要将应用程序迁移到64bit。WOW需要将32位的参数扩展到64位,调用完成时要把参数转换为32位, 增加了额外的开销,甚至牵涉到系统调用,当对性能要求高时,只有将程序迁移到64位。
  有关 WOW64 的详细信息,请参阅 Microsoft_ Platform SDK 中的"64-bit Windows Programming - Running 32-bit Applications"。
  前面已经描述了我们的目标平台,这章将对迁移过程中从需要准备的软件环境,x64平台配置,编译error、wanring, 内嵌汇编移植的处理,平台SDK相关组件的移植等方面进行说明。 Microsoft Visual Studio 2008.  由于需要编译出x64的代码,在windows平台下,选择该编译器。 安装时注意选择x64编译器与工具,见图3-1,注意选择红色框部分。
  
  3-1 x64编译器工具安装
    VMware Workstation。
  虚拟机,主要用于装64bit操作系统,用于测试。安装64bit操作系统可参考附录[3]。最好能够在64bit操作系统中安装VS2008, 方便调试,发现问题。
  Depends_64bit
  depends的64bit版本,用于查看64bit的dll接口,以及库依赖关系。
  首先进行环境目录设置, 由于64bit的dll与32bit的dll是两套完全独立的产品,所以不能混在一起。 如图3-2, 在选项菜单里面,选择对应的平台,进行 include, 库目录等路径的设置。 
   
  
  3-2 环境路径设置
  这个设置好后,就可以开始移植过程了。以任意工程来说明编译的配置, 打开工程的属性页如图3-3
   
  
  3-3 工程属性设置
  正如图显示,新建一个x64的平台,这样编译时,才能够生成这个平台的目标代码。重新生成解决方案,如果顺利将直接通过,由于我们代码都是基于VC6的,就可能会碰到编译通不过的问题。下面将会描述一些常见error,warining的解决方法。其中VC6代码迁移到VS2008下,所做的修改请参考附录[5].
    在编译过程中,可能会出现下面一些error, 这里分别描述解决方法。
  l         error C2065:undeclared identifier. 
  解决方法:
  这个错误经常发生在下面这样代码中,VC6中在for循环中声明的变量作用域是整个函数段,而在VS2008中,它的作用域仅仅在for循环中。当后面再次使用这个变量时,就会发生错误。直接将变量i的声明放在for之外。
  
  l        error C4430: missing type specifier - int assumed. Note: C++ does not support default-int.
  解决方法:
  这个错误主要发生在函数的参数,返回值格式不严谨,见下面的代码。VS2008编译不支持默认的参数类型。把函数的参数,返回值补上不要的类型说明就可解决这个错误。
  
  l        Error C2143: syntax error : missing 'token1' before 'token2'.
  解决方法:
  这个错误主要发生在模版类的编译过程,由于类型模版,在VC6中不严格要求加上typename标识,VS2008加强了语法检查,这里只需要加上这个关键字就可以。
  
  l        OnTimer函数问题。
  在VS2008中编译界面程序时,如果重载了OnTimer函数,也会报错,在VS2008下,这个函数的原型被修改为了如下格式:
  所以只需要重写这个函数的参数类型就可以解决。
  l        warning C4800:'type' : forcing value to bool 'true' or 'false' (performance warning)。 解决方法:
  如下代码:
  其中涉及到 BOOL 类型到 bool的转换,可能会影响性能。修改如下:
  l        warning C4244:'conversion' conversion from 'type1' to 'type2', possible loss of data
  解决方法:
  常出现的情况如下:
  
  size_t类型在64位系统下,是64bit的,在32it下是32bit的,所以只需用INT_PTR代替int就可解决。
  
  在有些情况下,需要考虑这种数据丢失是否存在,如果存在就需要进行深入的修正,如果能够确定表示的数据达不到截断的情况,就可以不用关心这个警告。
  类似的,带有ULONG_PTR,LONG_PTR,UINT_PTR等。
  l         更多的error,warning解决方法,可以通过msdn查阅其相关解决方案。 VS2008并不支持内嵌汇编,所以有 汇编代码的需要单独提出来,封装为函数,同时要考虑64bit平台下,寄存器资源,函数调用约定等细节。 有两种方法来移植。
  l         直接按照64bit来设计重构汇编代码。
  l         采用其它方式来替代汇编代码功能。
  由于并没有对汇编代码移植的过多研究,在移植过程中,都有替代方案,如需要了解更多信息可参考附录[1](64bit汇编移植小结)。
  在应用中,有的时候会用到平台SDK的东西,移植到64bit时不是很方便。如在移植播放器工程中,就遇到一个问题, 它使用了directshow的时钟组件。
  最开始是想用其它时钟接口来替代它,但搜索查阅,发现都没有现成的,重新构造一个时钟的组件还不如直接用directshow提供的,因为它有源码,所以只要部分修改就可以达到想要的功能。针对这个问题,直接把directshow,关于这个组件的源码进行修改,去掉COM的相关继承,如去掉继承自IUnkonwn接口,以及其它一些不必要东西。
  当然,也可以有其它解决方案,我这里仅仅提供一种参考方式。
  除了上面一些常见的问题外,还有其它一些不容易发现的问题,如在程序算法中,指针的操作啊,当在32bit下时不会出问题, 拿到64bit下就可能出现奇怪的问题,这个主要是由于算法中对指针的操作有些局限性造成。可能情况有以下一些:
  l         数据截断。
  尽量避免不同类型变量间的运算,避免长度较长的变量赋值给较短的变量中,统一变量长度可以解决这个问题。
  l         指针存储
  在x86平台下,习惯用int来存储指针,并将指针直接参与到int型的运算中,而64位平台指针大小为64bit, 无法存储到int中,对指针的运算也可能会因为数据长度不一致导致异常,需要修改传递指针的变量为INTPTR_T类型定义,以保证平台兼容性。
  l         代码中的直接数
  直接使用16进制数字进行赋值时,往往会隐含该变量为32bit的前提,这样在64bit平台时,可能出现异常。
  前面已经描述了在移植到64bit中可能遇到的问题,以及解决方法。 虽然不是包括了全部,但也是比较常见的问题。这里仅仅说明我的一种解决方法,当然也可能有其它的解决方法。
  平台移植本来是一个功能重用的过程,这就给我们一个启示,设计编写代码时,尽量写一些容易阅读,与平台无关,语法严谨的代码。
  下面是对编码的一些建议:
  l        在32位与64位下使用同样的头文件。
  l        根据需要适当的使用"L"或者 "U" 来声明整型常量。
  l        如果有些变量在两个平台上都需要是32位的,将其声明为int.
  l        使用固定宽度或宏定义的整数类型,数字,掩码。
  l        对整形变量做边界检查。
  [1] 64位汇编移植小结 [2] 64bit操作系统介绍 http://hi.baidu.com/xingworld/blog/item/d7db07233c 464944925807c8.html [3]在虚拟机中装64bit操作系统 [4] The 64 bit OS Architecture http://www.codeproject.com/KB/system/64BitOSAndPor tingIssues.aspx [5] VC6 迁移到VS2008
分享到:
评论

相关推荐

    node-v7.2.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v6.14.2-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    rbac权限控制框架:1.支持角色继承,数据组,行为组.zip

    rbac权限控制框架:1.支持角色继承,数据组,行为组.zip abac,rbac权限控制框架 支持角色继承,数据组,行为组 支持动态角色和静态角色 usage 用户与角色需要额外维护 权限控制规则默认驻留内存, 可自定义RuleRepository实现 角色继承关系默认驻留内存, 可自定义RoleHierarchyRepository实现 数据组关系默认驻留内存, 可自定义DataGroupRepository实现 行为组关系默认驻留内存, 可自定义ActionGroupRepository实现 若使用动态角色需要实现DynamicRoleDefiner

    utlog.sqlite

    utlog.sqlite

    node-v0.12.8-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v7.2.1-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v7.6.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v7.7.4-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    xia0FridaScript-master.zip

    xia0FridaScript-master.zip

    煤炭地质勘查钻孔质量标准MTT1042-2007.pdf

    煤炭地质勘查钻孔质量标准MTT1042-2007.pdf

    149煤矿生产安全事故现场处置方案.pdf

    149煤矿生产安全事故现场处置方案.pdf

    信息办公个人求职管理系统-jobgljsp.rar

    javaweb登录注册页面,[信息办公]个人求职管理系统,jsp开发源码。

    煤矿重要用途钢丝绳.PDF

    煤矿重要用途钢丝绳.PDF

    2023-06-30-东方财富证券-华电重工-深度研究:乘氢能之风,新能源巨轮远航.pdf

    2023-06-30-东方财富证券-华电重工-深度研究:乘氢能之风,新能源巨轮远航

    node-v5.4.1-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    超详细Python教程,适合零基础小白学习

    超详细Python教程,包含Python数据结构、对象、模块、迭代器等等超多内容 Django框架教程

    node-v7.9.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    微信小程序考试系统.zip

    微信小程序考试系统.zip 微信小程序考试系统 1.安装微信web开发工具 2.运行微信web开发工具,点击小程序项目,选择新建(+),选择压缩包下的examSystem-exam1.0文件夹, 填写AppID(AppID:wx2fd6fcc3d4a9a059),定义项目名称,导入项目 3.文件目录说明 app.json 当前小程序的全局配置,包含了小程序所有页面路径 .wxml wxml文件定义小程序页面布局 .js js文件定义用户相关操作事件(交互逻辑) .wxss wxss文件定义当前小程序页面的局部页面样式 具体页面路径 pages/index/index:系统登录页面 pages/grid/index:登录成功后系统菜单页 pages/answer/answer:考试中心答题页面 pages/wrongQuestion/wrongQuestion:错题集页面 pages/logs/logs:日志文件 image:系统需用到图片 dist:UI框架需要icon、js 4.登录账号 姓名:admin 部门:001

    node-v7.10.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于AMDavaScript模块加载器迄今为止对AMD理解最好的实现

    功能概述 100% 支持 AMD 规格。支持模块化开发。定义模块后,无需维护依赖模块即可使用模块,只需编写一个依赖,lodJS 会自动负责依赖注入。 特性 模块化开发支持 异步加载 依赖注入 灵活的自定义功能 兼容性 Safari 浏览器 6+ (Mac) iOS 5+ Safari浏览器 Chrome 23+(Windows、Mac、Android、iOS、Linux、Chrome 操作系统) Firefox 4+(Windows、Mac、Android、Linux、Firefox 操作系统) Internet Explorer 6+(Windows、Windows Phone) Opera 10+(Windows、Linux、Android

Global site tag (gtag.js) - Google Analytics