首页 系统教程 操作系统 华为云完成Linux内核的编译与安装(自选题目)

华为云完成Linux内核的编译与安装(自选题目)

Feb 15, 2024 pm 12:12 PM
华为云 linux操作系统 系统版本 linux内核

实验要求把握Linux内核的编译与安装把握Linux系统调用基本概念设计和添加linux系统调用

(1)更改或返回指定进程的优先级(nice值和prio值)(详见教材P328)提示:可能参考的内核函数:set_user_nice().

(2)改变主机名称为自定义字符串(自选题目)

1、Linux内核的编译与安装(使用华为云,完成openEuler内核的编译与安装)

(1)登入系统并查看当前内核版本

[root@openEuler~]#uname-r

(2)安装工具,建立开发环境

[root@openEuler~]#yumgroupinstall-y"DevelopmentTools"

[root@openEuler~]#yuminstall-ybc

[root@openEuler~]#yuminstall-yopenssl-devel

(3)备份boot目录以防后续步骤更新内核失败

[root@openEuler~]#tarczvfboot.origin.tgz/boot/

保存当前内核版本信息

[root@openEuler~]#uname–r>uname_r.log

(4)获取内核源代码并解压

[root@openEuler~]#wget

[root@openEuler~]#unzipkernel-4.19.zip

(5)编译内核

[root@openEuler~]#cdkernel-kernel-4.19

[root@openEulerkernel]#makeopeneuler_defconfig

[root@openEulerkernel]#make-j4Imagemodulesdtbs

这一步是编译内核的Image、modules和dtbs,make-j4表示4个线程编译(可以按照CPU核数调整)

(6)安装内核

[root@openEulerkernel]#makemodules_install

[root@openEulerkernel]#makeinstall

注意:在最后一步“makeinstall”时出现的错误在这儿可以忽视。

(7)以VNC登陆ECS

(8)重启系统

[root@openEulerkernel]#reboot

(9)登陆并验证

在VNC窗口中选择以新编译下来的内核启动系统

这儿编译完之后早已有了4.19.208版本的新内核,选择该内核登陆

2、掌握Linux系统调用基本概念

调用linux内核函数_linux内核调试方法总结_内核系统调用

Linux系统处理系统调用的流程以及降低系统调用的方式。Linux系统提供了多达几百种的系统调用,为了惟一地标识每一个系统调用,Linux为每位系统调用都设置了一个惟一的编号,称为系统调用号,同时每位系统调用须要一个服务解释器完成其具体功能。

这儿不做过多描述。

(重点是如何添加系统调用!!!)

#define __NR_hello_euler 294
__SYSCALL(__NR_hello_euler, sys_hello_euler)
#undef __NR_syscalls
#define __NR_syscalls 295
登录后复制

asmlinkage long sys_hello_euler(void);
登录后复制

SYSCALL_DEFINE0(hello_euler)
{
	printk(KERN_INFO "xuehao:20273108");
	return 0;
}
登录后复制

重启后

#include 
#include 
#include 
int main()
{
ret = syscall(294);
return 0;
}
登录后复制

3、设计和添加linux系统调用

(1)更改或返回指定进程的优先级(nice值和prio值)(详见教材P328)提示:可能参考的内核函数:set_user_nice().

#define _GNU_SOURCE
#include
#include
#include
#include
int main()
{
	pid_t pid;
	int nicevalue;
	int flag;
	int n=0;
	int p=0;
	int *prio;
	int *nice;
	prio = &p;
	nice = &n;
	printf("请输入pid: n");
	scanf("%d",&pid);
	printf("pid输入成功n请输入nice值:n");
	scanf("%d",&nicevalue);
	printf("nice输入成功n请输入flag(flag为1时修改,为0时查看):n");
	scanf("%d",&flag);
	syscall(295,pid,flag,nicevalue,prio,nice);
	printf("现在的nice为%d,prio为%dn",n,p);
	return 0;
}
登录后复制

(2)改变主机名称为自定义字符串(自选题目)

#define __NR_mysethostname 296
__SYSCALL(__NR_mysethostname,sys_mysethostname)
登录后复制

同理,下边的#define__NR_syscalls296要弄成#define__NR_syscalls297

4、实验总结

