2 GlowChar

尚未进行身份认证

暂无相关简介

等级
TA的排名 23w+

程序代码段为只读属性,为什么还有自修改代码?

参考链接:https://blog.yanhao.org/?p=271我们都知道编译器会把程序的代码放在.text段,即代码段。这段地址是只读的,系统在加载的时候会把相应的代码数据附上只读属性,这样当相对其修改的时候就会引发例外。但是系统提供了mprotect系统调用,它可以修改内存的属性,自修改代码就是利用它来实现的。下面看一下mprotect传入的参数: SYSCALL_DEFINE...

2019-09-11 16:11:40

虚拟化:gva、gpa、hva、hpa转化

gva -> gpa和hva -> hpa转化较为简单,分别去查guest和host页表即可。gpa -> hva:由于我所接触的虚拟化方式是采用qemu-kvm的方式。kvm负责cpu和内存的虚拟化,qemu负责io的虚拟化,且gpa->hva都是由qemu维护的,提供给kvm管理借口。具体代码实现见:kvm_pfn_t __gfn_to_pfn_memsl...

2019-09-06 14:13:37

内核怎么分配一段连续的内存区间

内核可以用kmalloc分配一段连续的内存空间,kmalloc的具体实现为:static __always_inline void *kmalloc(size_t size, gfp_t flags){ struct kmem_cache *cachep; void *ret; if (__builtin_constant_p(size)) { i...

2019-09-05 11:39:16

增大EFI分区的简易方式

最近在玩黑苹果,再装系统的时候不能格式化磁盘,网上查了解到是由于EFI分区大小不够造成的,对于怎么扩展efi分区我在网上找了找都没发现好方法,自己摸索出一个非常简单的方法:工具:DiskGenius原理:打开软件我们知道一般系统有恢复分区,ESP分区,MSR分区,系统分区等等。我们的方法是把一部分恢复分区放到EFI分区。步骤:建议把EFI分区扩展到300M1、在DiskGeni...

2019-03-30 16:58:20

解决ubuntu下外接2k显示器却无法调2k分辨率问题

网上都是一些使用cvt来设置,但是有些显示器需要cvt -r才能成功。1. 准备先查看显示输出设备 1 xrandr 显示如下: 123456789101112131415 Screen 0: minimum 320 x 200, current 2560 x 1440, ...

2018-11-09 15:35:12

微星(MSI)笔记本安装ubuntu+win双系统

本人是微星gl62m系列。在安装ubuntu过程中出现这几个问题:1、做好u启动后选择u盘启动直接插入ubuntu进不去。2、安装好后不能识别显示器(unknow display)。3、去ubuntu自己的软件更新更新英伟达专有驱动后有出问题。注意:由于要安装第三方驱动,所以要在安装ubuntu之前去bios安全里关闭安全启动。下面对上面问题做回答:1、在出现Ubuntu安装界面前按e键, 找到”...

2018-05-30 09:22:19

win10下最新Java-10环境变量配置

在系统环境变量下新建三个环境变量:系统变量→新建 JAVA_HOME 变量 。变量值填写jdk的安装目录(本人是 D:\Java\jdk-10)系统变量→新建 CLASSPATH 变量变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)系统变量→寻找 Path 变量→编辑在变量值最后输入 %JAVA_HOME%\bin(注意原来...

2018-04-16 09:47:21

LeetCode 12. Integer to Roman

Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.My answer:class Solution {public: string intToRoman(int num) { int

2017-11-01 10:38:47

c语言位运算符与逻辑运算符的区别

&&、||是逻辑运算符,用于从左到右求表达式的真值。假设x=1;y=2;那么x&&y=1;x||y=1;&、|是位运算符,是对x,y进行位运算,x,y取值如上,那么有x&y=0;(x的二进制表示为00,y的二进制表示为10)

2017-10-31 12:14:53

c语言printf();函数输出格式

c语言printf();函数输出格式:%d 按照十进制整数打印%6d       按照十进制整数打印,至少6个字符带宽%f        按照浮点数打印%6f        按照浮点数打印,至少6个字符带宽%.2f       按照浮点数打印,小数点后有两位小数%6.2f     按照浮点数打印,至少6个字符带宽,小数点后有两位小数此外,printf();函数还支持

2017-10-31 10:10:18

九度OJ题目解答1002

题目描述:    Grading hundreds of thousands of Graduate Entrance Exams is a hard work. It is even harder to design a process to make the results as fair as possible. One way is to assign each exam prob

2017-09-15 16:52:01

九度OJ题目解答1003

题目描述:给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。现在请计算A+B的结果,并以正常形式输出。输入:输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 输出:请计算A+B的结果,并以正常形式输出,每组数据占一行。样例输入:-234,567,890 123,456,789

2017-09-14 10:52:34

九度OJ题目解答1001

题目描述:    This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.输入:    The input consists of several test cases, each

2017-09-14 08:28:38

九度OJ题目解答1000

题目描述:求整数a,b的和。输入:测试案例有多行,每行为a,b的值。输出:输出多行,对应a+b的结果。样例输入:1 24 56 9样例输出:3915My answer:#include using namespace std;int main(){ int a,b;

2017-09-13 20:22:04

使用c++类需要注意的三件事?

1、类名是什么?      如:类名为Sales_item;2、他是在哪里定义的?      头文件Sales_item.h中已经定义了这个类;3、他支持什么操作?      可以根据自己需要对类进行相应的操作。

2017-09-13 19:42:51
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。