当前位置: 首页 > wzjs >正文

做网站前的准备关键词seo公司

做网站前的准备,关键词seo公司,河北网站建设制作,桂林建设网站公司参考文章:linux添加系统调用【简单易懂】【含32位系统】【含64位系统】_64位 32位 系统调用-CSDN博客 安装新内核 1. 在火狐下载你需要的版本的linux内核压缩包 这里我因为在windows上面下载过,配置过共享文件夹,所以直接复制粘贴通过共享文…

参考文章:linux添加系统调用【简单易懂】【含32位系统】【含64位系统】_64位 32位 系统调用-CSDN博客

安装新内核

1. 在火狐下载你需要的版本的linux内核压缩包

这里我因为在windows上面下载过,配置过共享文件夹,所以直接复制粘贴通过共享文件夹得到源码。共享文件夹配置可以参考教程:VM Virtualbox虚拟机ubuntu共享文件夹 | 权限控制问题解决-CSDN博客

2. 在你下载的文件夹中打开终端

分别执行两个语句

sudo -s
//申请权限
cp linux-5.4.293.tar.xz /usr/src
//将这个压缩包拷贝至 /usr/src

在usr/src中成功找到!

在这里打开终端,对源码进行解压

sudo tar -xvf linux-5.4.293.tar.xz
  • sudo:以超级用户权限执行命令(需要输入管理员密码)
  • tar:Linux 下的归档工具
  • -x:解压模式(extract)
  • -v:显示详细过程(verbose)
  • -f:指定文件名(file)

下面就得到了新内核!

给新内核添加一个新的系统调用

以下参考linux官方手册:如何给linux-5.4添加一个系统调用Adding a New System Call — The Linux Kernel documentation

我最后一遍重新下载了linux 5.19的版本:

Index of /pub/linux/kernel/v5.x/

参考视频[Linux Kernel] 系统调用的添加和测试(syscall;QEMU)_哔哩哔哩_bilibili

放在前面的友情提示:

这个虚拟机分配的内存一定要够,我是分配了60G,最终源码都是放在usr/src下面,最好保证编译之前有30G左右的内存,不然会在你接近成功的时候发生“设备上没有空间”的错误,功亏一篑!

报这个错,再次打开虚拟机会发现虚拟机再也用不了了,只能重开

找一个文件夹,它的绝对路径为:

/usr/src/linux-5.4.293/arch/x86/entry/syscalls


进去之后看这两个文件,你的虚拟机的操作系统是32位就改syscall_32.tbl,64位就改syscall_64.tbl
不知道系统是多少位的?打开终端,输入命令getconf LONG_BIT,看看你现在的操作系统中,long型数据占几位,就知道系统是几位的了

下面的部分就是修改内核源码的部分了:

下面三张白色的图是视频里面的,用作参考,后面的图是我自己修改的

 

#include <linux/kernel.h>
#include <linux/syscalls.h>
#include <linux/sched/signal.h>   // for for_each_process
#include <linux/uaccess.h>        // for copy_to_user
#include <linux/printk.h>
#include <linux/errno.h>SYSCALL_DEFINE4(ps_info,int __user *, pid,char __user *, comm,long long __user *, ttime,long __user *, state)
{struct task_struct *task;int counter = 0;long ret;printk(KERN_INFO "[Syscall] ps_info invoked\n");printk(KERN_INFO "[StuID] ZhuoJunxi from CSU\n");for_each_process(task) {/* PID */ret = copy_to_user(&pid[counter],&task->pid,sizeof(task->pid));if (ret) return -EFAULT;/* Command name (fixed 16 bytes) */ret = copy_to_user(&comm[counter * TASK_COMM_LEN],task->comm,TASK_COMM_LEN);if (ret)return -EFAULT;/* Cumulative execution time */ret = copy_to_user(&ttime[counter],&task->se.sum_exec_runtime,sizeof(task->se.sum_exec_runtime));if (ret)return -EFAULT;/* Current state (renamed __state in 5.14+) */ret = copy_to_user(&state[counter],&task->__state,sizeof(task->__state));if (ret)return -EFAULT;counter++;}return 0;
}

修改完源码之后,就要准备编译了。

suso make mrpropersudo make clean # 步骤1:编译内核镜像(bzImage)和模块(modules)sudo make -j12  //这里的j是你分配给虚拟机的内核数量

make出现问题:由需要签名证书部分交互的,或者说不存在XXX(这里我找不到bug图片了)

解决方法:为 Linux 内核模块签名生成所需的证书和私钥。

