0%

以下所介绍的部分命令,在设备上是由适合嵌入式 Linux 的工具集 BusyBox 提供,行为和 Linux 桌面发行版上不完全一致,这里均采用 BusyBox 所提供的指令用法。

ifconfig:查看接口状态

ifconfig 可设置网卡接口的状态,或是显示目前的设置。以下是一些主要的设置参数。

语法格式:ifconfig < -a > [网卡名称] <参数>

参数 作用
add <地址> 设置网卡的IPv6地址。
del <地址> 删除网卡的IPv6地址。
up 启动指定的网卡。
down 关闭指定的网卡。
metric <数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu <字节> 设置网卡的MTU(最大数据包大小)。
netmask <子网掩码> 设置网卡的子网掩码。
-broadcast <地址> 将要送往指定地址的数据包当成广播数据包来处理。
[IP地址] 指定网卡的IP地址。

直接输入 ifconfig 就会列出目前已激活的网卡,不论这个卡是否有给予 IP ,都会被显示出来。带接口的 ifconfig eth0 则仅会表示接口 eth0 的相关数据,无论其是否启动。使用 -a 选项,则会展示所有网卡的属性。

示例

1
2
3
4
5
6
7
8
$ ifconfig ra8
ra8 Link encap:Ethernet HWaddr 02:A1:BB:01:23:48
inet6 addr: fe80::a1:bbff:fe01:2348/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:130 errors:0 dropped:0 overruns:0 frame:0
TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13971 (13.6 KiB) TX bytes:7767 (7.5 KiB)
阅读全文 »

定位linux内存异常问题思路

内存访问异常

  • 空指针访问:常见,易解决
  • “踩内存”:对不属于你的内存进行读写,难点在于踩内存发生的时间与程序崩溃的时间没有任何关系

被踩内存/踩内存的关系分类

  1. 越界踩内存
    定义或申请的内存小了
  2. 使用已释放的内存
    释放掉的内存又被使用
  3. 随机踩内存(最难排查)
    踩坏的位置与使用的内存没有直接关系,每次崩溃的情况可能都不一样

被踩坏内存的位置分类

  1. 堆踩坏
    malloc/new/kmalloc/vmalloc申请的内存
  2. 栈踩坏
  3. 全局变量踩坏

被踩坏内存的内容分类

  1. 字符串
  2. 指针
  3. 随机值
阅读全文 »

WLAN历史

WLAN是Wireless Local Area Network(无线局域网)的缩写,实际上就是要在不采用网线的情况下,提供以太网的互联功能。

我们更常见到的词是Wi-Fi(Wireless Fidelity, 无线保真),但其实Wi-Fi是实现WLAN的技术之一,它遵循IEEE 802.11标准。实现WLAN的技术还可以是IrDA红外,Bluetooth蓝牙,HomeRF,乃至于GSM和LTE等,但Wi-Fi具有巨大的优势,以至于现在说到WLAN,基本就等于Wi-Fi。

Wi-Fi同时作为一个商标,被WiFi联盟WFA持有,新产品要通过Wi-Fi联盟的测试和认证后,才被允许使用“Wi-Fi”logo。这实际上是为了保证产品之间的兼容性。

Wi-Fi技术伴随着802.11标准演进。这一过程带来了更多的子载波、更高的调制方式、更高的编码率、更短的GI、更宽的带宽、还有MAC层的报文聚合等等。当然,它们的共同目的都是不断提升无线网络的吞吐量,降低时延。

历代Wi-Fi

阅读全文 »

由于安全上的要求,我司的开发环境比较复杂,涉及到Citrix非涉密/涉密桌面和远程Linux编译服务器等等,在这样的环境下用VS Code需要经过一系列的折腾,这篇文章简要记录了我最初的配置流程。

安装VS Code

首先,在非涉密桌面访问VS Code官网下载最新安装包,然后安装到Q盘中(重要!)。这是因为各种软件默认安装到的是被隐藏的C盘,而非涉密桌面环境中的C盘会在重启时被自动重置,你的软件就没了。

不要急着删除安装包,将它复制到T盘(直接剪切可能会报权限错误),转移到涉密桌面。如果之前你已经启动了涉密桌面,可以尝试用快捷键Ctrl + Alt + Tab进行切换。

到涉密桌面环境后,安装VS Code——这次可以装在C盘里,涉密桌面的C盘是不会被重置的。注意,安装时会有几个选项,询问是否要加入右键菜单以及PATH等,请把所有的勾都勾上。

安装扩展

众所周知,VS Code最重要的是扩展。由于涉密桌面没有外网,我们要安装扩展只能先从非涉密桌面下载,再通过T盘转移。

但是,VS Code默认存放扩展的目录在C盘,这导致非涉密桌面一旦重启,你的扩展就会全部消失。所以,装扩展之前要先更改非涉密桌面中VS Code存放扩展的目录。

我没有在设置里找到直接修改的方法,但你可以通过以下的方法来间接修改。

首先进入VS Code的安装目录(没忘记装在哪了吧),新建一个文件夹,命名为extensions

在桌面上VS Code的快捷方式上右键打开属性(假如桌面上没有,就去安装目录里找到code.exe,右键发送->桌面快捷方式),找到目标(T)一栏,在已有内容的后面添上:

1
--extensions-dir "(你刚才创建的extensions文件夹的完整路径)"
阅读全文 »