Amiriox's Storage

Declaration does not declare anything.

amiriox@terminal: ~/journey
$ whoami > /dev/null # RSS: /atom.xml ## Tutorial TLDR 下划以查看博客文章 $ tldr amiriox 折鸦/折鸦夜明け前/無暝; Amiriox Makinohara > 极端社恐, 线上线下基本上是两个人, 但欢迎聊天/交换友链 > 计算机科学狂热爱好者, OS/C++/Rust, Vim 党 $ vim ~/anime.rs const anime_arr: [anime; 10] = [末日三问, 虚构推理, 魔女之旅, 四叠半, 浪客剑心, 葬送的芙莉莲, 我心危, 比翼之吻, 孤独摇滚, GBC]; -- INSERT -- 1, 1 All # cat ~/hobbies.md * 游戏: 空洞骑士/只狼:影逝二度/怪物猎人/赛博朋克2077/明日方舟/丝之歌.unwrap() * 听音乐: * J-POP: 可惜夜/夜鹿/majiko/Reol/Aimer/花谱/结束乐队( * Vocaloid: 洛天依/诗岸/星尘Infinity * R&B: 陶喆/王力宏 * 正在培养的爱好: 板绘/像素画/摄影/文学 ## 不断 refactor 的灵魂 $ objdump -s -j .rodata /usr/bin/amiriox_soul | grep -oP '\s\K[^\0]*' 0x00401000 保持必要的力量与清醒, 去努力维持您自己的宁静与尊严 0x0040104C 水利万物而不争,故万物莫能与之争 0x0040107B He who has a why to live can bear almost any how.

Phase 0x1

一个练手的,要求通过缓冲区栈溢出攻击来调用 touch1

gdb ctarget 然后 set args -q 防止与不存在的服务器通信(run -q 也可以) b Gets run -q

看一下栈信息:

1
2
3
4
5
6
7
────────────────────────[ STACK ]────────────────────────
00:0000│ rsp 0x5561dc70 —▸ 0x4017b4 (getbuf+12) ◂— movl $1, %eax
01:0008│ rdi 0x5561dc78 ◂— 0
... ↓ 3 skipped
05:0028│ 0x5561dc98 —▸ 0x55586000 ◂— 0
06:0030│ 0x5561dca0 —▸ 0x401976 (test+14) ◂— movl %eax, %edx
07:0038│ 0x5561dca8 —▸ 0x55685fe8 —▸ 0x402fa5 ◂— pushq $0x3a6971 /* 'hqi:' */
阅读全文 »


Border relations with Canada have never been better. 直接读phase_1 的 $rdi.


1 2 4 8 16 32 利用断点跳到 read_six_number 后, 发现核心代码 add $eax $eax


阅读全文 »

“直面灾厄” —— 2021 年终总结。

本篇系笔者 2021年年终总结 / 初中毕业总结 / 高一(上)学年生活总结。

Part 1. 概括。

这一年实在是多灾多难的一年。 年初的时候其实还蛮好的(还记得大年初一学对顶堆) 然而接下来经历了中考考前的四个月+考后假期一个月+高一网课一个月+高一线下课四个月 彻底毁了我整个精神状态(或者说引爆了埋在深处的雷罢)

中考考前四个月,我做了大概是目前最后悔的一个决定,我退役了OI。 说是为了学习,其实也只是跟风 包括满足自己虚荣心之类的。 那个时候精神状态就在恶化(尽管现在看来当时算很不错的), 于是还是在颓了四个月之后,甚至还碰运气考上全县前50(大概是35的样子)进了我最恐惧的实验班。

阅读全文 »

此文章的 撰写时间 可能有误

CSAPP Today:

——CSAPP 2.2.4专题:有符号数和无符号数之间的转换

这篇博客会更新一段时间。


阅读全文 »

此文章的 撰写时间 可能有误

upd 2024-10-02 22:56:57
第一次用感觉还行,后来高三又从win换回opensuse,感觉挺垃圾的
今天太晚了等明天把我那篇批判的文章迁移过来

更换到了openSUSE


一直在考虑是否要换个linux玩玩。 自从10月1日(其实是10月2日凌晨)装好了manjaro 我就没停过折腾这玩意。

阅读全文 »

此文章的 撰写时间 可能有误

CSAPP Today 2021-01-18

一 左移和右移

对于x<<k称为将 \(x\) 左移 \(k\) 位。 对于一个位向量表示为 \([x_{w-1}, x_{w-2}, ..., x_0]\) 的操作数 \(x\), x<<k的结果是$ [x_{w-k-1}, x_{w-k-2}, …, x_0, 0, …, 0] $ 也就是向左移动 \(k\) 位, 右侧空缺用0补齐。 在C中,左移运算符从左至右结合。即x<<i<<j相当于(x<<j)<<k

对于x>>k成为将 \(x\) 右移 \(k\) 位。 不同的是,右移有两种形势,算术右移和逻辑右移

阅读全文 »

此文章的 撰写时间 可能有误

2020对我来说是极其重要的一年, 堪比2018年

一 简述

这一年乱七八糟的 想起来似乎没有记忆却又全是记忆

由于疫情的原因 这一年变得很奇怪

阅读全文 »

