生如夏花

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

tmux使用方法

tmux是一种终端多路复用器:它可以在一个屏幕上创建、访问和控制多个终端。

启动tmux时,它会创建一个带有单一窗口的新会话并显示在屏幕上。 屏幕底部的状态行显示当前会话的信息,并用于输入交互式命令。

本文目前主要记录了一些tmux使用的快捷键、常用配置以及插件使用方法。

LaTex之中文支持

LaTex支持三种中文编辑显示方法。

要想在pdflatex中编辑、显示中文,使用ctex宏包的同时也需要设置文件编码为UTF-8,区别是ctex宏包版本>=2.5.10时不用在代码中手动指定UTF-8编码。

特性UTF-8+ctex(pdfLaTeX)CJKutf8(pdfLaTeX)ctex+XeLaTeX
编译器pdflatexpdflatexxelatex
文件编码UTF-8(自动检测)UTF-8(强制)UTF-8(原生支持)
字体管理自动映射基础字体需手工指定字体直接调用系统字体
配置复杂度中等(需版本适配)最低

TCP之MSS字段备注

调整TCP参数MSS字段,来设置在TCP层分片而非IP层。

当TCP负载大小不超过TCP的MSS字段值但其加上TCP头、IP头之后超过链路层MTU时,就会触发IP层分片。

正常TCP的MSS字段值为MTU-IPv4头-TCP头=1500-20-20=1460字节或MTU-IPv6头-TCP头=1500-40-20=1440字节。

当遇到IPIP协议(例如IPv4 over IPv6),此时TCP的MSS字段如果仍旧为1460或1440字节时,就会触发IP层分片(TCP层为查过MSS字段值不会触发分片,IP层超过1500字节触发分片),此时应设置为MTU-IPv6头-IPv4头-TCP头=1500-40-20-20=1420字节。

内核数据结构之container_of

container_of宏用于根据结构体某个成员的地址来获取结构体自身的地址,获得结构体自身地址之后可以访问该结构其他字段,定义在<linux/kernel.h>中。

offsetof宏用于计算结构体成员到结构体自身地址之间的偏移,定义在<linux/stddef.h>中。

pragma pack预定义指令用于限制结构体成员的最大对齐数,结构体的对齐数取决于结构体成员的最大对齐数,结构体成员的对齐数取决于其自身大小和编译器设置的参数。

__attribute__((packed))__attribute__((aligned(n)))分别用于GCC不设置对齐和设置以n字节对齐。

函数

Lua语言中函数本质上是一个function类型的值。这个值可以作为表达式的一部分,也可以被赋予变量。当被赋予变量时,变量名则为函数名。

由于函数是一个值,因此Lua中函数都是匿名的,所谓的函数名则是保存函数值的变量

闭包指的是一个函数和该函数能够访问其外部作用域的局部变量的机制

函数和闭包的区别在于,函数是没有访问外部作用域的局部变量的闭包

Lua语言学习框架

学习Lua语言可以分成几个阶段,从基础语法到进阶应用,再到实际项目开发。以下是一个详细的学习框架,帮助你系统地掌握Lua语言。

该学习框架由百度文心一言生成,下面将根据该框架进行Lua语言的学习。