0%

最近在网上听说了一个国产的“浏览器”叫做YC浏览器,说是已经开发了好几年了,能把c++像js一样跑。

这种话一听就不靠谱嘛,微软这么大家业也不搞浏览器了。

抱着好奇心我打开了他们的官网:http://www.ycbro.com/, 一看果然是编译器嘛不是什么浏览器 (然而编译器也没比浏览器简单多少…)。

反正软件也不大,抱着试试玩的心态,我也下了一个看看。

阅读全文 »

矩阵分片取坐标时超出矩阵范围

分片出现小于0的坐标会导致赋值无效

1
2
3
4
5
6
7
8
9
10
y, x = 1, 1
nearby_mask = torch.zeros((6, 6))
nearby_mask[y - 2:y + 2, x - 2:x + 2] = 1
>>>
[[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]]

分片出现大于矩阵尺度的坐标会导致部分赋值

1
2
3
4
5
6
7
8
9
10
y, x = 5, 2
nearby_mask = torch.zeros((6, 6))
nearby_mask[y - 2:y + 2, x - 2:x + 2] = 1
>>>
[[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[1., 1., 1., 1., 0., 0.],
[1., 1., 1., 1., 0., 0.],
[1., 1., 1., 1., 0., 0.]]

建议写法

1
nearby_mask[max(0, y - 2):y + 2, max(0, x - 2):x + 2] = 1

iptables 是标准的linux防火墙命令行控制工具, 其底层调用netfilter来实现各种功能

iptables 中最重要的概念就是 table, chain 和 rule

阅读全文 »

linux用户登录流程

  • init 阶段, 读/etc/inittab -> /etc/rc.local
  • getty 用于监听本地consloe, 打出username:, 获得用户输入之后调起/ets/login打出password:
  • 读/etc/passwd /etc/shadow 检查用户密码
  • 拉起shell
  • 读/etc/passwd 获取用户目录等信息,读/etc/motd获取欢迎界面
  • 读/etc/profile -> /etc/bashrc -> .profile 或 .login
  • 读.bashrc, .bash_profile

locked page memory

cgroup 使用

数据库隔离机制

ssh 登录机制

ssh 与 tty ptmx pts

https://segmentfault.com/a/1190000009082089

ssh 与 tls

  • ssh验证双方,tls只验证服务端
  • ssh在应用层,tls在传输层
  • ssh同时完成验证和加密,tls可以不验证只加密

shm

GPU

cuda engine context stream

engine是trt中的概念

context 是一个执行上下文,保存了各种状态,可以用push和pop方法出入栈,每个进程执行时必须要有一个context,通常每一个thread会分配一个独立的context

同一卡上能否同时存在两个context?

stream 代表了一系列gpu任务,包括内存拷贝,执行等,同一个context下可以有多个stream,stream之间可以并行运行,stream执行结束后可以触发回调

数据库

b+tree 为什么快

索引可以加在text上吗

四次挥手的合并

客户端主动发起fin,如果服务端不需要回复对应的ack会出现如下情况。
情况1:

  1. 客户端发起fin,服务端未收到
  2. 客户端停止发送数据,并开始等待服务端剩余数据和fin
  3. 服务端不知道客户端已经发送fin,发送完当前数据后,开始等待客户端数据
  4. 服务端和客户端互相等待无法脱出。