摘要:
外设驱动程序设计 实验内容和要求 在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验。提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)。 实验步骤 test实验 描述 编写最简单的字符驱动程序,这里的设备也就 阅读全文
posted @ 2025-01-02 11:33
Arisf
阅读(42)
评论(0)
推荐(0)
摘要:
康奈尔笔记法 - 嵌入式Linux应用程序开发 主题:第11章学习笔记 1. 关键问题(Questions/Keywords): 嵌入式Linux开发的核心概念有哪些? 如何配置开发环境? 嵌入式系统的文件系统如何构建? 进程管理和多线程技术的应用。 2. 备注(Notes): 嵌入式Linux核心 阅读全文
posted @ 2025-01-02 11:33
Arisf
阅读(41)
评论(0)
推荐(0)
摘要:
批处理 实验要求 有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccccccccccccccc eeeeeeeeeeeeeeeeeeeeeeeeeeee 阅读全文
posted @ 2025-01-02 11:33
Arisf
阅读(24)
评论(0)
推荐(0)
摘要:
反汇编-2 代码 #include<stdio.h> int main() { int input, output, temp; input = 1; asm volatile( "movl $0, %%eax;\n\t" "movl %%eax, %1;\n\t" "movl %2, %%eax; 阅读全文
posted @ 2025-01-02 11:32
Arisf
阅读(12)
评论(0)
推荐(0)
摘要:
测试6-Makefile 安装makefile sudo apt install make 使用makefile编译 配置Makefile规则(Makefile+编译+链接) testmymath:add.o div.o mul.o sub.o main.o gcc add.o div.o mul. 阅读全文
posted @ 2025-01-02 11:32
Arisf
阅读(27)
评论(0)
推荐(0)
摘要:
测试五-共享库 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库? main.c如何使用mymath.so? 编译源代码为对象文件 将所有的源代码文件(.c或.cpp文件)编译成目标文件(.o文件)。使用-c选 阅读全文
posted @ 2025-01-02 11:32
Arisf
阅读(28)
评论(0)
推荐(0)
摘要:
测试四-静态库的测试 针对第一个题目(VSCode/Vim)输入的代码,除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a? 编译源文件 将所有的源代码文件(.c或.cpp文件 阅读全文
posted @ 2025-01-02 11:31
Arisf
阅读(19)
评论(0)
推荐(0)
摘要:
测试三-gdb测试 用gcc -g编译附件代码 gcc -g testgdb.c -o testgdb #使用gdb启动程序 gdb ./testgdb 在main函数中设置一个行断点 (gdb) break 5 修改循环次数为自己学号后4位,设置一个约为学号一半的条件断点 #include <st 阅读全文
posted @ 2025-01-02 11:31
Arisf
阅读(40)
评论(0)
推荐(0)
摘要:
测试二 编写hello world程序,要求加一行打印自己学号姓名 #include<stdio.h> int main(){ printf("吴昊宇,20242826\n"); return 0; } 预处理 #将helloworld.c预处理输出helloworld.i文件。 gcc -E he 阅读全文
posted @ 2025-01-02 11:30
Arisf
阅读(18)
评论(0)
推荐(0)
摘要:
测试一 用Vim 或 VSCode输入图中代码,并用gcc编译通过 //head.h #ifndef HEAD_H #define HEAD_H int add(int, int); int sub(int, int); int mul(int, int); double div(int, int) 阅读全文
posted @ 2025-01-02 11:30
Arisf
阅读(18)
评论(0)
推荐(0)
摘要:
visual studio下静态链接库的制作、动态链接库的制作 生成动态库dll和静态库与lib 打开VS2022,创建一个桌面向导项目: 选择动态链接库 首先,创建四个.c文件,内容为函数定义,即add.c、sub.c、div.c和mul.c四个文件,但需要稍微修改,即在函数面前加上_declsp 阅读全文
posted @ 2025-01-02 11:29
Arisf
阅读(448)
评论(0)
推荐(0)
摘要:
main参数传递-1 求和函数 //sum.c #include<stdio.h> int sum(int N) { int sum=0; sum = sum+N; return sum; } //main.c #include<stdio.h> #include<stdlib.h> //声明 in 阅读全文
posted @ 2025-01-02 11:29
Arisf
阅读(13)
评论(0)
推荐(0)
摘要:
Linux内核原理与分析第一次作业 安装Ubuntu 安装虚拟机软件例如vmware、virtualbox等 下载ubuntu映像文件,官网或网盘下载,推荐lts版本 配置虚拟机硬件参数,安装系统映像 学习Linux常用命令 命令 功能描述 示例 ls 列出当前目录下的文件和子目录 ls -l 列出 阅读全文
posted @ 2025-01-02 11:29
Arisf
阅读(20)
评论(0)
推荐(0)
摘要:
模块与系统调用 1. 编写内核模块代码 首先,编写一个简单的“Hello World”内核模块文件 hello_module.c。 #include <linux/init.h> // 用于宏 __init 和 __exit #include <linux/module.h> // 用于模块编程基本 阅读全文
posted @ 2025-01-02 11:29
Arisf
阅读(122)
评论(0)
推荐(0)
摘要:
Linux内核编译 实验内容 下载内核源码: 确定内核版本号 uname -r 在www.kernel.org选择接近的内核版本下载 linux-6.6.60.tar.xz 将压缩包解压到虚拟机目录中 确认系统位数 getconf LONG_BIT 确认虚拟机保留足够大硬盘空间(20G) df -h 阅读全文
posted @ 2025-01-02 11:28
Arisf
阅读(58)
评论(0)
推荐(0)
摘要:
读者写者模型 读者写者 “读者-写者”问题是经典的同步问题,常用于解决多线程访问共享资源的同步控制。此问题主要是确保在多个线程并发访问共享资源(如文件或数据库)时,避免数据不一致。通常有两种策略: 读者优先:允许多个读者同时访问资源,但写者必须等待。 写者优先:写者一旦想要写入,所有读者都需要等待, 阅读全文
posted @ 2025-01-02 11:27
Arisf
阅读(65)
评论(0)
推荐(0)
摘要:
Linux内核编译 实验内容 下载内核源码: 确定内核版本号 uname -r 在www.kernel.org选择接近的内核版本下载 linux-6.6.60.tar.xz 将压缩包解压到虚拟机目录中 确认系统位数 getconf LONG_BIT 确认虚拟机保留足够大硬盘空间(20G) df -h 阅读全文
posted @ 2025-01-02 11:26
Arisf
阅读(52)
评论(0)
推荐(0)
摘要:
《Linux 内核原理与分析》第 4 周作业 实验过程 使用实验楼的虚拟机打开 shell cd ~/LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入 menu 程序 支 阅读全文
posted @ 2025-01-02 11:26
Arisf
阅读(33)
评论(0)
推荐(0)
摘要:
ShellShock 攻击实验 实验简介 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发。在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题。 预备知识 什么是ShellShock? Shellshock,又称B 阅读全文
posted @ 2025-01-02 11:25
Arisf
阅读(69)
评论(0)
推荐(0)
摘要:
Python实现Zip文件的暴力破解 实验内容 我们在网上好不容易下载到一个想要的 zip 资源却发现这个 zip 文件是加密的,或者忘掉自己压缩后的密码(一想到就头疼)。这时候我们就会想办法,将里面的内容提取出来。我目前已知的破解 zip 的方式只有 “Known plaintext attack 阅读全文
posted @ 2025-01-02 11:24
Arisf
阅读(282)
评论(0)
推荐(0)
摘要:
阅读教材《庖丁解牛Linux 操作系统分析》 第12章 Linux系统安全相关技术 学习内容: 作为核心软件平台,Linux系统的安全性对于整个计算机环境的安全至关重要。确保了Linux系统的安全性,就等于为所有依赖该系统运行的服务和信息提供了一道安全屏障。虽然保护Linux系统本身是重要的,但最终 阅读全文
posted @ 2025-01-02 11:24
Arisf
阅读(173)
评论(0)
推荐(0)
摘要:
阅读教材《庖丁解牛Linux 操作系统分析》 第十章:KVM及虚拟机技术 关于 KVM(Kernel-based Virtual Machine) 和虚拟机技术,以下是一些常见的学习内容和问题: 学习内容: KVM 基础知识: KVM 是 Linux 内核的虚拟化模块,通过硬件虚拟化支持(如 Int 阅读全文
posted @ 2025-01-02 11:23
Arisf
阅读(80)
评论(0)
推荐(0)
摘要:
理解进程调度时机跟踪分析进程调度与进程切换的过程 实验过程 任务一 理解 Linux 系统中进程调度的时机,可以在内核代码中搜索 schedule()函数,看都是哪里调用了 schedule(); 使用 grep 命令: 在内核源码的根目录运行以下命令: grep -rnw "schedule()" 阅读全文
posted @ 2025-01-02 11:23
Arisf
阅读(107)
评论(0)
推荐(0)
摘要:
Linux 内核如何装载和启动一个可执行程序 1. Linux 可执行程序的加载和启动过程 Linux 加载和启动一个可执行文件的过程涉及以下步骤: 编译和链接:程序的源代码通过编译生成目标文件(通常为 .o 文件),这些文件包含二进制代码和符号信息。链接器负责将这些目标文件组合成一个可执行文件,链 阅读全文
posted @ 2025-01-02 11:22
Arisf
阅读(554)
评论(0)
推荐(0)
摘要:
实验四 使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用 实验内容 选择一个系统调用(13 号系统调用 time 除外),系统调用列表参见 torvalds/linux。 参考视频中的方式使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用 实验过程 使用 阅读全文
posted @ 2025-01-02 11:21
Arisf
阅读(38)
评论(0)
推荐(0)
摘要:
实验三 跟踪分析 Linux 内核的启动过程 使用实验楼的虚拟机打开 shell cd ~/LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入 menu程序 使用 gdb 阅读全文
posted @ 2025-01-02 11:20
Arisf
阅读(56)
评论(0)
推荐(0)

浙公网安备 33010602011771号