当前位置: 首页 > news >正文

140、【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(六)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

之前 blog
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(一)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(二)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(三)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(四)
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(五)
分析了下 strace 的追踪日志以及里面 open 命令和 openat 命令的区别,还有里面涉及的相关宏定义,以及 D-Bus 与 GNOME 的概念,并分析了 dbus-send 命令与 D-Bus 的关系,还分析了日志中不是 GNOME 和 XFCE 的描述,xprop 命令的用法,下面继续来看下

strace 日志解析

回到 strace 日志
在这里插入图片描述
这里 22 行里有记录 -root 选项,查看 xprop 命令帮助文档,描述如下
在这里插入图片描述
可以看到,-root 选项指定了 X Window 中根窗口(root window)为目标窗口,这在根窗口被完全挡住的时候很有用

这里提到了根窗口的概念

在 Linux/Unix 的 X Window 系统中,根窗口是最底层的背景窗口,根窗口会覆盖整个屏幕,是所有其他窗口,比如浏览器,终端,对话框等的父窗口,通常看到的壁纸桌面背景就是画在根窗口上的。

所以 xprop -root 命令会显示桌面背景,工作区,窗口管理器等全局信息

然后 -root 选项后面还跟了个 _DT_SAVE_MODE,这个 _DT_SAVE_MODE 的全称为 Desktop Save Mode,从其命名来看,可以知道这个东西是用来保存点什么东西的

实际上,这个 _DT_SAVE_MODE 是根窗口上的一个属性,类型通常是 STRING 字符类型,常见值包括 “xfce4”,“gnome”,“kde” 等,这个属性可以标识当前桌面环境的会话类型,并用于会话保存与恢复

这里又涉及到一个会话概念

在桌面环境中,一个会话指的是当前登录后,所有正在运行的图形应用程序和它们的状态的集合,比如有多个应用程序:打开了 Firefox 浏览器,里面可能有 5 个标签页,一同时打开了图像编辑窗口,正在编辑一张图片,同时有两个终端窗口,分别在不同的目录下工作,还有音乐播放器正在播放某个播放列表等等,这些工作状态的整体快照(当前这个时刻的各个应用程序状态),就叫做一个会话

然后上面的会话保持与恢复是指系统在注销或重启时,自动保存当前所有程序的状态(窗口位置,打开的文件,工作区等),并在下次登录时,自动重新启动这些程序并恢复它们之前的状态,让人感觉像是从没退出过电脑,相当于是系统能记住并还原之前的工作状态,这样能提升用户体验,避免重复打开文件和调整窗口

另外,需要注意的是,_DT_SAVE_MODE 不是标准,而是根窗口的一个私有属性,是历史遗留的 X Window 窗口属性,主要由 XFCE 设置,用于标识桌面环境类型,没有官方定义,在实践中可以被用于桌面环境探测

所以这里 22 行日志的含义是,使用 xprop 命令读出根窗口的 _DT_SAVE_MODE 属性
在这里插入图片描述
而且由于 _DT_SAVE_MODE 属性由主要由 XFCE 设置,所以结合后面 24 行的 grep 命令,可以用来探测当前的桌面环境是否为 XFCE

下面最后再分析下 24 行这里的 grep 命令匹配
在这里插入图片描述
主要是分析下这里的正则日志 = \\\"xfce4\\\"$

  • =:匹配字面量,这里是匹配后面的 xfce4 字符串
  • \\\":转义为双引号 ",所有不可见字符或特殊字符,比如 “,\,\n 等,都要用 \ 加转义形式表示,而由于 strace 是一个调试工具,它通过系统调用接口读取进程的内存数据,当 strace 看到 argv[1] 是一个字符串 " = “xfce4”$” 时,为了防止歧义和控制字符干扰显示,strace 会对特殊字符进行二次转义,所以这里出现了三个 \
  • $:行尾,正则表达式中表示行结束(^ 表示行开始)

ok,先到这里,下篇 blog 继续

http://www.dtcms.com/a/443251.html

相关文章:

  • 免费网站建设软件大全wordpress禁止中国ip
  • 有界区域上具有常数右端项的泊松方程解的上界估计
  • 做区位分析的地图网站wordpress主题分类目录主题
  • 网站建设实习每天内容手机网站开发 html
  • 手机网站制作案例教育网站建设备案
  • 网站开发时的闭包写法进一步加强区门户网站建设管理办法
  • 计算机网站设计怎么做扬中信息网
  • 专业网站名词解释资讯网站 怎样 增强用户粘度
  • 现代C++——并发编程
  • Dotnet通过OpenAI方式接入DeepSeek
  • 第八课(零基础友好版)|第一次训练模型(Teachable Machine,超详细)
  • 定制制作网站公司建筑模型网站有哪些
  • 【多线程】无锁数据结构(Lock-Free Data Structures)是什么?
  • YOLO入门教程(番外):卷积神经网络—卷积神经网络(LeNet)
  • 哪里可以做寄生虫网站wordpress链接默认是什么样子
  • 网站开发常用插件怎样保存网站资料 做证据
  • 网站经常被挂码泉州seo排名扣费
  • 做网站需要做需求分析吗修改wordpress登录背景图片
  • 网站建设人员分布知名的摄影网站有哪些
  • MySQL 运维知识点(十四)---- 主从复制
  • Linux常用通配符大全含运行示例
  • 相城seo网站优化软件django企业级问答网站开发
  • (autode计算化学—atoms)AtomCollection原子集类
  • 主键索引和唯一性索引的区别与联系
  • 免备案域名是危险网站荣耀手机商城官方网
  • 电磁兼容试验标准:电快速脉冲EFT
  • 建立一个平台网站需要多少钱大学软件开发需要学什么
  • wordpress安装好了怎么登陆网站电影网站如何做长尾关键词
  • 苏州h5模板建站效果图
  • yy直播官网怀化网站优化多少钱