(1)你们做实验之前看教程一定要认清楚是x86还是arm构架的呀!!!我就是在这前面栽跟头了重建了三四次华为云

(2)假如用VNC登录时出现以下报错,这么恭喜你,多半是你的内核崩了~我的老师说,只要你手速够快,在重启虚拟机的时侯立刻用VNC重新登录是可以进去的,并且我没成功过,只能重建了n次云主机。

(3)尽管老师给的实验报告里要求VNC登陆调用linux内核函数,但我个人建议使用cloudshell来执行命令。

(4)在初验的时侯,被老师冷不丁问了系统调用里的函数的意义和用法,直接栽跟头了。我会在下边po出一部份内部函数的意义及用法。

1.find_get_pid(pid)

find_get_pid在内核中有不同的命名空间,在各自的命名空间同一个进程pid值可能是不一样的,find_get_pid为了找到在内核态中的我们找寻进程真正的pid

2.set_user_nice(task,nicevalue)

用于设置进程的nice值

3.copy_to_user()

完成内核空间到用户空间的复制,To目标地址linux操作系统版本linux系统,这个地址是用户空间的地址;From源地址,这个地址是内核空间的地址;N即将拷贝的数据的字节数。

假如数据拷贝成功,则返回零;否则,返回没有拷贝成功的数据字节数。

4.copy_from_user()

copy_from_user将name指向的字符串从用户空间拷贝到内核空间,失败返回没有被拷贝的字节数,成功返回0。

5.down_write()

函数down_write()是写者拿来得到读寄信号量sem时调用的,假如该讯号量被读者或写者所持有调用linux内核函数,则对该函数的调用会造成调用者的睡眠,只能在进程上下文使用,用于获取Linux内核读寄信号量中的写锁。

6.memcpy(str1,str2,n)

从储存区str2复制n个字节到储存区str1。

以上是华为云完成Linux内核的编译与安装(自选题目)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

3d渲染,电脑配置? 做设计3D渲染需要配置什么样的电脑? 3d渲染,电脑配置? 做设计3D渲染需要配置什么样的电脑? May 06, 2024 pm 06:25 PM

3d渲染,电脑配置?1电脑配置对于3D渲染非常重要,需要足够的硬件性能才能保证渲染效果和速度。23D渲染需要大量的计算和图像处理,因此需要高性能的CPU、显卡和内存。3建议配置至少一台搭载至少6核12线程的CPU、16GB以上的内存和一张高性能显卡的电脑,才能满足较高的3D渲染需求。同时,还需要注意电脑的散热和电源等方面的配置,以确保电脑的稳定运行。做设计3D渲染需要配置什么样的电脑?本人也是做设计的,给你一套配置吧(本人再用)CPU:amd960t开6核(或者1090t直接超频)内存:1333

u盘重装系统必知:如何正确设置BIOS u盘重装系统必知:如何正确设置BIOS May 06, 2024 pm 03:00 PM

重装系统是很多电脑用户经常遇到的问题,无论是因为系统崩溃、中毒还是想要升级系统,重装系统都是一个不错的选择。但是,很多人在重装系统的时候会遇到各种问题,比如不知道如何设置BIOS、不知道如何选择合适的安装盘等等。今天,我们就来聊聊u盘重装系统必知的一些事项,教你如何正确设置BIOS,顺利完成系统重装。工具原料:系统版本:Windows1020H2品牌型号:联想小新Air14软件版本:口袋装机一键重装系统软件v1.0一、准备工作1、准备一个容量不低于8GB的U盘,最好是USB3.0的,这样速度会更

acer的台式电脑怎么组装? acer的台式电脑怎么组装? May 08, 2024 pm 08:25 PM

acer的台式电脑怎么组装?Acer台式电脑的组装方法如下:打开机箱,将电源装入机箱,拧紧螺丝。将CPU安装到主板上,注意CPU上的针脚要与主板上的插槽对齐,拧紧CPU散热器的螺丝。将内存条安装到主板上,注意内存条上的凹凸位要与主板上的插槽对齐,用力下压,听到“啪”的一声后即可完成安装。将显卡、声卡、网卡等板卡安装到主板上,注意板卡上的螺丝要拧紧。将硬盘、光驱等存储设备安装到机箱内,注意螺丝要拧紧。将主板与机箱的连线连接好,包括电源线、硬盘线、光驱线等。最后将机箱盖盖上,拧紧螺丝即可完成组装。在

