avatar
Articles
53
Tags
17
Categories
17

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
MoYingXing
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

MoYingXing

C++类机制
Created2024-09-22|C++
从现在开始从程序员的角度学习C++类的基础语法规则 类基础1.组成类是由数据成员加函数组成的一种新的数据类型 2.类成员的访问通过this指针,可以使成员函数可以访问成员变量,this指针作为成员函数的第一个隐式参数,当实例化类调用函数时,会将变量的地址传入this。 this的默认类型是指向非常量类型的常量指针,也就是说this本身不能变化,但是只能指向非常量类型,也就是const修饰的类类型无法使用,为了改善这一点,需要在函数参数后加上const关键字进行修饰。将this声明为指向常量类型的常量指针。 如:std :: string isbn() const { return bookNo; } const修饰一个类也可以有更加细腻的访问控制,mutable关键字修饰的类成员可以改变 3.类成员的访问之作用域 访问数据需要保证数据的可达性,也就是作用域,需要考虑数据的声明以及定义 类内的访问规则为:成员函数体可以随意访问成员变量,不需要考虑定义的位置。成员函数也可以定义在类的外部,但是需要和类声明相匹配。需要加类修饰符,类似于命名空间。 4.类初始化类使用一个 ...
linux5.15之page分配
Created2024-09-20|linux内核5.15
本文按照Linux内核深度解析为主线,做的一些总结和梳理 1.关于内存分分配标志 参考gfp.h 1.1一些掩码/* Plain integer GFP bitmasks. Do not use this directly. */#define ___GFP_DMA 0x01u#define ___GFP_HIGHMEM 0x02u#define ___GFP_DMA32 0x04u#define ___GFP_MOVABLE 0x08u#define ___GFP_RECLAIMABLE 0x10u#define ___GFP_HIGH 0x20u#define ___GFP_IO 0x40u#define ___GFP_FS 0x80u#define ___GFP_ZERO 0x100u#define ___GFP_ATOMIC 0x200u#define ___GFP_DIRECT_RECLAIM 0x400u#define ___GFP_KSWAPD_RECLAIM 0x800u#define ___GFP_WRITE 0x1000u#define ___ ...
Untitled
Created2024-09-19
密码学实战
Created2024-09-17|密码学
维吉尼亚密码 以一道作业题为例子 思路 1.确定m,利用重合指数法,首先猜测m的长度,然后按m将密文分组,取每组的第1,2….n,分别放在一起,形成新的文本,以字典形式表示,key = 组号 ,value = 字符串。 2.计算重合指数,因为key是变化的,每一组需要多右移动一次,因此每一个字符串并非是简单的平移,而是后一个字符要多平移一个,因此需要变换字符串为正常情况来进行重合指数的分析,(就是把每个字符串的字符按索引平移回去)。 3.重合指数的计算,遍历m,分别计算平均重合指数,然后取平均值在0.6以上的(则表明非随机)。 4.确定key,再次利用重合指数法,算出每一个组的每个字符出现的频率,然后利用有意义字符的频率,来进行重合指数的计算(最多尝试26次,即可确定key),注意解出来的并非是key,而是key的逆,也就是说key-26。 5.通过4计算而得的key,平移每个组的字符串,再将其按照一的方式组合回去,即可得到明文。 实现1.文本预处理 这一步删除掉密文的换行之类,并统一大小写 def pretreatment(): with open ...
linux5.15之page
Created2024-09-16|linux内核5.15
主要讨论了page的管理方式,搭配不同的内存模型,应该是比较底层的部分,此部分学习主要是参考了前人的文章,主要还是先理解如何管理吧,初始化等部分和架构结合的比较紧密,需要看汇编了,一步一步来。 文章https://mp.weixin.qq.com/s/CZW7kjeyDrDOmF8hjnyw0Q https://arttnba3.cn/2021/11/28/OS-0X02-LINUX-KERNEL-MEMORY-5.11-PART-I/#Sparse-Memory
linux5.15之内存管理初始化(x86)
Created2024-09-16|linux内核5.15
主初始化函数在main.c中,主要研究以下几个部分: 1.node的初始化 2.zone的空间分配 3.node的zonelist的初始化 blog https://7r1pl3j.github.io/2022/11/17/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86/#Linux-%E4%B8%89%E7%A7%8D%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B 终于是理解了node,zone,pfn以及page。 setup_arch(&command_line) 涉及到cpu与node之间关系的建立以及,node与内存之间映射关系的建立 在建立关系之前需要有一个分配器来完成内存的分配,因此需要bootstrap,需要先初始化一个笨重的分配器,来进行最初的内存分配,直到高级的分配器完全建立。 涉及部分数据结构如下: //分别是获得io,和分配节点的部分代码u16 *cpu_to_apicid = early_per_cpu_ptr(x86_cpu_to_apicid);cpu_to_node_map[cpu] = n ...
Untitled
Created2024-09-16
rust初探
Created2024-09-15|rust
前言trait特性是rust中比较重要的,类似于c++中的虚函数特性,但是从对象为主导,变成了以函数为主导,第一感觉rust像是面向函数式编程。 使用 可以先定义trait定义一组方法,然后绑定给不同的数据结构,然后可以根据数据结构的不同访问不同的方法,也有c++中类似于动态绑定的概念,但是要比继承简单很多。 示例: trait Shape { fn area(&self) -> f64;}struct Circle { radius: f64,}struct Square { side: f64,}impl Shape for Circle { fn area(&self) -> f64 { 3.14 * self.radius * self.radius }}impl Shape for Square { fn area(&self) -> f64 { se ...
rust初探
Created2024-09-15|rust
从现在开始进行rust语言的学习。 1.基础概念 此部分比较简单,基本上是每个语言都有的概念 c语言的差异:1.静态类型 2.没有隐式类型转换。 数据类型 主要分为标量以及复合类型,具体可参考https://kaisery.github.io/trpl-zh-cn/ch03-02-data-types.html 标量:整型、浮点型、布尔类型和字符类型。 复合类型:Rust 有两个原生的复合类型:元组(tuple)和数组(array)。 变量 要搞清楚可变变量和不可变变量(默认),以及常量(c语言是运行时检查的,加上const关键字) 也要搞清楚什么是变量遮掩。(Shadowing)可以和作用域以及别名来联想对比学习。 函数 和一般的函数没什么不同,无非就是返回值,名称以及参数,函数的最后一个表达式的值默认为返回值(下面会讲解表达式) 语句以及表达式 语句(Statements)是执行一些操作但不返回值的指令。 表达式(Expressions)计算并产生一个值. {}是比较常见的表达式。 控制流 无非就是改变程序的原本的执行流程的一些功能,是一种特殊的表达式。 关于if:在 ...
rust初探
Created2024-09-15|rust
https://rustmagazine.github.io/rust_magazine_2021/chapter_1/toc.html https://zjp-cn.github.io/tlborm/proc-macros/methodical/derive.html
12…6
avatar
陌影形
MYX
Articles
53
Tags
17
Categories
17
Follow Me
Recent Post
C++类机制2024-09-22
linux5.15之page分配2024-09-20
Untitled2024-09-19
密码学实战2024-09-17
linux5.15之page2024-09-16
Categories
  • ABI1
  • C++1
  • compiler4
  • kernelpwn3
  • linux内核6
    • 5.154
    • 初探2
  • rust3
Tags
密码学 ucore 程序员的自我修养,链接装载与库 C++ linux内核 读书笔记 x86-64 kernelpwn userpwn 恶意代码 riscv windows compiler ABI linux 架构 rust
Archives
  • September 202421
  • August 202432
Info
Article :
53
UV :
PV :
Last Update :
©2024 By 陌影形
END