尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Linux学习二:系统文件第三方工具

Linux学习二:系统文件第三方工具 一 Linux 文件初识1.1 Linux目录树/-------------- 根目录bin------------ 基本命令的程序文件里面不能再包含目录管理员和普通用户都用到的命令boot----------- Boot Loader 静态文件dev------------ 设备文件目录etc------------ 系统配置文件配置文件必须是静态文件不能是二进制文件home----------- 存放各用户的个人数据lib------------ 基本的共享库和内核模块共享库media--------- 可移动介质的挂载点mnt------------ 临时的文件系统挂载点opt------------ 附加的应用程序软件包root----------- root 用户目录sbin----------- 基本的系统命令二进制文件这些文件不打算被普通用户使用。管理员使用srv------------- 系统服务的一些数据tmp------------- 临时文件usrbin-------------- 众多的应用程序sbin------------- 超级用户的一些管理程序doc-------------- linux 文档lib-------------- 常用的动态链接库和软件包的配置文件man-------------- 帮助文档src-------------- 源代码locabin-------------- 本地增加的命令lib-------------- 本地增加的库var------------- 可变数据proc------------ 伪文件生成设备信息、记录信息只存与内存当中meminfo-------- 物理内存、交换空间等的信息cat命令cpuinfo-------- CPU 的信息 (型号, 家族, 缓存大小等)cat命令mounts---------- 已加载的文件系统的列表cat命令devices-------- 可用设备的列表设备号cat命令filesystems— CPU 的信息 (型号, 家族, 缓存大小等)cat命令modules---------- 已加载的模块cat命令version---------- 内核版本cat命令cmdline---------- 系统启动时输入的内核命令行参数cat命令iomem------------- 查看所有物理内存区域的分配情况cat命令sys--------------- 将内核信息以文件的方式提供给用户程序使用devices---------- 这是内核对系统中所有设备的分层次表达模型也是/sys 文件系统管理设备的最重要的目录结构cat命令dev---------------- 这个目录下维护一个按字符设备和块设备的主次号码major:minor链接到真实的设备/sys/devices 下的符号链接文件bus---------------- 这是内核设备按总线类型分层放置的目录结构 devices 中的所有设备都是连接于某种总线之下在这里的每一种具体总线之下可以找到每一个具体设备的符号链接它也是构成 Linux 统一设备模型的一部分class------------- 这是按照设备功能分类的设备模型如系统所有输入设备都会出现在/sys/class/input之下而不论它们是以何种总线连接到系统。它也是构成 Linux 统一设备模型的一部分kernel------------ 这里是内核所有可调整参数的位置目前只有 uevent_helper、kexec_loaded、mm 和新式的 slab 分配器等几项较新的设计在使用它其它内核可调整参数仍然位于sysctl(/proc/sys/kernel) 接口中module------------ 这里有系统中所有模块的信息不论这些模块是以内联(inlined)方式编译到内核映像文件(vmlinuz)中还是编译为外部模块ko 文件都可能会出现在/sys/module 中power------------ 这里是系统中电源选项这个目录下有几个属性文件可以用于控制整个机器的电源状态如可以向其中写入控制命令让机器关机、重启等1.2 T113-S3 前期Tina SDK 编译步骤哇酷开发者社区 交流网站1.3 树莓派前期树莓派raspi-config配置说明http://rpf.io/configtxt树莓派实验室 https://shumeipai.nxez.com1.4 proc文件数字表示当前进程的PID号系统信息buddyinfoconsolesmeminfocpuinfocmdline中断信息softirqsinterrupts磁盘信息文件信息mtdfilesystems二 Linux 移植第三方工具2.1 T113-S3 移植 TFTP我知道的嵌入式端常见TFTP库有两个tftp-hpa、busybox 中的 TFTPbusybox中的TFTP可以在编译busybox时进行编译到内核不需要单独编译。这里移植的是tftp-hap库1、从官方下载源码包wgethttps://www.kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-5.2.tar.gz2、解压源码tar-xzvftftp-hpa-5.2.tar.gzcdtftp-hpa-5.23、配置交叉编译环境exportCCarm-linux-gnueabi-gccexportCXXarm-linux-gnueabi-gexportARarm-linux-gnueabi-arexportSTRIParm-linux-gnueabi-strip4、配置编译选项 ./configure--hostarm-linux-gnueabi--prefix$(pwd)/output5、编译和安装makemakeinstall6、移植到 Tina Linuxcpoutput/bin/tftp /path/to/tina/rootfs/usr/bin/cpoutput/bin/tftpd /path/to/tina/rootfs/usr/bin/tftp-hpa基础使用# 启动 TFTP 客户端tftp192.168.0.107 下载文件 get tftpd32.ini 上传文件 put tftpd32.ini 退出TFTP客户端 quit2.2 TCP链接不上Linux端TCP服务器如果你已经关闭了 TCP 连接和套接字重连TCP遇到 address already in use 错误通常是因为套接字处于 TIME_WAIT 状态。这是 TCP 协议的正常行为目的是确保网络中残留的数据包能够被正确处理。查看和修改TIME_WAIT 时间可以操作cat/proc/sys/net/ipv4/tcp_fin_timeout# 查看echo10/proc/sys/net/ipv4/tcp_fin_timeout# 配置2.3 iperf 测试W5500网络带宽write-fin failed: Network is unreachableWARNING: did not receive ack of last datagram after 10 tries.W5500网络受限于SPI速度测试下来W5500的最高速度在13.0 Mbits/sec左右。如果长时间iperf -u -c ip -b 100M来测试W5500模块会出现数据缓冲区溢出。SPI总线速度限制 (13Mbps) iperf发送速率 (100Mbps) ↓ W5500内部缓冲区溢出 ↓ 驱动返回 Network is unreachable ↓ ARP表项丢失/协议栈状态异常ARP表项开始失效 - 内核启动垃圾回收 - 新的ARP请求发出 - 收到ARP响应网络恢复 ↓ Ping不通需要重试出现问题后停止相关进程等待linux内核自动清理、更新arp缓存表。默认时间是30秒如果需要更改时间要自己手动配置rootalpha:~# cat /proc/sys/net/ipv4/neigh/eth0/base_reachable_time # ARP表项有效时间默认30秒30rootalpha:~# cat /proc/sys/net/ipv4/neigh/eth0/gc_stale_time # 垃圾回收超时默认60秒60rootalpha:~# cat /proc/sys/net/ipv4/neigh/eth0/delay_first_probe_time # 首次探测延迟5除了上面方法还有sysctl命令rootalpha:/# sysctl -A | grep base_reachable_time# 默认参数net.ipv4.neigh.default.base_reachable_time30net.ipv4.neigh.default.base_reachable_time_ms30001# 设备eth0默认参数net.ipv4.neigh.eth0.base_reachable_time30net.ipv4.neigh.eth0.base_reachable_time_ms30001# 回环默认参数net.ipv4.neigh.lo.base_reachable_time30net.ipv4.neigh.lo.base_reachable_time_ms30001配置套接字的属性C语言通过setopt函数可以更改SO_KEEPALIVETCP_KEEPIDLETCP_KEEPINTVLTCP_KEEPCNT参数。2.4 测试性能工具工具描述stressapptest重点测试内存稳定性验证内存硬件可靠性cyclictest测试重点定时器延迟实时性高的场合会用到stress-ng综合系统压力 模拟复杂负载下的行为
返回列表