vnc 和 rdp 远程
说明
写这个的原因是,网络上的教程真的太烂了。比如:
- 没有说明就默认用 centos
- 默认是服务器版本的 Linux 发行版,没有桌面环境
- 桌面环境默认用 xfce,而很少有 gnome 的
- vnc 各种版本,默认只说明其中一种
- xstartup 没有任何说明,如何配置
各种 remote desktop 软件,可以看到最近更新时间
写这个的原因是,网络上的教程真的太烂了。比如:
各种 remote desktop 软件,可以看到最近更新时间
在 linux 上使用 KVM 安装 windows 虚拟机。然后将显卡直通 (pci passthrough) 进虚拟机,从而可以在 Windows 虚拟机上打游戏。
达到一台机器同时运行两个系统,充分利用硬件。
由于 nodejs 版本较多,直接在宿主机上安装 nodejs 环境不容易管理。因此可以使用 docker 维护一个专门用于 hexo 的环境。
lea //Load Effective Address
test //Logical Compare, Computes the bit-wise logical AND of first operand
//(source 1 operand) and the second operand (source 2 operand) and
//sets the SF, ZF, and PF status flags according to the result. The result is then discarded.
incl //Adds 1 to the destination operand, while preserving the state of the CF flag.
//The destination operand can be a register or a memory location. This instruction
//allows a loop counter to be updated without disturbing the CF flag. (Use a ADD
//instruction with an immediate operand of 1 to perform an increment operation that does updates the CF flag.)
这里说的网络自由,是指通过网络工具极大地便利生活的某些方面。这篇文章是我自己对折腾路由器刷机、openwrt、ipv6 的总结,并尽量说明了各种玩法的实际用途。其中有些操作确实给我带来了极大便利,比如其中使用 iSCSI 通过网络挂载其它设备的硬盘,这充分解放了我只有 500GB 的轻薄本。在上面安装游戏后,又可以实现在不同设备上无缝玩同一个游戏的体验。
OpenWRT/LEDE 源使用帮助 — USTC Mirror Help 文档
常用软件
# shell
zsh
# better ternminal dev
vim-full tmux htop
# downlaod
curl wget
# networking
tcpdump mtr-json ss ip-full iputils-arping ncat iperf3 ethtool-full
# VPN
luci-app-wireguard
# system
第一次尝试自己刷路由器,网上搜索了很多资料,忙活了 2 天,期间差点以为将路由器刷成砖了。
红米 AC2100 这款路由器确实算是很火,网上有很多资料。刚开始在恩山论坛查找各种资料,但是觉得恩山论坛的帖子有点乱,对新手不太友好。看精华帖时帖子之间的联系性不大,要是有一个板块进行总结性的介绍就好了。
网络挂载磁盘 (iSCSI)
iSCSI is an IP-based standard for transferring data that supports host access by carrying SCSI commands over IP networks. The iSCSI standard is defined by RFC 3720. (iSCSI overview - IBM Documentation)
使用 iSCSI 可以将远程服务器上的存储设备映射为本地的一个块设备
设备 A 位于路由器后,设备 B 想要远程连接 A。以下是设备 B 分别使用 ipv4 和 ipv6 访问 A 时不同情况的处理方式。
使用整数位运算计算 div10,得到舍入到整数的精确值。得到了一个 magic number
unsigned int div10(unsigned short x){
//return x/10
unsigned int t = x<<16;
t = (t>>4) + (t>>5);
t = t + (t>>4) + (t>>8) + (t>>12) + (t>>16);
t += 6554; //should in [409.6, 6553.6]
unsigned int r;
r = t>>16;
return r;
}