ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于华为云服务器发OpenEuler基础实验(无树莓派)

2021-10-30 13:32:14  阅读:233  来源: 互联网

标签:树莓 汇编语言 openssl 编译 华为 test rocopenssl OpenEuler 安装


基于openEuler的OpenSSL编译安装和编程基础

购买华为云服务器

由于没有树莓派,所以直接略过树莓派安装openeuler的过程,直接去华为云上购买一个安装好openeuler系统的云服务器

5vZwyF.png

5vnpR0.png

成功连接
5vmXZQ.png

OpenSSL编译安装

下载最新版本OpenSSL 1.1.1k的源码openssl-1.1.1k.tar.gz,然后把代码上传到openEuler云服务器中

https://www.openssl.org/source/openssl-1.1.1k.tar.gz

这里使用wget命令直接下载

建立两个文件夹,分别放置OpenSSL的源码和安装路径
记住pwd运行的结果

mkdir rocopensslsrc rocopenssl

cd rocopenssl

pwd

解压源代码到rocopensslsrc文件夹:

tar -zxvf openssl-1.1.1k.tar.gz -C rocopensslsrc

配置编译安装路径(/root/rocopenssl),和openEuler系统默认的不同。

5vJJun.png

cd rocopensslsrc/openssl-1.1.1k

./config --prefix=/root/rocopenssl

5vMaS1.png

编译

make

安装

make install

查看安装后的版本,确定是最新安装的1.1.1k版:

cd ~/rocopenssl

./bin/openssl version

成功安装

5vNPhT.png

OpenSSL命令的帮助使用openssl help查看

5vnoTJ.png

OpenSSL编程

编写一个测试代码test_openssl.c:

5vNLUx.png

编译

/root/rocopenssl/include -L /root/rocopenssl/lib -lcrypto -lpthread

执行

./to;echo $?

结果打印0.

5vUVG8.png

BASE64算法

写一个BASE64的测试代码testbase64.c

5vaW1U.png

编译

gcc -o testbase64 testbase64.c -I /root/rocopenssl/include -L /root/rocopenssl/lib -lcrypto -lpthread

执行./testbase64

5vwVG6.md.png

测试中的用到一个test.dat 是个二进制文件

内容是我的学号“20191220”

实验 3-1:在树莓派上安装 Raspberry Pi OS

无树莓派,使用的是华为云的openeuler,略

3.2 实验 3-2:汇编语言练习——查找最大数

输入书中的汇编代码test.s

5xSSUS.png

gcc编译

gcc test. -o test -g --static

运行

./test

成功输出最大数

5xin1g.png

调试

openeuler安装gdb

yum install gdb

调试
gdb --tui ./test

在 main 函数里设置一个断点

b main

5xiLvQ.png

输入“r”命令运行 test 程序。

5xivbn.png

然后就可以输入“s”进行单步调试。

5xFAKJ.png

可以使用“info reg”命令来查看寄存器的值。例如查看 x0 寄存器的值。

5xFEr9.png

实验 3-3:汇编语言练习——通过 C 语言调用汇编函数

使用汇编语言实现一个汇编函数,用于比较两个数的大小并返回最大值,然后用
C 语言代码调用这个汇编函数。程序可使用 GCC(Aarch64 版本)工具来编译

编写compare.s 和 main.c

具体内容在https://github.com/figozhang/runninglinuxkernel_5.0/tree/rlk_5.0/kmodules/rlk_lab/rlk_basic/chapter_3_arm64/lab3

注意,不能直接使用make编译,因为还没有编写makefile文件

5xm7cV.png

编写后可以成功运行C语言调用汇编语言函数

5xnS91.png

3.4 实验 3-4:汇编语言练习——通过汇编语言调用 C 函数

使用 C 语言实现一个函数,用于比较两个数的大小并返回最大值,然后用汇编代
码调用这个 C 函数。

编写compare.S main.c Makefile

编译运行
5xn0DU.png

实验 3-5:汇编语言练习——GCC 内联汇编

使用 GCC 内联汇编实现一个函数,用于比较两个数的大小并返回最大值,然后
用 C 语言代码调用这个函数

编写compare.c main.S Makefile

5xuVqU.png

5xuma4.png

5xunIJ.png

编译运行

5xu3M6.png

标签:树莓,汇编语言,openssl,编译,华为,test,rocopenssl,OpenEuler,安装
来源: https://www.cnblogs.com/51ggh/p/15484850.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有