Brickgao's
https://www.gravatar.com/avatar/39f302ea50ca47898b7f5e852d81d149
quaerendo invenietis
2019-08-03T14:26:34.349Z
https://blog.brickgao.com/
Brickgao
brickgao@gmail.com
Hexo
TCP 接收窗口
https://blog.brickgao.com/2019/07/28/tcp-receive-window/
2019-07-28T12:28:00.000Z
2019-08-03T14:26:34.349Z
<p>最近有空阅读了一些 TCP 窗口相关的内核代码,知识点相对比较琐碎,做一些简单的笔记,本篇主要关于 TCP 接收窗口。</p>
<p>本篇主要基于 Linux v5.2.2 内核,如有不准确之处,会日后修订。</p>
<h1 id="前置知识"><a
Split Stacks
https://blog.brickgao.com/2019/01/27/split-stacks/
2019-01-27T10:31:00.000Z
2019-01-27T10:39:36.366Z
<p>被提起 Split Stacks 技术,做了一些简单的笔记。</p>
<h1 id="栈的基本结构"><a href="#栈的基本结构" class="headerlink"
可装卸的内核 gcov
https://blog.brickgao.com/2018/10/28/loadable-gcov-for-linux-kernel-modules/
2018-10-28T12:30:00.000Z
2018-10-28T12:40:18.203Z
<p>即使是 Linux 内核模块,测试依然是开发过程重要的一环,目前有 <a href="https://github.com/linux-test-project/ltp" target="_blank" rel="noopener">Linux Test
Fresh to SystemTap
https://blog.brickgao.com/2018/10/04/fresh-to-systemtap/
2018-10-04T04:27:00.000Z
2018-10-03T16:38:06.118Z
<p>最近在围绕着 Linux Kernel 在做一些相关的开发,鉴于个人水平,在开发过程中难免遇到一些 BUG 需要调试。苦于 GDB + QEMU 的调试方案配起来有点折腾,需要一个更易用的、不太干扰原有环境的方案。搜索整理后最后选用了 SystemTap
通过 Redlock 实现分布式锁
https://blog.brickgao.com/2018/05/06/distributed-lock-with-redlock/
2018-05-05T17:42:00.000Z
2018-05-06T14:32:52.000Z
<p>处理跑在多台机器上的程序间的资源竞争,能想到的最简单的方法就是加分布式锁。前年在 A 实习的时候用到了 <a href="https://yq.aliyun.com/articles/58928" target="_blank" rel="noopener">Tair
利用 git hook 在 git commit 之前用 cpplint 自动检查代码
https://blog.brickgao.com/2016/10/11/ccplint-git-hook/
2016-10-11T15:50:00.000Z
2018-01-02T10:55:43.764Z
<p>最近主要在写 C++,为了防止自己手滑,需要一个自动化检查代码的方法。而由于没有 CI 可以用,姑且采用了利用 Git Hook 在 <code>git commit</code> 之前检查一遍代码的方案。</p>
通过内核模块实现隐藏信息的 Rootkit
https://blog.brickgao.com/2016/08/07/simple-rootkit/
2016-08-07T07:20:00.000Z
2018-01-02T10:55:43.764Z
<h3 id="1-Rootkit-简介"><a href="#1-Rootkit-简介" class="headerlink" title="1. Rootkit 简介"></a>1. Rootkit 简介</h3><p>Rootkit 是一个软件或者一个以上的软件集合,目的是隐藏其他进程的软件,与木马或者病毒不同,Rootkit 一般会与木马或者病毒配合使用,而不是单独使用。Rootkit 一词的由 root 和 kit 两个词组成,前者表示它一般以一个高权限来执行(对于 *nix 系统就是 root),而 kit 表示它作为一个工具集,不是被单独使用的。</p>
<p>在这篇文章里我们完成的 Rootkit 的主要功能是隐藏 <code>ls</code> 显示出的文件信息、<code>netstat</code> 显示出的网络信息、<code>ps</code> 显示出的进程信息以及 Rootkit 模块本身。</p>
浅谈测试
https://blog.brickgao.com/2015/12/28/talk-about-test/
2015-12-28T07:32:00.000Z
2018-01-02T10:55:43.764Z
<p><img src="/media/2015/12/portal.png" alt="You just keep on trying till you run out of cake."></p>
<p>这篇文章是写了一段时间测试之后的简单总结,主要讨论在 Python 语言环境下的功能测试和单元测试。</p>
用 C/C++ 拓展 Python
https://blog.brickgao.com/2015/08/14/extending-Python-with-C-and-C-Plus-Plus/
2015-08-14T07:12:41.000Z
2018-01-02T10:55:43.763Z
<p><img src="/media/2015/08/tokyo_7th_sisters-07.jpg" alt="pixiv_id=51833071 然而依然图文无关"></p>
<p>Python 因为其是一门解释性语言和动态类型的原因,在计算密集型的操作上非常令人拙计,所以对于计算密集型的操作,我们可以使用 C/C++ 等在计算上比 Python 快的语言做拓展。</p>
<p>本文主要讨论用 C/C++ 对 Python 进行拓展。</p>
浅谈字符串匹配
https://blog.brickgao.com/2015/08/08/string-searching-algorithm/
2015-08-08T09:47:09.000Z
2018-01-02T10:55:43.763Z
<p><img src="/media/2015/08/tokyo_7th_sisters-04.jpg" alt="pixiv_id=51833071 然而图文无关"></p>
<p>字符串匹配算是日常生活中非常常用的一种算法了,最近重新研究了一些字符串匹配算法,姑且当作对字符串匹配的笔记记在这里。</p>
MySQL 最佳实践
https://blog.brickgao.com/2015/06/21/MySQL-best-practices/
2015-06-21T15:55:00.000Z
2018-01-02T10:55:43.762Z
<p>实习期间接触到最多的数据库除了 Redis,就是 MySQL 了。在做 MySQL 相关操作的时候,发现之前自己玩泥巴时期对 MySQL 的理解是完全不够用的,所以重新看了一些 MySQL 方面的资料,这篇大概算是的 MySQL 方面的实践的总结。</p>
国内工作面试记
https://blog.brickgao.com/2015/05/22/internal-interview-for-work/
2015-05-22T15:26:05.000Z
2018-01-02T10:55:43.762Z
<p><img src="/media/2015/05/your_flag_in_april.jpg" alt="不要想有的没的"></p>
<p>考研复习期间,我经常和一起复习的机油开“万一没我们都没考上,就去找工作吧”的玩笑。万万没想到一语成谶,在自己太蠢和今年考研形势不佳的情况下,我考研落榜了。</p>
<p>落榜之后对于我只有两种选择,一是调剂或者再考一年,继续上研究生,二就是找工作。家里人更倾向于前者,但是也并没有阻碍我去找工作。</p>
夏至之后
https://blog.brickgao.com/2014/06/24/after-xiazhi/
2014-06-24T11:25:05.000Z
2018-01-02T10:55:43.762Z
<p><img src="/media/2014/06/summer.jpg" alt="pixiv_id=42768956"></p>
<p>文章其实和夏至没有太大关系,说是夏至之后只是时间凑巧刚好当标题罢了。</p>
更快的开方倒数运算
https://blog.brickgao.com/2014/04/27/faster-sqrt/
2014-04-26T17:36:39.000Z
2018-01-02T10:55:43.762Z
<p><img src="/media/2014/04/touhou.jpg" alt="题图无关 pixiv_id=42768956"></p>
<p>问题始于与 <a href="https://github.com/Xiami2012" target="_blank" rel="noopener">@Xiami</a> 和 <a href="https://github.com/whuream" target="_blank" rel="noopener">@Ream</a> 两位菊苣舍友的讨论。</p>
新主页和新 Blog
https://blog.brickgao.com/2014/04/20/new-index-and-new-blog/
2014-04-20T11:20:28.000Z
2018-01-02T10:55:43.761Z
<p><img src="/media/2014/04/new_index_and_blog.jpg" alt="放弃治疗后的结果"></p>
<p>抱着延迟能少一点是一点的心态,我把 NY2 的 VPS 换成了 SFO1。</p>
<p>趁着迁移服务器,刚好把主页以及 Blog 更新了一下。</p>
从 socket 开始实现一个简单的邮件客户端
https://blog.brickgao.com/2014/01/06/pop3-and-smpt-from-socket/
2014-01-06T12:43:45.000Z
2018-01-02T10:55:43.761Z
<p>这次是从 socket 开始实现一个邮件客户端,也是计算机网络实验的作业之一,大概算是<a href="http://blog.brickgao.com/2014/01/05/ftp-from-socket.html">从 socket 开始实现一个简单的 FTP 客户端</a>的姊妹篇了。</p>
从 socket 开始实现一个简单的 FTP 客户端
https://blog.brickgao.com/2014/01/05/ftp-from-socket/
2014-01-05T15:27:42.000Z
2018-01-02T10:55:43.761Z
<p>之所以从 socket 开始写 FTP ,完全是因为这是计算机网络的大作业,所以姑且借着这个机会研究一下 FTP。</p>
Python 中的一些编码问题
https://blog.brickgao.com/2013/12/20/coding-problem-in-python/
2013-12-19T16:32:41.000Z
2018-01-02T10:55:43.761Z
<p>最近断断续续和几个机油在写一个邮件查看器一类的东西,中间遇到了很多编码问题,想起来 Python 里的编码问题一直就没大搞清楚,趁这次出问题刚好研究了一下。</p>
中间人攻击初探
https://blog.brickgao.com/2013/11/17/something-about-Man-in-the-middle-attack/
2013-11-17T09:19:45.000Z
2018-01-02T10:55:43.760Z
<p><img src="\media\2013\11\Hinanawi_Tenshi.jpg" alt="今天也要努力地买萌"></p>
<p>这几天在做中间人攻击相关的网络安全实验。</p>
Websocket初探
https://blog.brickgao.com/2013/11/16/learn-websocket/
2013-11-16T06:23:05.000Z
2018-01-02T10:55:43.760Z
<p><img src="\media\2013\11\Komeiji_Satori.jpg" alt="> <"></p>
<p>一时兴起想写一个实时的弹幕墙,本来想着使用 socket 协议来写,服务端两个模块一个做 socket server ,一个做 web 服务器,客户端两个模块,一个做 socket server ,一个 GUI 程序来显示弹幕, web 服务器接到弹幕的信息就发送给控制 socket 的部分, socket server 发送信息给 socket client ,然后将 socket client 接收到的信息传送给 GUI 程序。</p>