- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 2021-2022-1 20212820《Linux内核原理与分析》第十二周作业
缓冲区溢出漏洞实验缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。一、实验准备利用实验楼提供的环境进行实验操作,本次实验为了方便观察汇编语句,我们需要在 32 位环境下作操作,因此实验之前需要做一些准备。命令安装一些用于编译 32 位 C 程序的软件包:sudo apt-get updatesudo apt-get insta
2021-12-08 20:52:58
180
原创 2021-2022-1 20212820《Linux内核原理与分析》第十一周作业
格式化字符串漏洞实验一、 实验描述格式化字符串漏洞是由像printf(user_input)这样的代码引起的,其中 user_input 是用户输入的数据,具有 Set-UID root 权限的这类程序在运行的时候,printf 语句将会变得非常危险,因为它可能会导致下面的结果:使得程序崩溃 任意一块内存读取数据 修改任意一块内存里的数据最后一种结果是非常危险的,因为它允许用户修改 set-UID root 程序内部变量的值,从而改变这些程序的行为。本实验将会提供一个具有格式化漏洞..
2021-12-02 20:02:29
400
原创 2021-2022-1 20212820《Linux内核原理与分析》第九周作业
理解进程调度时机跟踪分析进程调度与进程切换的过程1、进程调度的时机(1)中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule();(2)内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度;(3)用户态进程无法实现主动调度,仅能通过陷入内核态后的某个时机点进行调度,即在中断处理过程中进行调度
2021-11-20 09:24:29
766
原创 2021-2022-1 20212820《Linux内核原理与分析》第八周作业
Linux 内核如何装载和启动一个可执行程序理解编译链接的过程和 ELF 可执行文件格式:可执行文件的创建过程:C代码(.c) - 经过编译器预处理,编译成汇编代码(.asm) - 汇编器,生成目标代码(.o) - 链接器,链接成可执行文件(.out) - OS将可执行文件加载到内存里执行。如图所示:1.预处理: gcc -E -ohello.cpphello.c -m32 预处理(文本文件),预处理负责把include的文件包含进来及宏替换等工作2.编译:gc...
2021-11-10 21:45:11
167
原创 2021-2022-1 20212820《Linux内核原理与分析》第七周作业
分析 Linux 内核创建一个新进程的过程阅读理解 task_struct 数据结构https://github.com/torvalds/linux/blob/v3.18-rc6/include/linux/sched.h#L1235; 分析 fork 函数对应的内核处理过程 sys_clone,理解创建一个新进程如何创建和修改 task_struct 数据结构; 使用 gdb 跟踪分析一个 fork 系统调用内核处理函数 sys_clone ,验证您对 Linux 系统创建一个新进程的理解,推.
2021-11-06 15:06:23
415
1
原创 2021-2022-1 20212820《Linux内核原理与分析》第六周作业
使用 gdb 跟踪分析一个系统调用内核函数实验步骤1.给MenuOS增加命令输入命令rm -rf menu强制删除当前的menu目录 使用git clone重新克隆一个最新版本的menu代码 在test.c文件的main函数中增加MenuConfig 增加对应的write函数和write_asm函数 make rootfs下面是实验结果:2.使用gdb跟踪系统调用内核函数sys_write实验步骤:输入下列命令:cd ..qemu -kernel linux-3
2021-10-29 12:20:06
173
原创 2021-2022-1 20212820《Linux内核原理与分析》第五周作业
使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用。实验内容本次的实验是使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用。我选择了4号系统调用write。在屏幕上打印输出“hello world!”,对应的API就是printf。1.用API实现创建hello.c文件,代码如下:#include <stdio.h>#include <string.h>int main(){ char* msg = "Hello
2021-10-22 19:00:50
205
原创 2021-2022-1 20212820《Linux内核原理与分析》第四周作业
跟踪分析Linux内核的启动过程实验步骤:使用实验楼的虚拟机打开 shell 输入下列命令cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 用gbd跟踪调试Linux内核的启动$ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S# 关于-s和-S选...
2021-10-15 14:36:27
187
原创 2021-2022-1 20212820《Linux内核原理与分析》第三周作业
完成一个简单的时间片轮转多道程序内核代码实验步骤:使用实验楼的虚拟机打开 shell 输入如下代码 # 注意路径是区分大小的$ cd ~/LinuxKernel/linux-3.9.4$ rm -rf mykernel$ patch -p1 < ../mykernel_for_linux3.9.4sc.patch$ make allnoconfig# 编译内核请耐心等待$ make$ qemu -kernel arch/x86/boot/bzImage.
2021-10-14 20:08:42
142
原创 2021-2022-1 20212820《Linux内核原理与分析》第二周作业
本周我通过学习《Linux内核分析配套实验》课程的实验1,通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的。步骤一在实验楼中,新建main.c,输入以下代码:步骤二输入gcc -S -o main.s main.c -m32.将此程序反汇编成汇编程序.其中:-S表示执行反汇编,-m32表示转换成32位汇编程序。注意实验楼的实验环境是64位,所以这里要加-m32。步骤三使用命令:gedit main.s 查看汇编程序。实验分析...
2021-10-03 20:54:28
147
原创 2021-2022-1 20212820《Linux内核原理与分析》第一周作业
1.Linux用户及文件权限管理在 Linux 系统里, root 账户拥有整个系统至高无上的权限,比如新建和添加用户。ls命令可以显示当前目录下的文件。2.
2021-09-28 15:03:47
302
原创 论文自动检索工具kopernio(一款Chrome浏览器插件)
安装网址:https://kopernio.com/install-manually当判断关键词发现你正在搜索文献时,这个插件可以帮助你自动查找文献对应的全文是什么(出现在浏览器右下角View PDF处)打开就可以看见全文了,它是先看你学校的数据库是否可以直接查找,如果不行则通过公开的途径去查找全文。点击View PDF可以直接查看该论文:...
2019-10-14 15:33:02
2529
1
原创 北理慕课——Python网络爬虫之框架
Scrapy爬虫的第一个实例产生步骤(1):应用Scrapy爬虫框架主要是编写配置型代码建立一个Scrapy爬虫工程选取一个目录,然后执行如下命令:D:\pycodes\scrapy startproject python123demo产生步骤(2):在工程中产生一个Scrapy爬虫进入工程目录(D:\pycodes\python123demo),然后执行如下命令...
2019-09-07 16:26:29
305
原创 北理慕课——Python网络爬虫之实战
1. 正则表达式(Re)库入门正则表达式的语法经典正则表达式实例匹配IP地址的正则表达式正则表达式的表示类型raw string类型(原生字符串类型)re库采用raw string类型表示正则表达式,表示为: r ' text '例如: r'[1‐9]\d{5}' r'\d{3}‐\d{8}|\d{4}‐\d{7}'raw s...
2019-08-27 19:03:32
283
原创 北理慕课——python网络爬虫之提取
1. Beautiful Soup库入门Beautiful Soup库是解析、遍历、维护“标签树”的功能库Beautiful Soup库的引用:Beautiful Soup库,也叫beautifulsoup4 或 bs4约定引用方式如下,即主要是用BeautifulSoup类from bs4 import BeautifulSoupimport bs4BeautifulSo...
2019-08-27 16:37:55
228
原创 北理慕课——python网络爬虫之规则
1.Requests库入门Requests库的7个主要方法:方法 说明requests.request( ) 构造一个请求,支撑以下各方法的基础方法requests.get( ) 获取HTML网页的主要方法,对应于HTTP的GETrequests.head( ) 获取HT...
2019-08-27 15:19:35
217
原创 北理慕课——Python文件和数据格式化
1. 文件的使用- 文件的类型 文件是数据存储的一种形式,展现形态分为:文本文件和二进制文件 文本文件是由单一特定编码组成的文件,如UTF-8编码,由于存在编码,也被看成是存储着的长字符串。适用于.py .txt文件 二进制文件是直接由比特0和1组成,没有统一字符编码。适用于.png .avi文件- 文件的打开和关闭<变量名> = open(<...
2019-08-09 11:24:42
376
原创 神经网络与PyTorch实战学习(附录)
1. 命令行运行2. Jupyter Notebook里运行运行Anaconda Prompt,进入合适的目录 eg:(base) C:\Users\极点>d:(base) D:\>cd d:\ProgramData\Anaconda3输入Jupyter notebook eg:(base) d:\ProgramData\Anaconda3>J...
2019-08-08 11:23:31
378
原创 北理慕课——Python组合数据类型
1 集合类型及操作1.1 - 集合类型定义集合是多个元素的无序组合- 集合用大括号 {} 表示,元素间用逗号分隔- 建立集合类型用 {} 或 set() - 建立空集合类型,必须使用set()>>> A = {"python", 123, ("python",123)} #使用{}建立集合{123, 'python', ('python',...
2019-08-07 14:47:44
407
原创 北理慕课——Python函数和代码复用
1. 函数的定义与使用1.1 函数的理解与定义函数是一段具有特定功能的、可重用的语句组函数是一种功能的抽象,一般函数表达特定功能作用:降低编程难度和代码复用函数的定义:def <函数名>(<参数(0个或多个)>): <函数体> return <返回值>函数定义后,所指定的参数是一种占位...
2019-08-04 12:52:03
649
原创 北理慕课——Python程序的控制结构
1. 程序的分支结构1.1 单分支结构:根据判断条件结果而选择不同向前路经的运行方式if <语句块>: <语句块>1.2 二分支结构:根据判断条件结果而选择不同向前路经的运行方式if <条件>: <语句块1>else: <语句块2>紧凑形式:适用于简单表达式的二分支结构<表...
2019-07-31 11:47:28
490
原创 北理慕课——Python基本数据类型
1.数字类型及操作1.1 整数类型:与数学中整数的概念一致。可正可负,没有取值范围限制 · pow(x,y) 函数:计算x^y · 整数类型的4种进制表示形式: 十进制:1020,99,-217 二进制:以0b或0B开头,0b010...
2019-07-25 18:19:15
1038
原创 北理慕课——Python基本图形绘制
1.标准库Python计算生态 = 标准库 + 第三方库标准库:随解释器直接安装到操作系统中的功能模块第三方库:需要经过安装才能使用的功能模块库Library、包Package、模块Module,统称模块2.turtle库概述turtle(海龟)库是turtle绘图体系的Python实现turtle绘图体系:1969年诞生,主要用于程序设计入门。是python语言...
2019-07-24 19:19:43
493
原创 北理工慕课——Python程序语法元素分析
1.程序的格式框架1.1 代码高亮:编程的色彩辅助,不是语法要求1.2 缩进:一行代码开始前的空白区域,表达程序的格式框架 严格明确:如果缩进不正确程序运行错误。 所属关系:缩进是表达代码间包含和层次关系的唯一手段。 长度一致:程序内一致即可,一般用4个空格或一个TAB。1.21.3 注释:不被程序执行的辅助性说明信息...
2019-07-24 11:33:06
299
原创 计算机网络谢希仁第七版知识点总结
第一章 概述1、计算机网络的定义 计算机网络主要是由一些通用的、可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的(例如传送数据或视频信号)。这些可编程的硬件能够用来传送不同类型的数据,并能支持广泛和日益增长的应用。2、报文交换、分组交换和电路交换的区别 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预...
2019-07-05 08:17:48
4295
原创 Coursera 吴恩达 第三周
1.Classification and Representation为了解决分类问题,一个方法就是用线性回归将所有大于0.5的预测视做1,小于0.5的预测视做0.但这种做法通常不能很好工作。分类问题和回归问题很相像,除了一点,分类问题的输出值是离散的,例如:0或1。我们首先讨论二元分类问题:y的取值只有0或者1.忽略掉y的取值,我们仍然可以构想分类问题类似回归问题,用线性回归来...
2019-05-16 21:59:31
268
原创 coursera 吴恩达 第二周
1.Multiple Features当有多个特征值的时候:这时候,我们的假设函数应修改为为了结构统一,我们假设这样子,变量就向量化了。注意x和theta都是n+1维向量。新的梯度下降算法:Feature Scaling(特征缩放)如果特征值的范围大小相差太大,那么用梯度下降会面临很糟糕的情况,想象一下,如果只有theta0和theta1,这两个变...
2019-05-16 18:14:30
328
原创 coursera 吴恩达 第一周
第一周什么是机器学习?Tom Mitchell provides a more modern definition:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance...
2019-05-16 16:38:07
163
原创 JavaScript笔记
声明:学习慕课网https://www.imooc.com/learn/10课程后进行的笔记摘抄整理。 1.变量必须要以字母、下划线或者美元符号开头,后面可以跟字母、下划线、美元符号和数字。2.变量名区分大小写。3.变量的声明 var 变量名; (如果要声明多个变量需要用逗号隔开)4.变量的赋值 可以在声明的时候赋值 var 变量名=*** ;或者...
2019-02-13 14:54:30
827
原创 html入门2
超链接:超链接可以链接到html文档的特定部分(被称为文档片段),而不仅仅是文件的顶部。要做到这一点你必须首先分配一个id属性的元素到链接。通常链接到一个特定的标题是有意义的,所以这看起来像下面的内容:<h2 id="Mailing_address">Mailing address</h2>然后链接到那个特定的id,您可以在URL的结尾包含它,前面是一个井号(...
2018-10-10 21:33:39
214
原创 HTML入门
1.通过使用标签 <em> 和 </em> (在前面放置 <em> 打开元素,在后面放置 </em> 关闭元素)——这使得行内容变成斜体强调2.你也可以把元素放到其它元素之中——这被称作嵌套。如果我们想要表明我们的小猫脾气很暴躁,可以将very嵌套在<strong> 中,意味着这个单词被着重强调3.在HTML中有两种你需要知道的重...
2018-10-10 20:44:44
103
原创 HTML基础
解析HTML文档:<!DOCTYPE html> — 文档类型。 <html></html> — <html> 元素。这个元素包含了整个页面的内容,有时也被称作根元素。 <head></head> — <head> 元素。这个元素可以包含你想添加的所有内容,但是不会被用户所看到。 <body
2018-10-10 20:24:08
91
原创 栈
emplate<typename T>class ArrayStack{public: ArrayStack(int s = 10); //默认的栈容量为10 ~ArrayStack(); public: T top(); //获取栈顶元素 void push(T t); //压栈操作 T...
2018-09-09 14:33:16
131
原创 数据结构实验复习
1 顺序建立链表题目描述输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。输入第一行输入整数的个数N;第二行依次输入每个整数。输出输出这组整数。示例输入812 56 4 6 55 15 33 62示例输出12 56 4 6 55 15 33 62#include<stdio.h>#include<iostream>using namesp...
2018-07-05 11:29:08
260
原创 时间日期格式转换
时间日期格式转换Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8784 Accepted: 4005Description世界各地有多种格式来表示日期和时间。对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”,此次编程大赛的启动日期“2009/11/07”就是符合这种格式...
2018-07-03 16:29:18
598
1
转载 8 Queens Chess Problem
题目描述In chess it is possible to place eight queens on the board so that no one queen can be taken by any other. Write a program that will determine all such possible arrangements for eight queens given...
2018-07-03 15:08:00
774
转载 Don't Get Rooked
来源:https://blog.csdn.net/jhc23/article/details/9977669题目描述In chess, the rook is a piece that can move any number of squares vertically or horizontally. In this problem we will consider small chess boa...
2018-07-03 14:54:04
436
转载 transportation -- DFS
来源:https://blog.csdn.net/CrazyForsaken/article/details/78690524题目描述Ruratania刚刚进入资本主义,正在包括运输在内的许多领域建立新的进取活动。TransRuratania运输公司正在开始从A市到B市的新特快列车,在途中的车站有几站。站点连续编号,城市A站号码为0,城市B站号码为m。该公司进行了一项试验,以提高客运能力,从而增加...
2018-07-03 14:32:27
388
1
转载 Highways
来源:https://blog.csdn.net/lttree/article/details/27089981题目描述有个城市叫做H市。其中有很多个村庄,村庄之间通信基本靠吼,交通基本靠走,很不方便。这个市长知道了这个情况,为了替市民着想,决定修建高铁。每修建一米花费1美元。现在市长请了最著名的工程师来修建高铁,自然这个工程师会让修建高铁的费用最少。不幸的是,在修建了高铁之后就病逝了。现在市长希...
2018-07-02 21:25:39
839
原创 Calendar
题目描述日历是一个测量时间的系统,从几小时到几分钟到几个月和几天,最后是几年和几个世纪。小时,天,月,年和世纪的条款都是压光机系统的时间单位。 根据公历,即今日使用的公历,可以被4整除的年份是闰年,但百年不能被400整除。因此,1700年,1800年,1900年和2100年是不是闰年,但1600,2000和2400是闰年。 考虑到自2000年1月1日以来已经过去的天数,您的任务是查找星期几和星期几...
2018-06-15 17:06:50
565
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人