应用迁移与适配技术一课一得

一.应用迁移适配背景简介

1.新创的宏观形势,世界变革:

(1).世界第四次工业革命:21世纪发起的全新技术革命,基于网络物理系统,以人工智能,量子信息技术,生物技术等为标志,全面开启新一次的经济变革、社会变革以及国际秩序变革(机器、电气、电子、人工智能) 中美局部脱钩:高端科技中不再提供芯片以及其他一些科技配套技术或产品,医药方面摆脱中国供给 芯片之上的产业:整机、云计算、操作系统、数据库、中间件等基础应用以及之上的智能化应用 使命:具备全面TD的能力的作为目标(TD,替代)

中国提出“加快形成以国内大循环为主体、国内国际双循环相互促进的新发展格局。

(2)国内数字化转型:当前世界经济数字化转型加速,“十四五”期间,数字经济的作用和地位将继续提升,是今后经济增长的重要源泉,是提高全要素生产率的重要途径。党的十九届五中全会提出:加快构建以国内大循环为主体,国内国际双循环相互促进的新发展格局。 信创是畅通国内大循环、塑造我国在国际大循环中主动地位的关键。从技术体系引进、强化产业基础、加强保障能力等方面着手,促进信创产业在本地落地生根,由点状分散发展到产业集群,从而形成生态集聚,是信创产业发展的必然趋势。

(3)国产化历程:

 XC:信息技术应用创新产业

863计划:1986年3月启动实施的“高技术研究发展计划(863计划)” ,旨在提高我国自主创新能力,坚持战略性、前沿性和前瞻性,以前沿技术研究发展为重点,统筹部署高技术的集成应用和产业化示范,充分发挥高技术引领未来发展的先导作用。

核高基:是对核心电子器件、高端通用芯片及基础软件产品的简称,是2006年国务院发布的《国家中长期科学和技术发展规划纲要(2006-2020年)》中与载人航天、探月工程并列的16个重大科技专项之一。

AK:面向党政的具备安全可靠特性的国产化替代项目,信息技术应用创新的前身。

2016年3月4日,24家专业从事软硬件关键技术研究及应用的国内单位,共同发起成立了一个非营利性社会组织,并将其命名为“信息技术应用创新工作委员会”。 这个委员会简称ITAIC,这就是“信创”这个词的最早由来。工委会成立后不久,全国各地相继又成立了大量的信创产业联盟。这些联盟共同催生了庞大的信息技术应用创新产业,也被称为“信创产业”,简称“信创”。

2.新创发展:

(1)内驱力:中国在信息技术底层标准、架构、生态掌控力等方面非常薄弱,已成为其信息产业发展的重要制约和阻碍;是中国在进军社会主义现代化强国征程中的绊脚石。

某些强国以此打压我们,相应的事件有:

(2)国家意志: 有关信创产业,近期国家又出台了新的政策。2022年9月底下发的79号文,全面指导国资信创产业发展和进度,要求所有央企+地方国企落实信创全替代。

未来的信创为持久化、常态化产业,在国家意志的大背景下各大国产化厂商持续发力,人才缺口呈井喷式增长。

(3)市场,行业 :从信创产业整体市场来看,相关数据显示,2021年信创产业整体市场规模6886.3亿元,近五年复合增速达到35.7%,预计2025年市场规模将达到23354.6亿元。

国家此前制定的“2+8+N”的信创三步走战略。 “2”就是首先实现机关范围内的国产替代,同时顺带打磨产品、培育骨干企业。 “8”指的是金融、电信、电力、石油、交通、航空航天、教育、医疗8大关键行业。在产品相对好用、生态比较成熟后,信创将由党政系统扩大到8大关键行业。 “N”就是其他行业,最终将信创产品扩展到全行业。

(4) 新创生态:

二.应用适配与迁移概览

1. 为什么要做应用适配与迁移?

为了合规性和指令集的差异

2.不同指令集的差异:

3.应用迁移适配与迁移概述:

应用适配与迁移:

应用迁移步骤:

 

数据库迁移步骤:

后面的常规的内容,如从源码到执行,编译型语言应用移植,应用移植MaKefile,RPM这些已有人描述的很详细了,后面我就分享下解释性语言python应用移植。

四.解释性语言python的应用移植:

1.python简介:

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆 于1990 年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

2.python语言移植:

编写测试代码:“hello.py

3.查询本地环境:

[root@jd4 ~]#yum search python
会发现源中有python2与python3
[root@jd4 ~]# python2
Python 2.7.18 (default, Mar 14 2021, 15:03:19)
[GCC 7.3.0] on linux2

Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[root@jd4 ~]# python3
Python 3.7.9 (default, Mar  2 2021, 14:57:35)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

4.安装numpy模块:

[root@jd4 ~]# python3
Python 3.7.9 (default, Mar  2 2021, 14:57:35)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

发现没有numpy模块供我们使用。

4.安装pip来管理python模块

 yum install python3-pip -y
 #由于pip3 默认的search 功能被禁止了,所以先安装pip_search
 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
 #升级
 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
 #更改pip使用国内源 清华大学开源软件镜像站
 pip install pip_search
 pip_search numpy

观察输出结果,有numpy模块:

使用pip命令进行安装:pip install numpy
5.在python3中使用numpy模块:

[root@jd4 ~]# python3
Python 3.7.9 (default, Mar  2 2021, 14:57:35)

[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.zeros(2)
array([0., 0.])
>>>quit()

看到np.zeros可以正常使用,代表已经可以在python3的环境中正常使用numpy模块了。

6.通过重新编译,迁移numpy模块,

(1)移除刚才pip安装的numpy模块

[root@jd4 ~]# pip uninstall numpy
Found existing installation: numpy 1.21.5
Uninstalling numpy-1.21.5:
  Would remove:
    /usr/local/bin/f2py
    /usr/local/bin/f2py3
    /usr/local/bin/f2py3.7
    /usr/local/lib64/python3.7/site-packages/numpy-1.21.5.dist-info/*
    /usr/local/lib64/python3.7/site-packages/numpy.libs/libgfortran-daac5196.so.5.0.0
    /usr/local/lib64/python3.7/site-packages/numpy.libs/libopenblasp-r0-444d0ba0.3.17.so
    /usr/local/lib64/python3.7/site-packages/numpy/*
Proceed (Y/n)? y
  Successfully uninstalled numpy-1.21.5

(2)验证移除效果

[root@jd4 ~]# python3
Python 3.7.9 (default, Mar  2 2021, 14:57:35)

[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
>>> quit()

(3)安装编译所需要的编译器

#yum install gcc-gfortran -y

(4)下载Numpy源码包

#cd /usr/local/src
从配套资料中找到已经下载好的numpy-1.19.4.tar.gz软件包到此目录下

(5)移植-编译安装

tar fvxz numpy-1.19.4.tar.gz
cd numpy-1.19.4/
pip install Cython
python3 setup.py install

(6)验证

千万记得第一步退出源码安装路径
#cd ~
# python3
Python 3.7.9 (default, Mar  2 2021, 14:57:35)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.zeros(2)
array([0., 0.])
>>> quit()

ok 没问题,成功了。

以上就是这次的全部内容了。

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值