-
Ubuntu创建分页文件
本文将介绍如何在 Ubuntu 系统中创建分页文件。 为什么需要当系统的物理内存不足时,如果没有分页文件作为临时缓冲,系统可能会触发 OOM Killer 来终止一些进程以释放内存,这可能导致服务中断等异常情况。 分页文件则可以作为物理内存耗尽前的缓冲,将当前内存中不活跃的数据“交换”到文件系统中,从而给活跃进程留出更多的内存空间。 如何使用分页文件创建分页文件在根目录创建一个名为 swapfile 的 1GB 分页文件: 123sudo fallocate -l 1G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfile 随后使用 swapon 命令来挂载该分页文件: 1sudo swapon /swapfile 最后验证是否生效: 12swapon --showfree -h 开机自动挂载分页文件要想让分页文件在系统启动时自动挂载,需要编辑 /etc/fstab 文件,添加一行 /swapfile none swap sw 0 0: 1echo "/swapfile none swap sw 0 0" | sudo... -
某即时通讯软件的逆向工程——数据库解密
本文记录了我对某个用于商家询盘的即时通讯(IM)软件的本地数据库的逆向工程过程。主要介绍了如何通过 IDA Pro 调试来分析其数据库文件的加密机制。
-
数学建模基础
本文是张文宇老师的数学建模培训课程的大纲整理。
认识数学建模
数学建模简介
数学建模(Mathematical Modeling) 是利用数学语言(符号、公式、图表等)来模拟并解决现实世界中实际问题的一种方法。它是一个将现实问题抽象化、简化,建立数学结构,并完成求解和分析的过程。
数学建模的本质是:
- 翻译(Translation):将现实问题转化为数学问题;
- 求解(Solution):利用数学工具和方法解决数学问题;
- 解释(Interpretation):将数学结果带回现实世界成为解决方案。
数学建模通常用于理解物理世界规律、预测未来趋势、优化决策和控制过程等方面。参与数学建模要求具备跨学科综合应用能力、逻辑思维能力、团队协作能力和科研素养。
-
《终末地》CBT3逆向工程2:PCK文件解密
本文记录了我对 Unity 游戏《明日方舟:终末地》(简称《终末地》)全面测试版本中的 PCK 文件的逆向工程过程。
-
《终末地》CBT3逆向工程1:VFS资源存储解密
本文记录了我对 Unity 游戏《明日方舟:终末地》(简称《终末地》)全面测试版本中的 VFS 资源存储逻辑的逆向工程过程。主要介绍了如何通过对反编译代码的静态分析,结合调试器的动态分析,解析《终末地》的 VFS 资源存储格式,并实现解析工具。
-
Ubuntu自定义欢迎消息
本文将介绍如何自定义 Ubuntu 系统远程 SSH 登录时显示的欢迎消息。
动态消息
默认情况下,欢迎消息可能形如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Welcome to Ubuntu xx.xx LTS (GNU/Linux xxxxxx)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of xxxxxx
System load: x.x Processes: xxx
Usage of /: xx.x% of xx.xxGB Users logged in: x
Memory usage: xx% IPv4 address for eth0: xx.xx.xx.xx
...
0 updates can be applied immediately.
Last login: xxxxxx from xx.xx.xx.xx这些消息大部分是是动态生成的,即每一次显示的消息都可能是不一样的。
它们是
/etc/update-motd.d/目录下的多个脚本文件按照一定的顺序运行后生成的。 -
计算机视觉导言
本文是 鲁鹏 教授的《计算机视觉与深度学习》(2022 年)课程的一部分。 前言计算机视觉简介计算机视觉是研究如何使计算机能够“看”的学科。它的目标是让计算机能够处理和理解图像和视频数据。 观察人类视觉系统,可发现它存在诸多优势和弊病(此类弊病是为了适应环境而产生的,从进化的角度来说并非弊病)。 计算机视觉的两个主要研究方向是三维重建和语义信息提取(图像理解) 。 本课程介绍本课程聚焦于视觉识别任务中最基础也最为重要的任务——图像分类。除此之外,还会涉及一些衍生任务,包括目标检测、图像分割、图像描述、图像生成等。 对于这些任务而言,基于卷积神经网络(CNN) 的深度学习方法是目前(21 世纪初)最为有效的解决方案。卷积神经网络始于 1998 年的 LeNet。在 2015 年,在 ImageNet 数据集上的图像分类任务上,计算机的准确率已经胜过人类。 本课程会讲解多种深度网络结构(包括全连接神经网络、卷积神经网络、循环神经网络、变分自编码网络、生成对抗网络等)。 相关课程 CS131: Computer Vision: Foundations and Applications ... -
LZ4压缩算法的块数据格式解析
本文是针对 LZ4 Block Format Description 的部分内容的翻译和综述,解释了 LZ4 压缩算法的块数据的格式规定。
前言
LZ4 是使用了“固定的面向字节的编码格式”的一种 LZ77 类型的压缩算法。本文介绍的是块数据(Block)的格式规定,不涉及熵编码器(Entropy Encoder)和成帧层(Framing Layer),也不涉及压缩或解压算法的具体实现。
术语
- 序列(Sequence)是组成块的基本单位。
- 字面量(Literal)是未经过压缩的原始数据。
- 匹配复制(Match Copy)是将“先前出现过的字面量”的值复制到新位置的操作。
- 标志符(Token)是序列最开头的 1 Byte。
- 偏移量(Offset)是匹配复制操作中定位“先前出现过的字面量”的依据。
- 匹配长度(Match Length)是匹配复制操作中需要复制的字面量的长度。
-
开始上手Nginx服务器
本文是作者在 Ubuntu 系统上部署 Nginx 服务器的记录。
Nginx 基础
简介
Nginx 是一个高性能的服务器应用程序,由俄罗斯工程师 Igor Sysoev 于 2004 年开发。它主要被用于搭建HTTP 服务器、反向代理服务器、负载均衡服务器等各类 Web 服务器。
Nginx 的主要优势在于高并发和高能效。它采用异步、非阻塞的事件驱动架构,能处理大量并发请求(10K 量级)。同时,在相同的硬件条件下,Nginx 的 CPU 和内存消耗要低于同类产品 Apache。
安装方法
安装 Nginx:
1
2sudo apt update
sudo apt install nginx -y确保 Nginx 已启动且已设置开机自启动:
1
2
3sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx访问
http://<服务器地址>,若能显示出默认的 Nginx 欢迎页面(Welcome to Nginx),则表示安装成功。若无法访问,请检查服务器端的防火墙配置。Hello World
以下内容演示了如何利用 Nginx 在本地的 80 端口部署一个简易的静态网站。