寄存器

CPU 只负责运算,不负责存储数据,而数据都存储在磁盘中,磁盘速度无法满足运算时的速度,因此需要将数据先读取到内存中,CPU 需要的时候就去内存中读取,但 CPU 的运算速度远高与内存的读写速度,为避免被拖慢,CPU 都会自带一级、二级甚至三级缓存。基本上,CPU 缓存可看作是读写速度较快的内存。

但是,CPU 缓存的速度还是不够块,数据在缓存中的地址也是不固定的,CPU 每次读写都需要寻址也会拖慢速度。因此,CPU 自带寄存器(register) 用来存储常用的数据。CPU 优先读写寄存器,再由寄存器与内存交换数据。

寄存器 不依靠地址 来区分数据,而依靠名称每一个寄存器都有自己的名称,通过告诉 CPU 去具体的哪个寄存器读写数据,这样速度是最快的。寄存器被比喻成零级缓存。

阅读全文 »

渗透测试流程

核心: 漏洞、漏洞探测、漏洞验证、漏洞利用

OWASP top 10

Web 安全测试指南(WPWSTG)

通用渗透测试框架

范围界定

在开展技术性安全评估之前,务必要观察、研究目标环境的被测范围

  • 取得授权
  • 测试对象是什么(baidu.com,news.baidu.com)
  • 应当采取何种测试方法
  • 有哪些在渗透测试过程中需要满足的条件
  • 需要多长时间完成测试任务
  • 应当达到怎样的任务目标
阅读全文 »

使用 ourstheirs 解决合并冲突

在使用 git 工程中,合并时产生冲突是很常见的,在使用 mergerebase 合并时都会出现冲突情况,设计到很多文件,而冲突一般是只选择保留一方,这就可通过使用 ourstheirs 解决冲突。

mergerebase 合并的区别

假设 main 主分支基础上生成了分支 branch_B 各自都有一些提交,现需要将 branch_B 合并到 main

执行 git merge branch_B main 后分支状态:

main —— A —— B ——- D (main)
\ /
\ branch_B —— C /

merge 会抽取两个分支上新增的提交,并将其合并在一起,产生一个新的提交D,生成的D节点有两个父节点,在合并的过程中可能会发生冲突

阅读全文 »

安装

1
sudo pacman -S polybar

i3 配置使用 polybar

编写启动 polybar 的脚本

.config/polybar/polybar_run.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

# 终端可能已经有在运行的实例
killall -q polybar

# 等待进程被终止
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

# 运行Polybar,使用默认的配置文件路径 ~/.config/polybar/config
polybar mybar &

echo "Polybar runing..."

注释 i3 自带的 bar 或 i3blocks ,配置使用 polybar 启动脚本启动 polybar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#bar {
# i3bar_command i3bar --transparency
# status_command i3blocks
# position top
# colors {
# background #9370DB3F
# separator #778899
# # 使用RGBA颜色 #边界 背景 文本
# focused_workspace #778899A5 #87CEEBA5 #FFFAFAF5
# inactive_workspace #7788993F #AFEEEE3F #FFFAFAF5
# urgent_workspace #80808072 #FF450072 #FFFAFAF5
# }
#}

exec_always --no-startup-id $HOME/.config/polybar/polybar_run.sh
阅读全文 »

新人入坑科普:OpenWRT、LEDE、潘多拉、华硕、梅林、老毛子

新入坑的同学肯定有此疑问,想刷系统,不知道买哪个路由,也不知道这些系统的区别,更不知道应该选哪个。
说这些之前应该先提一嘴Linksys,2003年推出了WRT54G的路由。由于被发现Linksys用了很多开源代码,所以被很高的呼声要求开源。Linksys脸皮薄,于是就开源了(这一点很多国内厂家脸皮厚的很)。从此开启了路由系统发展的精彩舞台。

阅读全文 »

什么是SQL

SQL (Structured Query Language) 译为结构化查询语言,是一种在数据库管理系统(RDBMS,Relational Database Management System) 中查询数据,或通过 RDBMS 对数据库中的数据进行修改的语言。

常见 RDBMS :

  • Oracle Database : 甲骨文的
  • SQL Server : 微软的
  • DB2 : IBM的
  • PostgreSQL : 开源
  • MySQL : 开源
  • MariaDB : MySQL的一个分支,甲骨文收购MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险

不同 RDBMS 略有不同,由于 MySQL 是开源的,可免费获取,很多大企都在使用 MySQL ,所以本文将以 MySQL 的 SQL 对 SQL 进行讲解。

SQL 的查询过程是: 用户在客户端通过 SQL 语句,将需要的数据或对数据进行的操作请求发送给 RDBMS ,RDBMS 根据语句内容返回请求的数据,或对存储在数据库中的数据进行更新。

阅读全文 »

Linux到独立显卡分开源驱动和闭源驱动两种,开源驱动不能完全发挥独立显卡到性能,闭源驱动使用bumblebeeoptirun 的兼容性不好。而 optimus-manager 可以设置开机默认使用 Intel 还是 Nvidia ,可以随时在这两者之间切换。

阅读全文 »

Docker Compose 模板文件

模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 docker run 相关参数的含义都是类似的。

默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。

1
2
3
4
5
6
7
8
9
version: "3"

services:
webapp:
image: examples/web
ports:
- "80:80"
volumes:
- "/data"
阅读全文 »