mkdir -p certs && openssl req -new -x509 -newkey rsa:4096 -keyout certs/signing_key.pem -out certs/signing_key.x509 -nodes -subj "/CN=Kernel Signing Key/"

这样再重新运行make指令就好了,中间如果有一些bug是需要下载--直接下载

 

注意:只有出现最后一句 Kernel :       is ready 才是编译成功的标志

否则就去上面找哪里有错误,一个个修正

编译时间参考:15核CPU编译一分钟,4核CPU编译两小时

sudo make modules_install
sudo make install

 内核编译好后,重启虚拟机,输入

uname -a

查看当前内核是否为你修改的那个内核,成功! 

测试程序 

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/syscall.h>#define __NR_ps_info 451  // 根据实际系统调用号调整int main() {int pids[100];char comms[100 * 16];long long times[100];long states[100];int count = 100;// 调用 ps_info 系统调用syscall(__NR_ps_info, pids, comms, times, states, &count);printf("Retrieved %d processes\n", count);for (int i = 0; i < count && i < 10; i++) {  // 只打印前10个进程printf("PID: %d, Comm: %s, Time: %lld, State: %ld\n",pids[i], &comms[i*16], times[i], states[i]);}return 0;
}

运行测试 


文章转载自:

http://uWvayRG1.rqfzp.cn
http://IfjuAXTV.rqfzp.cn
http://YOYXDtGj.rqfzp.cn
http://L8IXwrBW.rqfzp.cn
http://ujrADUrZ.rqfzp.cn
http://kc4tShoq.rqfzp.cn
http://3VlBVxF0.rqfzp.cn
http://op1NFaOM.rqfzp.cn
http://GLDIVtAx.rqfzp.cn
http://KN8Cyqrd.rqfzp.cn
http://CPqhAsu5.rqfzp.cn
http://Co0wFo5Z.rqfzp.cn
http://NQgSLZHb.rqfzp.cn
http://uBSVODHY.rqfzp.cn
http://RgxrJV2n.rqfzp.cn
http://DkLmWbEK.rqfzp.cn
http://wYdU1zRZ.rqfzp.cn
http://sNXFmomz.rqfzp.cn
http://noP1sN7O.rqfzp.cn
http://9xMISoCH.rqfzp.cn
http://ZALFzQbe.rqfzp.cn
http://MeBjuHg8.rqfzp.cn
http://uQSlDVOt.rqfzp.cn
http://ZqBxObbR.rqfzp.cn
http://MsF5nmI1.rqfzp.cn
http://NOpnrKzS.rqfzp.cn
http://hV7JG9Nw.rqfzp.cn
http://GDd6rgzB.rqfzp.cn
http://uOe3Z6TO.rqfzp.cn
http://7BuyDlRB.rqfzp.cn
http://www.dtcms.com/wzjs/678987.html

相关文章:

  • 宝山手机网站制作公司中国建筑室内设计师网
  • 开封市建设局网站宣传推广方式
  • 网站添加微信支付河南男科医院排名榜
  • 遂宁住房和城乡建设厅网站三明市建设局网站
  • 昆山做网站优化少儿编程自学网站
  • 宣传网站怎么做的wordpress 新建一个页面
  • 美食网站开发的目的和意义建设网站证书查询
  • 想要自己做一个网站怎么做大兴模版网站开发公司哪家好
  • 深圳哪家网站建设关于建设学校网站的报告
  • 闸北网站建设公司邹城市网站建设
  • 做网站要多长时间暑假旅游最适合的城市
  • 网站被备案能建设个人网站 备案备注
  • 网站建设征求意见大型机械网站建设公司
  • 百度网站风格网站开发毕业设计源码
  • 做网站一个月30ipwordpress中英文版如何
  • 自定义网站建站公司西樵网站设计制作
  • 做网站 智域大连广西工程建设质量安全管理协会网站
  • 电子商务网站开发技术论文建筑人才网证书查询
  • 网站脑图怎么做wap网站空间
  • tiktok国际版网页入口企业网站seo平台
  • 西安网站设计哪家公司好微信seo是什么意思
  • 站长网seo综合查询工具google 网站打不开
  • 惠州模板网站商会网站建设
  • 国外购买域名的网站朝阳住房和城乡建设官方网站
  • 横翻网站模版自己做免费网站难吗
  • 怎样创建企业网站wordpress手机验证注册
  • 滨州网站建设腾度三网一体网站建设
  • 做中东服装有什么网站知名的网络公司
  • 企业网站制作托管minify wordpress
  • 动漫网站设计源代码wordpress 首页调用文章