
Linux
文章平均质量分 72
林多
座舱架构师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【性能优化】优先级数据说明
本文介绍了Linux系统的进程优先级机制。系统进程分为限期进程、实时进程和普通进程三个等级,优先级依次递减。优先级数值越小表示优先级越高:普通进程PR=20+NICE值(-20~19),实时进程PR=-1-实时优先级(1~99)。通过top命令可查看PR和NI值来评估进程优先级,实时进程优先级最高。在实际性能优化中,可通过调整进程类型和NICE值来优化CPU资源分配,如将关键进程设为实时进程、调整NICE值改变普通进程优先级等。原创 2025-08-03 17:36:01 · 295 阅读 · 0 评论 -
【性能优化】启用zram
摘要:ZRAM是一种内存压缩技术,可在系统内存不足时启用。启用方法包括:1)检查内核版本(需3.14+);2)初始化/dev/zram0并设置为swap分区;3)调整swappiness参数(100表示优先使用swap)。启用后可能增加CPU负载,需根据内存总量、内核支持等情况权衡使用。最后可通过/proc/swaps查看swap配置状态。原创 2025-06-15 17:28:49 · 335 阅读 · 0 评论 -
【Linux】VLAN配置命令
VLAN:Virtual Local Area Network,虚拟局域网。VLAN可以将网络分割为多个广播域,提供网络性能以及增强网络安全性。车载网络有着较高的信息安全需求,相关的标准也有很多。比如IOS21343。比如,我们想添加一个ID 为12的 VLAN.这里记录一下,VLAN配置命令。原创 2025-04-13 17:04:29 · 531 阅读 · 0 评论 -
【Linux】统计文本中每行指定位置出现的字符串的次数
某些项目,会把某个特定事件记录到Log中并且落盘(保持到硬盘)。可以写一个sh脚本,来解析某个文本指定的位置,出现指定字符串的次数。原创 2025-01-26 11:43:31 · 646 阅读 · 0 评论 -
【Linux】RPMSG通讯协议介绍
RPMSG,全称Remote processor Messaging。是一种核间通讯协议。在Linux Kernel中,已经内置了RPMSG。Linux RPMSG基于共享内存,利用RPMSG可以高效的实现核间通信。比如Linux与FreeRTOS、Linux与Android,都可以使用RPMSG完成域间通信。Linux端 RPMSG架构图(图片摘自网络FreeRTOS端RPMSG架构图(图片摘自网络。原创 2025-01-05 16:03:42 · 1546 阅读 · 0 评论 -
【通信中间件】Fdbus HelloWorld实例
Fdbus 全称(高速分布式总线),提供IPC+RPC功能。LinuxQNXAnroidOSWindowFdbus本质是Socket,IPC基于,RPC基于TCP。使用Google Protobuf进行序列化和反序列化。利用它,可以实现同域间的IPC通信,比如应用和OS间。也可以实现跨域、跨设备间通信,比如不同设备间数据传输,比如host/gust间的数据传输。Fdbus的一些特点支持多种通信模式,比如点对点、注册/发布、广播等等。支持服务动态发现。原创 2024-05-02 16:46:23 · 4719 阅读 · 8 评论 -
【Gstreamer】自定义Plugin及调用Plugin
Gstreamer支持开发者自己创建Plugin,创建后的Plugin可以通过工具查看,并在代码中调用自定义的plugin。Gstreamer 官网中给出了Plugin创建教程,但实际上如果按照教程一步步走,最后会因编译失败的问题无法编译出Plugin的lib库(至少目前在Ubuntu20.04是这样)自定义Gstreamer Plugin通过工具(gst-inspect-1.0)查看自定义Plugin信息调用自定义的Plugin系统:UbuntuGstream版本:1.0。原创 2023-12-02 18:49:31 · 3312 阅读 · 2 评论 -
【Yocto】yocto编译系统Image优化笔记
使用yocto编译出来的Image文件(比如ext4格式)有时候根据业务需求,是要进行剪裁以缩小Image的Size。比如系统有OTA需求,系统预留的OTA分析大小是500M。但是Image(ext4格式)是1G大小。即使使用压缩文件,也未达到500M。这种情况下,可能就需要进行剪裁了。原创 2023-11-26 17:30:06 · 2576 阅读 · 2 评论 -
【Wifi】Wifi架构介绍
本文基于Android介绍其Wifi架构。Wifi是许多操作系统提供的重要功能之一,特别是越来越多的车载系统wifi是其必备功能。为啥wifi是必备功能?一方面是传统的上网(现在有些车载使用DCM模块管理网络),另一方面就是AP功能了(是自身成为热点),因为无线Carplay和无线AndroidAuto是需要借助蓝牙协议+AP实现无线认证及数据传输,而Carplay、AndroidAuto是车载系统的主要业务功能之一。原创 2023-10-15 15:32:22 · 1893 阅读 · 2 评论 -
【Audio】正弦波生成原理及C++代码
诊断系统(Diag)会通过播放一段指定频率、采样率、时长及振幅的正弦音,以此对Audio测试。原创 2023-10-06 15:47:09 · 1762 阅读 · 0 评论 -
Yocto常用术语
Yocto是一套开源、专为嵌入式定制的编译系统,它提供了toolset和开发环境,开发人员可以利用Yocto定制基于Linux的系统。了解这些术语可以加深对Yocto的认识。原创 2023-01-26 15:12:19 · 1539 阅读 · 1 评论 -
【Linux】Pid Namespace简介及其引发的问题
Pid Namespace简介及其引发的问题这六种命名空间,用来隔离某种资源。通过命名空间,linux可以支持容器的实现。这里只关注PID Namspace。原创 2023-01-15 19:39:56 · 1417 阅读 · 0 评论 -
【Shell】mksh运行分析
shell,壳子,即操作系统的壳子。这层壳子套在操作系统上,为用户提供与操作系统的交互手段。操作系统的交互方式一般有,图形化交互(GUI)和命令行交付(CLI,command-line interface)。Android系统中使用了一款叫mksh的shell程序,用于交互式的命令解释器。原创 2023-01-08 20:40:53 · 2536 阅读 · 0 评论 -
【Ubuntu】starting show plymouth boot screen无法开机
starting show plymouth boot screen无法开机今天电脑开机的时候(Ubuntu 16.04),启动后一直卡在下面的阶段。starting show plymouth boot screen解决方法:强制关机重启电脑,并重复按下ESC选择“System Restore”,按下Enter电脑会自动重启,并进入系统BZ在尝试这种方法后,可以成...原创 2019-11-25 10:27:51 · 16609 阅读 · 2 评论 -
【Shell】判断文件是否包含给定字符串
Shell判断文件是否包含给定字符串给定一个字符,比方说“Hello Linduo”,查找相应文件中是否包含该字符。方式1:grep# grep -c 返回 file中,与str匹配的行数grep -c str fileFIND_FILE="/home/linduo/test/Test.txt"FIND_STR="Hello Linduo"# 判断匹配函数,匹配函数不为0,则包...原创 2019-11-05 14:21:20 · 38926 阅读 · 0 评论 -
【Shell】shell字符串过滤
Shell字符串过滤服务器做CppCheck时,需要过滤一些Check的文件。比如MakeFile、证书文件等等。方式很多,这里采用了字符串过滤,将非检测的文件过滤掉。过滤check文件脚本# filterfilter_make_file="Makefile"filter_pem_file=".pem"count=-1# files_array变量包含了所有要检测的文件(过滤...原创 2019-05-31 09:41:45 · 6312 阅读 · 0 评论 -
【Linux】网桥设置
linux网桥设置平台(Ubuntu)设置linksudo ip link add link eno1 name macv0 address 00:aa:bb:cc:dd:10 type macvlan mode bridge sudo ip link set macv0 up sudo ip address add 192.168.98.200/24 b...原创 2019-04-30 16:39:35 · 639 阅读 · 0 评论 -
Ubuntu锁定文件chattr
Ubuntu锁定文件chattrchattrattr [-RVf][操作符][标志位]文件...标志位a:只能以追加模式打开A:不能更新文件访问时间(atime)c:当被写入磁盘时,被自动压缩C:关闭写时复制i:不可变更s:通过自动归零来安全删除例子锁定文件(不可对文件进行操作)sudo chattr +i /xxx/xxx/file解锁文件...原创 2019-04-30 16:36:43 · 1220 阅读 · 0 评论 -
makfile call函数应用
makfile call函数应用在项目的编译文件中,会使用到很多函数。call函数便是其中之间。简单来说call函数,类似于:自定义一个表达式,将不同参数传给该表达式,获得不同的值。在项目的编译文件中,一般用于获得不同flag,对应的头文件引用路径、动态库名、特定编译参数等。例子:# 一般为编译配置模块中定义类似如下内容# 头文件引用路径配置path_INC := \ lin...原创 2019-04-30 16:22:26 · 346 阅读 · 0 评论 -
SELinux MAC安全机制简介
SELinux MAC安全机制SELinux MACSecurity Enhanced Linux(SELinux),使用Mandatory Access Control(MAC)方式对权限进行管控。MAC强制访问控制,针对特定的程序与特定的文件资源进行权限管理。MAC采用政策(Policy)\规则(Rule)、安全上下文,主体对目标的访问,需要满足政策、安全上下文,才可以访问。SE...原创 2019-03-11 10:46:19 · 3150 阅读 · 0 评论 -
DAC自主访问控制
DAC自主访问控制DAC简介DAC(Discretinoary Access Control),自主访问控制。它是传统的Linux访问控制方式。资源所有者负责管理访问控制权限,并通过ACL(Acess Control List)管理非所有者权限。DAC思想:进程与其执行用户,拥有相同的权限。例如:进程A,以root用户执行,进程A就拥有了root用户的权限。基于DAC的安全策略,可以简...原创 2019-03-08 14:29:30 · 8472 阅读 · 0 评论 -
Ubuntu查看线程
Ubuntu查看线程的几种方式有些时候,需要查看一下某进程内部的线程数,或者都有哪些线程。方式1 cat命令:# 通过top命令,查看对应进程pidtop# 假设pid为3061,使用cat查看该进程的status文件cat /proc/3061/<pid># 输出的关于进程状态的内容中,Threads代表线程数Name: gnome-terminal...原创 2018-03-04 17:17:44 · 15762 阅读 · 1 评论 -
线程系统调用阻塞是否导致进程阻塞的问题
问题: 如果一个进程中的某一个线程调用了一个阻塞的系统调用函数后,那么该进程包括该进程中的其他所有线程也同时被阻塞 ?关于这个问题。网上有些解答似乎比较混乱。回答这个问题,首先要简单了解一下线程模型。线程模型(下述对应关系为 “线程”对“内核调度实体”) 多对1用户级线程模型1对1内核级线程模型多对多两级线程模型多对1用户级线程模型线程的创建、调度、同步,由所属进程的用户原创 2018-01-04 16:21:45 · 20883 阅读 · 1 评论 -
Linux升级Header
Ubuntu系统(以下均以该系统为前提)//查看使用内核版本sudo uname -r//升级sudo apt-get dist-upgrade//更新启动引导sudo update-grub切换内核:开机时,按住Shift键(左),根据提示选择查看已安装内核dpkg --get-selections | grep linux-image卸载内核# x原创 2017-07-02 12:04:58 · 920 阅读 · 0 评论 -
【Shell】shell执行linux命令
两种方式执行linux命令,将执行命令返回的值,赋给shell中的变量第一种data=`command`第二种data=$(command)其他开头必须以 #!/bin/sh 开头#![Args],Args表示执行该文件的程序chmod +x filename,使可通过 ./filename 执行 注释# 注释内容变量 所有变量有字符串组成不需要声明赋值var1="he原创 2017-09-09 10:58:22 · 44357 阅读 · 0 评论 -
Windows远程桌面连接ubuntu
安装xrdp//Ubuntu系统安装xrdpsudo apt-get install xrdplinux开启设置“搜索您本地和在线资源”->”桌面共享” 1. 允许其他人查看您的桌面(勾选) 2. 允许其他用户控制您的桌面(勾选) 3. 要求远程用户输入此密码(勾选) 4. 只有在其他人连接时(勾选)linux安装dconf-editorsudo apt-get install dconf原创 2017-07-09 10:35:23 · 1021 阅读 · 0 评论 -
Linux打开当前路径图形化窗口
nautilus# 当前路径nautilus ./# 指定路径nautilus /xx/xxx/xx/原创 2017-07-02 12:03:29 · 4105 阅读 · 0 评论 -
valgrind小例
valgrind 内存泄露检测工具valgrind --tool=memcheck --leak-check=full --track-origins=yes --show-leak-kinds=all ./xxx结果参数 definitely lost 直接。确认泄露,程序运行结束后,没有指向该内存的指针。indirectly lost 间接。确认泄露,指向该内存的指针,位于内存泄露原创 2017-07-02 11:58:07 · 1434 阅读 · 0 评论 -
Linux下autotools的使用
由于某些原因(持续集成:travis-ci+github),尝试给项目写个Makefile。整个项目最初在windows下编写,make这些工作都由VS做了。但travis-ci给c++提供的环境是linux下的编译器。不得不转移到linux下,重头到尾构建了一遍。(1)源代码 将源代码统一放到calculator文件夹下,路径为:/home/adver/calculator 由于windo原创 2017-02-16 16:27:10 · 5155 阅读 · 0 评论 -
Linux下动态库so查找与函数列表
查看某个so在Linux(Ubuntu)系统下的路径ldconfig -p | grep libc.so.6ldconfig -p | grep xxx.so查看某个 so导出函数列表# 如果输出符号T,则函数正常导出# 如果输出符号U,则函数为定义nm -D xxx.so# 或objdump -tT xxx.so- ...原创 2018-05-01 16:33:42 · 11776 阅读 · 0 评论 -
Linux scp复制远程文件或目录
从远程服务器拷贝到本地(假设,已通过ssh登陆到远程服务器)// 拷贝文件scp /xxx/xxx/xx.file linduo@192.168.98.xxx:/home/linduo/xxx/// 拷贝目录scp -r /xxx/xxx/xxx liuzhanlin@192.168.98.xxx:/home/linduo/xxx/从远程服务器拷贝到本地(未登陆到远程服务器...原创 2018-04-26 16:42:19 · 1959 阅读 · 2 评论 -
【Shell】shell判断星期
shell判断今天是星期几由于某些原因,需要在自动化执行的脚本中,对星期几进行判断。并在固定的日子,搞事情。shell当前日期是星期几WEEK_DAY=$(date +%w)echo $WEEK_DAY判断星期几搞事情WEEK_DAY=$(date +%w)echo $WEEK_DAYif [[ $WEEK_DAY -ge 1 || $WEEK_DAY -ge 5 ]];...原创 2019-01-11 17:39:07 · 8635 阅读 · 1 评论 -
ftp: bind: Address already in use解决
ftp: bind: Address already in use使用ftp命令上传文件时出现如下错误Server cannot accept argument.ftp: bind: Address already in use原因:ftp使用了主动模式,导致防火墙将服务器到客户端的连接阻塞。(主动模式下,ftp服务器数据端口20要去连接客户端指定的数据端口。而,一般来讲外部系统到...原创 2018-12-29 15:50:28 · 19454 阅读 · 0 评论 -
【Shell】shell 数组操作
shell数组操作shell支持一维数组,但不支持多维数组。数组元素下标,由0开始编号。#!/bin/bash# Errorarray=(1 2 3, 4 5 6)# 可以换一种方式,实现等同于二维数组的形式array=("1 2 3", "4 5 6")定义数组用括号表示数组,数组元素用“空格”分割开。#!/bin/bash# Type1array=(lin duo...原创 2018-12-23 18:05:31 · 2504 阅读 · 0 评论 -
Ubuntu crontab定时执行shell脚本
Ubuntu crontab定时执行shell脚本最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。Crontab与Cron使用crontab命令来配置cron进程。cron进程是Linux中的一个守护进程,一般用来执行系统中的周期性任务。Cron服务命令# 查看服务状态sudo service cron stat...原创 2018-10-31 11:21:00 · 11145 阅读 · 2 评论 -
Ubuntu 使用telnet
Ubuntu 使用telnet想要远程登录Ubuntu(linux)系统的电脑,可以使用ssh,也可以使用telnet。ubuntu开启telnet服务sudo apt-get install openbsd-inetdsudo apt-get intstall telnetdsudo /etc/init.d/openbsd-inetd restart# 查看 telnet服务...原创 2018-07-29 16:49:23 · 20439 阅读 · 2 评论 -
查找项目中包含某关键字的文件
有时候,需要在项目中查找包含某个关键字(如函数、类、结构体)的文件。这时候,可以使用编译器(如sublime、vscode)自带的查找功能,或者一些提示功能但对于包含上万、甚至几十万数量级源文件的大型项目,使用上述方法,速度会比较慢。这时,可以使用find命令,快速查找。# 在当前路径下查找中包含object.func内容的所有java文件find . -name "*.jav...原创 2018-06-06 15:26:44 · 4429 阅读 · 0 评论 -
Ubuntu unity7 stop/killed
工作中,无意间敲了一条命令,导致Unity7桌面环境。其效果,就好比在Windows系统下,kill掉explorer进程# 误敲的命令stop# 随之出现的提示unity7 stop/killed, process 3658解决方法很简单,重新开启就可以了# 命令start unity7# 随之出现的提示unity7 start/running, process...原创 2018-06-04 09:50:23 · 937 阅读 · 2 评论 -
Linux清屏命令
Linux清屏命令开发调式时,有时需要清空屏幕,以方便查找不同流程的关键Log。这个时候,清屏命令就很有用了。第一种clear命令# 清空屏幕# 相当于向后翻了一页# 之前的内容,依然保存在屏幕上clear第二种res命令# 完全清空屏幕# 之前的内容会同时清空# 屏幕内容较多时,速度较慢reset第三种printf命令# 完全清空屏幕...原创 2018-05-15 11:13:52 · 13606 阅读 · 4 评论 -
Linux文件锁flock
flock 多个进程同时操作同一文件时,容易导致文件中数据混乱。因此,需要锁操作保证数据的完整性。flock,建议性锁,不具备强制性。三种主要操作类型LOCK_SH 共享锁,多个进程可以使用同一把锁,常用作读共享锁。原创 2017-05-30 15:18:00 · 1433 阅读 · 0 评论