sort? 排序算法与思想总结1.冒泡排序(bubble sort)1234567891011void bubbleSort(vector<int>& nums) { int n = nums.size(); for(int i = 0; i < n - 1; i++) { for(int j = 0; j < n - 1 - i; 2026-03-06 数据结构与算法 #堆 #排序算法 #分治 #快排
batch system batch systemintroduction这是hello kernel的后续 上一篇我们实现了打印hello kernel,现在我们继续迭代 先介绍一下历史 在计算机刚刚诞生的年代,很多事情并不像我们想象的那么简单 当时,程序被记录在打孔的卡片上,使用汇编语言甚至机器语言来编写 而稀缺且昂贵的计算机由专业的管理员负责操作,就和我们在上一章所做的事情一样,他们手动将卡片输入计算机,等待程序运行 2026-02-25 OS #trap #内核栈
hello kernel! hello kernel!introduction最近被朋友推荐进入了一个vx群,是关于学长前辈们打造的一个项目,从零实现一个操作系统内核,目标是逐步迭代,以实现各种功能,我感觉还是很有意思的,遂打算实践一番,但是发现,lab1就把我干倒了,所以我先简化一些步骤,基于别的有详细教程的项目先熟悉一下原理再说 详情请参考: https://rcore-os.cn/rCore-Tutorial-Book 2026-02-23 OS #risc-v #QEMU #rust
nonsense 今天闲着实在无聊简单了解了一下计算机组成原理,不过也有一些好奇心的因素在就是了 但是其中具体电路的实现我实在是看不懂,电学本来就没学好,遂放弃理解电路实际组成,只关注抽象的过程,也因此不得不赞叹抽象的力量,使得我们不用过多关注于这些复杂的实现 取名为nonsense,也算是一种自嘲吧 你有没有想过,你写的c语言程序计算机是怎么运行的? 根据panorama这篇(其实我还没写完),可以得知c代码经 2026-02-21 CS #CPU #计组 #抽象 #内存
heap heap此heap非彼heap 终于开始堆漏洞的学习了 这篇作为前置知识的总结 一直放着 慢慢写… 拖了几个月了 想着还是输出一些东西吧… 偷了一张图… 从栈(stack)到堆(heap) 栈LIFO的栈帧结构解决了函数调用的管理 自动,确定,但生命周期短 经历了栈pwn的洗礼,想必我们已经深刻理解这个过程了 而堆则维持了动态内存的管理 灵活,生命周期长,但也更复杂 堆管理器则位于用户程序与操 2026-02-11 heap #heap #堆
magic-gadget 今天偶然看到的一个很神奇的gadget和攻击方法 令我很震惊 原来不是pop ***; ret;这样才叫gadget 只要能被我们所利用 那其就能被称之为gadget 不得不佩服古人的智慧 同时对partial overwrite这门技术有了新的理解 很多时候不能或者说很难泄露libc基址 便可以利用程序中已存在的libc中的地址进行partial overwrite 此时 偏移 is all y 2026-02-11 pwn #magic-gadget #partial overwrite
transformer 最近大语言模型(LLM)的各种应用好像都比较火热,我也来凑凑热闹浅浅研究一下AI 虽然被一堆眼花缭乱的词汇弄得有些茫然,不过还是从其最基础的架构开始学习 从传统的机器学习,统计学习到如今的强化学习,深度学习,神经网络,包括以CV(computer vision)为起源发展起来的FNN(全连接神经网络),CNN(卷积神经网络),RNN(循环神经网络)等等,可以自行了解 它们虽风靡一时,但仍存在一些问 2026-01-25 AI #attention #transformer
滑动窗口 滑动窗口插个眼 以后写 先做题… 3.无重复字符的最长字串 解: 滑动窗口 123456789101112131415class Solution {public: int lengthOfLongestSubstring(string s) { vector<int> last(256, -1); // 记录每个字符上一次出现的位置 2026-01-19 数据结构与算法 #滑动窗口