微软最新Win11中文正式版系统官方原版ISO镜像下载 微软最新Win11中文正式版系统官方原版ISO镜像下载 May 06, 2024 am 11:13 AM

微软最新推出的Windows11操作系统备受关注,其全新的界面设计、强大的性能表现以及丰富的功能特性都给用户带来了全新的使用体验。本文将为大家详细介绍Windows11中文正式版系统的官方原版ISO镜像下载方法,并提供一些实用的安装建议,希望能够帮助大家顺利升级到这款全新的操作系统。工具原料:系统版本:Windows11中文正式版品牌型号:支持多种品牌和型号的电脑,如联想、戴尔、华硕等软件版本:微软官方原版ISO镜像一、下载Windows11官方原版ISO镜像1、访问微软官方网站(https:/

小米莱卡相机闪退解决方法介绍 小米莱卡相机闪退解决方法介绍 May 08, 2024 pm 03:20 PM

小米推出的新拍照软件莱卡相机非常的火,但是这款软件在拍照时会出现闪退的现象,不少用户不知道怎么回事,怎么才能解决,下面一起来看看小米莱卡相机闪退解决方法吧。小米莱卡相机闪退怎么办解决方法一:1、首先将手机关机,关机三十秒后再重启手机。2、然后下载一款同类型的相机软件,试试能否正常运作。3、打开手机设置功能-相机程序-清除缓存数据。4、依然没能解决问题,试试备份手机数据,恢复出厂设置。5、如果以上这几点都不是,可能是相机组件硬件问题,需要将手机返厂维修检测。解决方法二:1、备份重要数据,打开安全中

u盘重装系统后内存变小了?这些原因不容忽视! u盘重装系统后内存变小了?这些原因不容忽视! May 06, 2024 pm 03:10 PM

重装系统是一项常见的电脑维护操作,但有时会遇到一些意外情况,比如u盘重装系统后内存变小了。这究竟是怎么回事呢?下面我们就来分析一下原因,并提供一些实用的建议。工具原料:系统版本:Windows1021H2品牌型号:联想ThinkPadX1Carbon软件版本:小鱼一键重装系统V5.0一、重装系统后内存变小的原因1、安装了过多的驱动程序和软件。有些用户在重装系统后,会安装大量不必要的驱动程序和软件,占用了内存空间。2、系统盘分区方案不合理。如果在重装系统时没有合理分配系统盘的空间,可能会导致内存不

Win11黑屏怎么办教你解决Windows_11黑屏问题 Win11黑屏怎么办教你解决Windows_11黑屏问题 May 08, 2024 pm 03:10 PM

Windows11是微软最新推出的操作系统,它带来了全新的界面设计和更多实用功能。然而,部分用户在升级或使用过程中遇到了黑屏问题,导致无法正常工作。本文将详细介绍几种有效解决Win11黑屏问题的方法,帮助你快速恢复电脑正常运行。工具原料:系统版本:Windows11(21H2)品牌型号:联想小新Pro162022、戴尔XPS13Plus、华硕ZenBookS13OLED软件版本:NVIDIAGeForceExperience3.26.0.160、IntelDriver&SupportAssist

如何实现电脑与电视的无线投屏(简单步骤让你轻松享受大屏观影体验) 如何实现电脑与电视的无线投屏(简单步骤让你轻松享受大屏观影体验) May 07, 2024 pm 02:43 PM

电脑与电视已成为人们生活中不可或缺的娱乐工具、在数字化时代。如果能够将电脑上的内容无线投射到电视上,播放游戏以及进行演示等活动、我们就能够在更大的屏幕上欣赏电影,想象一下。让你享受更震撼的视听体验、本文将带你了解如何通过简单的步骤实现电脑与电视的无线投屏。1.准备一台支持无线投屏的电视确保你拥有一台支持无线投屏功能的电视。如果你的电视没有,则可以购买一个外接的无线投屏设备、现在市面上大多数智能电视都内置了这一功能,如Chromecast或AppleTV等。2.选择合适的投屏协议接下来,选择合适的

See all articles