此文章的 撰写时间 可能有误

这周比较烦, 详见随笔

CSAPP Today:

主要是一些oier们几乎人均知道的进制内容, 还有一些关于信息储存方式

  1. 十六进制的表示方法, 与二进制的转换 0x173A4C转换成二进制, 每位的二进制组合起来
阅读全文 »

此文章的 撰写时间 可能有误

又到了开心的周末!

CSAPP Today:

  1. Amdahl’s law

    • \(Amdahl\) 定律: 设一个操作原来需要 \(T_{old}\) 的时间执行, 现在我们对其\(a\)的部分(即 \(\text{总部分}\times\text{a}\) 这部分进行\(1/k\)的优化(原来这部分 \(T\) 时间可以执行完, 现在加速到了 \(T/k\) ), 则
      • 没有加速的部分所需时间: \((1-a)\times T_{old}\)
      • 加速的部分所需时间: \((a\times T_{old})/k\)

    所以总体加速后的时间为 \[T_{new}=(1-a)\times T_{old} + (a\times T_{old})/k\] 所以加速比\(S=T_{old}/T_{new}\)就是

    \[S=\frac{T_{old}}{T_{new}}=\frac{T_{old}}{(1-a)\times T_{old} + (a\times T_{old})/k}=\frac{1}{(1-a)+a/k}\]

    常见的表示方法是用算出的加速比后加上一个”\(\times\)“,我们对 \(60\%\) 的部分进行优化, 这部分执行时间到了原来的 \(1/3\) , 则 \(a=0.6, k=3\) ,带入公式得出 \(S=1.67\) , 则加速比就是\(1.67 \times\), 读做”1.67倍”.

    • \(k\) 趋向于 \(\infty\) 时, 这部分时间可以忽略不计, 于是就有 \[S_{\infty}=\frac{1}{(1-a)}\] 即使 \(60\%\) 的系统可以加速到可以忽略时间的程度, 总体加速比也只有 \(2.5 \times\), 这体现了amdahl定律的一个重要思想: > 只有提升了系统的大部分, 才能更好的提升整个系统

    待更新, 先吃个饭

  2. 并行/并发

    • 并发是指同时处理多个活动
    • 并行是指通过并发来加速系统
      1. 线程级并发
        • 最初的系统并不是完全意义上的同时操作, 而是反复切换上下文(反 复 横 跳 上一篇有说上下文, 主要是指当前进程的主存/寄存器文件), 后来多核和超线程出现才有了真正的并发
        • 多核是指把多个CPU搞到一个集成电路板上, 每个CPU叫一个核心(core) 比如我的dell-inspiron 5590是4核心, 就是四个倒霉鬼被焊在电路板上了 (逃, 据工厂主 资本家 说未来他们可以焊接几百的核心到一块板子上
        • 超线程指的是一个核心执行多个线程, 主要也是线程切换实现的, 但是比普通的CPU横跳地更科学, 所以速度也更快, 比如如果这个线程需要一些时间加载一个数据, 那我就切走了 你自己玩, 我去干别的
        • 这就很好解释了为什么我的PC叫”四核心八线程”, 表示有四个核心, 每个核心是一个可以同时执行两个线程(跳板)的超线程核心
        • 现代CPU大多数都是多核多线程核心, 一般他们的结构都是每个核心分别有一个寄存器, 两个L1高速缓存(详见上一篇)和两个L1共用的L2高速缓存, 然后总体上有一个所有核心共用的高速缓存L3, 然后接到总线和主存, 其中每个核心中的两个L1高速缓存分别是数据和指令缓存. 所以4核心8线程的CPU一般来讲有 \(4 \times 3 + 1 = 13\)个高速缓存和\(4 \times 1=4\)个寄存器
      2. 指令级并发
        • 指同时执行多个指令, 这是个比较nb的概念, 之前可能一个指令执行很多个(3~10)时钟周期, 现在通过一个叫”流水线”的东西实现指令级并发, 可以一个时钟周期内执行上百个指令
        • 像上面那样, 一个时钟周期可以处理不止一个指令叫超标量, 大多数PC的CPU都支持这个 不会吧不会吧不会都0202年了还有人的电脑不支持超标量吧
      3. 单指令多数据
        • 比如处理单精度浮点数(float)加法是一个指令, 这叫单指令
        • 同时处理8对float加法, 这叫多数据
        • 这是同时执行的, 也叫SIMD, 不知道具体叫什么, 我猜\(Single\ Instruction\ Multi\ Data\)
        • 有时候cpu会对一些程序自动处理SIMD, 但更好的办法是编译器来解决这些, 比如GCC就支持向量变量

为什么我用中文输入法打出来cpu第一个是川普

阅读全文 »

此文章的 撰写时间 撰写时间 可能有误

继电器|真空管|晶体管

def ‘a new level of abstraction’ [-=>]

晶体管 [=>] 逻辑门(AND/OR/XOR/NOT)[=>] 半加器/全加器 [=>] ALU

晶体管 [=>] 逻辑门(AND/OR/XOR/NOT)[=>] 锁存器/门锁 [=>] 寄存器 + (并列|矩阵)+ 多路复用器 -> SRAM (definition linking to RAM

阅读全文 »
0%