2021年申威&江南大学 暑期实践课题

实践课题 实践课题 1411 人阅读 | 1 人回复 | 2021-07-26

本帖最后由 TecSupport 于 2021-7-26 10:43 编辑

2021年申威&江南大学 暑期实践课题

1.申威操作系统内核开发实践
(1)难度:中等
(2)时间:15天
(3)环境条件:【软件】申威3231内核源码
(4)背景目的:理解Linux内核和模块的基本开发方法,理解系统调用核心概念。
(5)要求:
•   模块开发:在申威上构建和编译helloworld内核模块工程,在装载模块时打印“hello,world”,在卸载模块是打印“goodbye”。利用dmesg可以查看内核打印。再此基础上,增加内核模块参数count,用来控制打印的次数,譬如装载模块时指定count=10,则打印10次"hello,world"。
•    理解系统调用:在内核中,新增一条系统调用,其功能描是在内核中打印用户态传入的字符串,其内部逻辑如下。编写用户程序对新增系统调用进行验证。
     intnewsyscall(char*string)
    {
        printk("newsyscall called, user string is: %s\n",string);
        return 0;
    }

2.语言编译相关实践
(1) 难度:一般
(2) 时间:7天
(3) 环境条件:申威平台3231服务器
(4) 背景目的:了解编译过程,理解机器代码
(5) 要求:
  a)在申威平台,使用C语言实现两个N*N矩阵的乘法,矩阵由一维数组表示,用GCC编译器编译运行。自己编程实现(N值自定);
  b)将C语言源代码变成机器可执行的二进制代码,经历几个编译步骤?每个步骤的输入输出以及作用是什么?
  c)将生成汇编文件中的指令与C代码语句一一对应,并标注出来。

3.申威平台kaldi库移植
1)难度:中等
2)时间:15
3)环境条件:申威平台3231服务器环境
4)背景目的:了解体系架构相关库移植流程,了解针对体系架构优化
5)需求:基于开源kaldi5.4版本代码,在申威平台上完成该库的编译移植工作,并摸索进行test相关单元测试,测试通过率不低于80%

附件:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

回答|共 1 个

TecSupport

发表于 2021-7-26 16:31:50 | 显示全部楼层

1.测试文件路径:/home/deepin/2021_SW_JN_test

1.1内核源码包所在目录:/home/deepin/2021_SW_JN_test/kernel
可以通过cp linux-stable-sw-linux-4.19.y-sw.tar.gz $MY_PATH
可以通过tar -xvf linux-stable-sw-linux-4.19.y-sw.tar.gz解压源码

1.2虚拟机文件所在目录:/home/deepin/2021_SW_JN_test/run_files_zxh
1.2.1虚拟机操作
1.2.1.1重启机器后需要先建立网桥:sh bridge.sh
1.2.1.2虚拟机启动:sh run_uos830_zxh.sh
1.2.1.3虚拟机关闭:Ctrl + c

1.2.2虚拟机文件说明:
虚拟机镜像1:uos830-1030-ty.qcow2
虚拟机镜像2:busybox.raw
虚拟机启动执行脚本:run_uos830_zxh.sh (注意:里面定义了虚拟机的内核路径、镜像路径、VNC端口号,用户需要根据各自的实际路径修改脚本)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则