![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 85
林多
糖分!
展开
-
【通信中间件】Fdbus HelloWorld实例
Fdbus 全称(高速分布式总线),提供IPC+RPC功能。LinuxQNXAnroidOSWindowFdbus本质是Socket,IPC基于,RPC基于TCP。使用Google Protobuf进行序列化和反序列化。利用它,可以实现同域间的IPC通信,比如应用和OS间。也可以实现跨域、跨设备间通信,比如不同设备间数据传输,比如host/gust间的数据传输。Fdbus的一些特点支持多种通信模式,比如点对点、注册/发布、广播等等。支持服务动态发现。原创 2024-05-02 16:46:23 · 1430 阅读 · 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 · 1786 阅读 · 1 评论 -
【Yocto】yocto编译系统Image优化笔记
使用yocto编译出来的Image文件(比如ext4格式)有时候根据业务需求,是要进行剪裁以缩小Image的Size。比如系统有OTA需求,系统预留的OTA分析大小是500M。但是Image(ext4格式)是1G大小。即使使用压缩文件,也未达到500M。这种情况下,可能就需要进行剪裁了。原创 2023-11-26 17:30:06 · 1770 阅读 · 2 评论 -
【Wifi】Wifi架构介绍
本文基于Android介绍其Wifi架构。Wifi是许多操作系统提供的重要功能之一,特别是越来越多的车载系统wifi是其必备功能。为啥wifi是必备功能?一方面是传统的上网(现在有些车载使用DCM模块管理网络),另一方面就是AP功能了(是自身成为热点),因为无线Carplay和无线AndroidAuto是需要借助蓝牙协议+AP实现无线认证及数据传输,而Carplay、AndroidAuto是车载系统的主要业务功能之一。原创 2023-10-15 15:32:22 · 1388 阅读 · 2 评论 -
【Audio】正弦波生成原理及C++代码
诊断系统(Diag)会通过播放一段指定频率、采样率、时长及振幅的正弦音,以此对Audio测试。原创 2023-10-06 15:47:09 · 1162 阅读 · 0 评论 -
Yocto常用术语
Yocto是一套开源、专为嵌入式定制的编译系统,它提供了toolset和开发环境,开发人员可以利用Yocto定制基于Linux的系统。了解这些术语可以加深对Yocto的认识。原创 2023-01-26 15:12:19 · 1312 阅读 · 1 评论 -
【Linux】Pid Namespace简介及其引发的问题
Pid Namespace简介及其引发的问题这六种命名空间,用来隔离某种资源。通过命名空间,linux可以支持容器的实现。这里只关注PID Namspace。原创 2023-01-15 19:39:56 · 1133 阅读 · 0 评论 -
【Shell】mksh运行分析
shell,壳子,即操作系统的壳子。这层壳子套在操作系统上,为用户提供与操作系统的交互手段。操作系统的交互方式一般有,图形化交互(GUI)和命令行交付(CLI,command-line interface)。Android系统中使用了一款叫mksh的shell程序,用于交互式的命令解释器。原创 2023-01-08 20:40:53 · 1843 阅读 · 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 · 15116 阅读 · 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 · 36031 阅读 · 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 · 6183 阅读 · 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 · 568 阅读 · 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 · 1147 阅读 · 0 评论 -
makfile call函数应用
makfile call函数应用在项目的编译文件中,会使用到很多函数。call函数便是其中之间。简单来说call函数,类似于:自定义一个表达式,将不同参数传给该表达式,获得不同的值。在项目的编译文件中,一般用于获得不同flag,对应的头文件引用路径、动态库名、特定编译参数等。例子:# 一般为编译配置模块中定义类似如下内容# 头文件引用路径配置path_INC := \ lin...原创 2019-04-30 16:22:26 · 292 阅读 · 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 · 2876 阅读 · 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 · 8120 阅读 · 0 评论 -
【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 · 8097 阅读 · 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 · 18129 阅读 · 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 · 2377 阅读 · 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 · 5030 阅读 · 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 · 1343 阅读 · 0 评论 -
Linux打开当前路径图形化窗口
nautilus# 当前路径nautilus ./# 指定路径nautilus /xx/xxx/xx/原创 2017-07-02 12:03:29 · 3972 阅读 · 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 · 911 阅读 · 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 · 43075 阅读 · 0 评论 -
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 · 815 阅读 · 0 评论 -
线程系统调用阻塞是否导致进程阻塞的问题
问题: 如果一个进程中的某一个线程调用了一个阻塞的系统调用函数后,那么该进程包括该进程中的其他所有线程也同时被阻塞 ?关于这个问题。网上有些解答似乎比较混乱。回答这个问题,首先要简单了解一下线程模型。线程模型(下述对应关系为 “线程”对“内核调度实体”) 多对1用户级线程模型1对1内核级线程模型多对多两级线程模型多对1用户级线程模型线程的创建、调度、同步,由所属进程的用户原创 2018-01-04 16:21:45 · 19876 阅读 · 1 评论 -
Ubuntu查看线程
Ubuntu查看线程的几种方式有些时候,需要查看一下某进程内部的线程数,或者都有哪些线程。方式1 cat命令:# 通过top命令,查看对应进程pidtop# 假设pid为3061,使用cat查看该进程的status文件cat /proc/3061/<pid># 输出的关于进程状态的内容中,Threads代表线程数Name: gnome-terminal...原创 2018-03-04 17:17:44 · 15137 阅读 · 1 评论 -
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 · 11155 阅读 · 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 · 1866 阅读 · 2 评论 -
Linux清屏命令
Linux清屏命令开发调式时,有时需要清空屏幕,以方便查找不同流程的关键Log。这个时候,清屏命令就很有用了。第一种clear命令# 清空屏幕# 相当于向后翻了一页# 之前的内容,依然保存在屏幕上clear第二种res命令# 完全清空屏幕# 之前的内容会同时清空# 屏幕内容较多时,速度较慢reset第三种printf命令# 完全清空屏幕...原创 2018-05-15 11:13:52 · 13445 阅读 · 4 评论 -
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 · 850 阅读 · 2 评论 -
查找项目中包含某关键字的文件
有时候,需要在项目中查找包含某个关键字(如函数、类、结构体)的文件。这时候,可以使用编译器(如sublime、vscode)自带的查找功能,或者一些提示功能但对于包含上万、甚至几十万数量级源文件的大型项目,使用上述方法,速度会比较慢。这时,可以使用find命令,快速查找。# 在当前路径下查找中包含object.func内容的所有java文件find . -name "*.jav...原创 2018-06-06 15:26:44 · 4293 阅读 · 0 评论 -
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 · 20048 阅读 · 2 评论 -
Ubuntu crontab定时执行shell脚本
Ubuntu crontab定时执行shell脚本最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。Crontab与Cron使用crontab命令来配置cron进程。cron进程是Linux中的一个守护进程,一般用来执行系统中的周期性任务。Cron服务命令# 查看服务状态sudo service cron stat...原创 2018-10-31 11:21:00 · 10663 阅读 · 2 评论 -
Linux文件锁flock
flock 多个进程同时操作同一文件时,容易导致文件中数据混乱。因此,需要锁操作保证数据的完整性。flock,建议性锁,不具备强制性。三种主要操作类型LOCK_SH 共享锁,多个进程可以使用同一把锁,常用作读共享锁。原创 2017-05-30 15:18:00 · 1291 阅读 · 0 评论