
Linux
文章平均质量分 90
羽林均
这个作者很懒,什么都没留下…
展开
-
软件License授权原理
在我们向客户销售商业软件的时候,常常需要对所发布的软件实行一系列管控措施,诸如验证使用者身份、软件是否到期,以及保存版权信息和开发商详情等。考虑到诸多应用场景可能处于离线环境,无法依赖网络进行实时认证,所以还需要考虑单机认证时的防破解问题。总之,License许可证利用HTTPS网站的证书和签名技术,一方面证明当前使用者是申请License的本人,另一方面要防止恶意破解,并伪造篡改License达到白嫖的目的。转载 2024-02-24 14:29:49 · 429 阅读 · 0 评论 -
Linux文件系统基础知识补充
一个文件系统的功能是什么?1、 创建、删除、打开、读取、写入等文件操作2、 文件要以一定的方式进行组织管理,比如目录结构等形式文件系统的底层依托 是 可以存储东西的存储器,比如内存、硬盘等存储器。常见的文件系统1、ext3 硬盘文件系统2、ext4 硬盘文件系统3、tmpfs 内存文件系统。转载 2024-01-08 23:35:06 · 305 阅读 · 0 评论 -
linux内核initcall放置在各个section中函数执行流程
Linux内核中的函数:用于在引导过程中进行文件系统等初始化。当文件系统模块被加载时,它使用宏注册其初始化函数。该宏将初始化函数添加到部分。在引导过程中,在基本硬件初始化和内存设置之后,内核开始执行初始化函数。函数按照其注册顺序依次执行。这些函数初始化各种文件系统并执行必要的设置任务。每个函数负责设置和初始化特定的内容。这可能涉及初始化数据结构、注册文件系统类型、准备缓存和其他相关任务。一旦所有函数都执行完毕,内核会继续完成引导过程,包括启动用户空间和初始化设备。原创 2024-01-06 22:00:12 · 1260 阅读 · 0 评论 -
今年努力输出的嵌入式Linux视频
对于研究SLAM、自动驾驶、工业3D视觉的小伙伴来说,Linux开发现在已经越来越重要。尤其是对于低成本的家用扫地机、割草机等产品,Linux是主流的开发系统。笔者在SLAM领域从业了多年,发现市面上针对三维视觉在Linux下的开发资料较少,尤其是对于内存泄露如何排查、机器死机情况如何分析、PC与开发板如何交叉编译、程序内存如何管理等方面。偶尔百度上也能查找到一些资料,但是较为零散,甚至有些还是错误的。因而,3D视觉工坊课程,课程。原创 2023-12-31 23:54:41 · 699 阅读 · 0 评论 -
《嵌入式Linux内存与性能详解》笔记4——性能优化
下面是书中提到的一些优化经验提高程序的效率:程序的时间效率是指运行速度空间效率:是指程序占用内存或者外存的状况全局效率是指站在整个系统的角度上考虑的效率局部效率是指站在模块或函数角度上考虑 的效率不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率。以提高程序的全局效率为主,提高局部效率为辅。在优化程序的效率时,应当先找出限制效率的瓶颈,不要在无关紧要之处优化。先优化数据结构和算法,再优化执行代码。有时候时间效率和空间效率。转载 2023-12-26 22:49:27 · 535 阅读 · 0 评论 -
《嵌入式Linux内存与性能详解》笔记3——动态库内存优化
在编程中,我们有时会使用到静态库和动态库,而静态库是链接到程序之中的,基本上静态库的优化与进程类似。但动态库是加载在内存空间中的,是在运行时链接的。它的优化方式比较不同,本文我们就简单地讲述一下动态库如何优化。转载 2023-12-24 10:15:00 · 359 阅读 · 0 评论 -
《嵌入式Linux内存与性能详解》笔记2——进程内存优化
堆内存的小单位为16Byte,所以尽量减少小块内存的申请,避免内存浪费。调整,降低mmap的门槛,会降低内存空洞的风险,但也会增加系统调用,降低性能。调整,减少堆顶连续内存门槛,释放更多的堆顶内存。以上是从书中获取到的经验,但无论如何还是需要结合实际的工程需求来做优化,希望可以帮到各位读者尽量避免在使用频率低的栈空间申请大量内存尽量避免使用递归函数最后附上一张函数栈帧结构图函数栈帧结构图ELF文件是 linux 下的可执行文件格式,包括可定位文件(.o)静态库(.a)共享库(.so)和。转载 2023-12-23 00:09:54 · 505 阅读 · 0 评论 -
《嵌入式Linux内存与性能详解》笔记1——内存测量
在我们编写 嵌入式linux 应用程序时,往往为了业务实现而忽略了一些代码优化的问题。使得程序臃肿,内存使用不合理,导致一些程序运行缓慢的问题。当然了,在当今师姐,嵌入式设备的内存问题似乎也越来越小,因为内存在逐渐增大,笔者目前开发的设备其内存已经达到了 4G。但我们不一定一直开发大内存的设备,有时我们也会面临开发小内存设备的境地。所以我们有必要学习如何优化内存,要达到优化内存的目的我们就需要知道有哪些内存占用得大,所以我们就需要。转载 2023-12-21 23:30:25 · 284 阅读 · 0 评论 -
ftrace命令
trace event 就是利用 ftrace 框架,实现低性能损耗,对执行流无影响的一种信息输出机制。不开启没有性能损耗开启后不影响代码流程不需要重新编译内核即可获取 debug 信息。转载 2023-12-20 00:13:13 · 397 阅读 · 0 评论 -
ltrace命令详解
ltrace 用来跟踪进程调用库函数的情况转载 2023-12-18 23:48:17 · 408 阅读 · 0 评论 -
strace 命令
strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。转载 2023-12-17 23:38:39 · 500 阅读 · 0 评论 -
linux PCIE驱动开发
linux PCIE驱动开发转载 2023-11-29 10:00:00 · 1260 阅读 · 0 评论 -
Linux下PCIe驱动开发与学习
PCI Express,是计算机总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统。PCIE总线使用的是高速差分总线,并采用端到端的连接方式, 现在的高速总线基本上都是串行总线,这样可以使用更高的时钟频率转载 2023-11-28 22:41:35 · 1902 阅读 · 0 评论 -
Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录
一般情况下,我们可以通过 samba 协议挂载远程服务器上的文件夹。然而,并非所有服务器都开放了 samba 端口,特别是在外网情况下,通常只会开放一个 ssh 端口。而 sshfs 是通过 ssh 协议模拟的方式,实现将远程服务器上的硬盘挂载到本地。也就是说,只要你的服务器支持ssh连接,你就可以将服务器的硬盘挂载到本地,然后采用本地的方式来操作硬盘里的文件。转载 2023-11-25 21:18:29 · 746 阅读 · 0 评论 -
Linux文本三剑客超详细教程---grep、sed、awk
awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。转载 2023-10-19 11:11:56 · 364 阅读 · 0 评论 -
Linux中进程管理介绍
进程结构我们都知道 进程就是动态的程序。一个程序想要转化为进程运行,首先要经过编译、动态链接动态链接动态链接,形成一个ELT,二进制可执行文件。转载 2023-10-07 18:54:55 · 129 阅读 · 0 评论 -
Linux中内存管理详解
虚拟空间 和 物理内存 都分为 内核空间 和 用户空间。虚拟地址需要通过页表转化为物理地址,然后才能访问。用户虚拟空间 只能映射 物理内存中的用户内存,无法映射到物理内存中的内核内存,也就是说,用户进程只能操作用户内存。内核空间 只能被 内核 申请使用,用户进程只能操作用户空间的物理内存和虚拟空间。当用户进程 调用系统调用的时候,会将其对应的代码和数据运行在内核空间中。所以当调用 内核空间 读取文件或者网络数据的时候,首先会将数据拷贝到内存空间,然后在将数据从内核空间拷贝到用户空间。转载 2023-10-07 00:57:10 · 309 阅读 · 0 评论 -
Hello world实例 | 解析内核的Makefile、Kconfig和.config之间的关联!
❞Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和Makefile、Kconfig、.config有关,下面简单谈谈Makefile、Kconfig和.config。希望对你有启发转载 2023-09-16 12:53:10 · 220 阅读 · 0 评论 -
使用Wireshark分析NTP数据包
使用NTP的主要目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于网络中的各台设备来说,时间是很重要的,如果时间不准则可能造成很大的影响,但是如果依靠管理员手工输入命令来修改系统时钟是不可能的,不但工作量巨大,而且也不能保证时钟的精确性。NTP数据包在时间同步的时候才会产生,这种数据不会很频繁出现,如果频繁出现的话,有可能是感染上木马被人利用了,比如NTP Reply洪水攻击,这种时候就要需要特别注意了。3.修改NTP配置文件。转载 2023-09-14 21:25:41 · 3085 阅读 · 0 评论 -
通信中间件 Fast DDS 基础概念简述与通信示例
从事汽车软件开发,通信中间件绕不开,当前最火热的无非有 2 种:Some/IP 和 DDS。DDS 是一种分布式通信标准,有很多商业和开源的实现,Fast DDS 是其中的一种。它在 ROS2 中被应用,而 Apollo 中的 CyberRT 框架中也有它的身影。讲 Fast DDS 之前先讲什么是 DDS。转载 2023-08-22 21:23:26 · 2830 阅读 · 2 评论 -
HEVC编码结构:Slice和Tile
某些Slice中可以包含多个Tile,同样某些Tile中也可以包含多个Slice。Slice头信息无法通过前一个Slice的头信息推断得到,这就要求Slice不能跨过它的边界来进行帧内或帧间预测,但环路滤波器可以跨越Slice进行滤波。(3)B Slice:在P Slice的基础上,B Slice中的CU也可以使用帧间预测,但是每个PB可以使用至多两个运动补偿预测信息。(2)P Slice:在I Slice的基础上,该Slice中的CU还可以使用帧间预测,每个预测块(PB)使用至多一个运动补偿预测信息。转载 2023-07-20 21:58:06 · 815 阅读 · 0 评论 -
linux下wifi的sta和ap操作
在linux开发中wifi是很常见的一个工作,wifi有STA模式和AP模式,今天分享下如何使用工具在Linux中控制wifi。原创 2023-07-13 22:02:48 · 2794 阅读 · 1 评论 -
嵌入式Linux开发板_WIFI无线网卡驱动移植
linux开发时候,无线是一个重要的部分,下面分享一下WiFi相关开发使用:本文所用开发板:tiny4412,当然也可以在jz2440上实现。嵌入式中设备想要联网,无非就 有线和无线 两种方式。有线就插上网线,没什么好说的;无线的话一种是将WIFI模块集成焊接在板子上,另一种是WIFI模块以USB的方式接到板子上。本次使用的就是USB接口的WIFI无线网卡,实现开发板使用WIFI无线网卡访问互联网和作为个人热点。转载 2023-07-10 23:41:14 · 1945 阅读 · 0 评论 -
linux使用命令行设置wifi国家码
在进行wifi信令测试时,常常会报一些信道连接fail的问题。一般是由国家码导致的,因为当前测试信道该国家码并不支持。Android手机中,其country code是根据sim卡去配置的,如果没有使用sim卡的话,软件默认国家码是US,即只支持1~11信道。这时候就需要软件支持,能够设置对应的国家码。当然,可以轻松的修改软件,编译代码,给出支持对应国家码的版本。但这种方式并不灵活。通过命令修改,就很方便了。转载 2023-07-11 21:34:06 · 2309 阅读 · 0 评论 -
虚拟机中的Ubuntu扩容及重新分区方法
在我们创建虚拟机的时候,如果分配的磁盘过小,在后续的使用时可能需要进行扩容,在扩容后你会发现好像磁盘并没有变大,这时候就需要进行重新分区转载 2023-06-01 20:40:04 · 4891 阅读 · 1 评论 -
openwrt开发使用-arping
IP冲突引起的网络异常,可以通过检查IP是否冲突,排除故障。我们可以用一些工具进行检查,例如arp-scan、arping软件进行查看。原创 2023-04-16 19:02:02 · 387 阅读 · 0 评论 -
jenkins安装使用
jenkins是CI/CD中部署时候一个重要工具,今天给大家分享一下Jenkins在ubuntu的安装,后面附有window安装链接。原创 2023-02-25 18:55:28 · 779 阅读 · 0 评论 -
android tombstone分析
当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程 号,线程号),死亡的地址(在哪个地址上发生了 Crash),死亡时的现场是什么样的(记录了一系列的堆栈调用信息)等等。转载 2023-02-12 18:40:22 · 1263 阅读 · 0 评论 -
Ubuntu安装配置 Samba与 Windows 共享文件
我们经常会遇到一边使用linux系统时候一边使用windows,这个时候会产生很多需要传输的文件,当然我们可以使用ssh scp进行传输,或者使用FileZilla、Winscp等工具,但是这些还是在自己的软件内进行一些基本同步,要是遇上很复杂的文件,此时需要自动同步,我们还有别的什么工具呢,linux本身的nfs的网络挂载,跨系统的操作呢?今天介绍samba,可以使得win和linux连通,产生一个共享文件夹。原创 2022-12-17 23:10:02 · 3723 阅读 · 0 评论 -
openwrt开发使用-增加luci
默认编译的 openwrt 无 luci,ssh 功能正常,可以正常进入,我远程访问路由器的时候发现无法打开管理页面,自己用本地连接也无法打开管理页面,无法访问此网站 192.168.1.1 拒绝了我们的连接请求。原创 2022-12-17 23:06:15 · 6328 阅读 · 0 评论 -
Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程
docker对我来说是一个很方便的工具,,上一篇文章也写了docker基本的一些使用,这篇文章重点描述一下Dockerfile的使用,从零建立一个自己定制化的镜像,并可以执行我们需要的任务。原创 2022-12-11 22:18:54 · 2298 阅读 · 2 评论 -
openwrt开发使用-选择芯片编译烧录
作为使用者我们可以选择网上丰富的开源镜像直接烧录,但是我们也可以做一高度定制化的固件,今天就来分享一下openwrt编译开发过程,帮助大家进行openwrt的使用。本文是我openwrt开发使用的开篇,后续会有更多文章分享。原创 2022-12-08 22:00:09 · 1605 阅读 · 0 评论 -
ubuntu创建新用户名和密码以及查看删除用户
ubuntu创建新用户名和密码以及查看删除用户转载 2022-12-03 17:47:45 · 2543 阅读 · 0 评论 -
一种通过udp进行无确认ip的双向的通信
udp是一种不可靠的通信,但是有些时候还是会有使用。今天分享一个示例:主体逻辑,一个端口广播地址,接收到ip地址数据后,其他端口基于这个ip进行bind绑定,最后通信,这样可以保证我们后续继续增加端口交互时候不需要关注ip地址绑定的问题。原创 2022-11-26 15:26:31 · 1898 阅读 · 0 评论 -
嵌入式linux日常使用的网络工具分享
作为嵌入式linux开发中我们经常会调试网络,这个时候需要一些网络工具辅助我们的工作,有一些是命令工具有些是GUI工具,这些生产力工具如何使用呢,今天做一个小分享(本篇文章主要介绍命令行工具)。原创 2022-11-20 18:33:43 · 540 阅读 · 0 评论 -
perf 补充命令分享
系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。转载 2022-11-12 18:36:37 · 979 阅读 · 0 评论 -
使用管道进行读取执行命令的返回值
我们经常会使用system()函数执行命令,那样是因为我们不需要要执行后返回的数据,如果我们需要返回的数据呢?今天介绍一种可以得到我们返回数据的操作。原创 2022-11-02 20:20:57 · 430 阅读 · 0 评论 -
分享自己平时使用的socket多客户端通信的代码技术点和软件使用
今天想分享一些socket编程的例子,socket嵌入式。linux开发很常用,用于进程间通信很方便,也有很多介绍,今天我也也来做自己的介绍分享。和别人不一样的地方,我主要想分享socket 服务端在linux写的代码,使用vscode调试执行,并且同时分享自己使用tcp监控软件去判断socket通信正确性。...原创 2022-06-25 13:06:36 · 1001 阅读 · 0 评论 -
jetson中使用cuda
昨天分享了 cuda在ubuntu的安装和使用,今天在jetson nano上进行测试验证使用cuda。在jetson nano上安装使用cuda和ubuntu有所区别,所以写了这篇文章。首先cuda使用上还是有cuda库直接调用和opencv cuda库调用,最后还有在jetson nano内置的CUDA Samples。当然我们也可以自己在网络下载,这是官方链接:https://github.com/NVIDIA/cuda-samples...............原创 2022-06-05 22:45:28 · 4343 阅读 · 1 评论 -
cuda在ubuntu的安装使用分享
之前给大家分享过opencv在jetson nano 2gb和ubuntu设备中使用并且展示了一些人脸识别等的小demo。但是对于图像处理,使用gpu加速是很常见原创 2022-06-04 21:52:20 · 4417 阅读 · 0 评论