<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[segments的专栏]]></title><description><![CDATA[开源为我们做了什么?我们又为开源做了什么?]]></description><link>https://blog.youkuaiyun.com/segments</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; segments]]></copyright><item><title><![CDATA[【转载】DDS与SOME/IP在自动驾驶中的核心差异与协同应用]]></title><link>https://blog.youkuaiyun.com/segments/article/details/159125449</link><guid>https://blog.youkuaiyun.com/segments/article/details/159125449</guid><author>segments</author><pubDate>Mon, 16 Mar 2026 16:53:10 +0800</pubDate><description><![CDATA[想象一下，你正在驾驶一辆 汽车 ，眼睛看到路况，大脑瞬间做出判断，手脚立刻执行转向、刹车或加速。这个过程流畅自然，是因为你的神经系统在毫秒间完成了信息的采集、处理和指令的下达。对于一辆自动驾驶汽车来说，它同样需要一个高效、可靠的“神经系统”，这就是我们今天要聊的通信中间件。在自动驾驶系统里，遍布着各种各样的“感官”和“执行器”：激 光 雷达、摄像头、毫米波雷达是它的“眼睛”，感知周围环境；域控制器是它的“大脑”，进行融合决策；线控底盘、转向电机是它的“手脚”，负责精准执行。]]></description><category></category></item><item><title><![CDATA[DDS和RTPS概述]]></title><link>https://blog.youkuaiyun.com/segments/article/details/139447149</link><guid>https://blog.youkuaiyun.com/segments/article/details/139447149</guid><author>segments</author><pubDate>Tue, 04 Jun 2024 16:40:00 +0800</pubDate><description><![CDATA[DDS(Data Distribution Service，数据分发服务)：用于分布式应用程序通信和集成的以数据为中心的发布-订阅（DCPS）中间件模型。提供丰富的QoS服务质量策略，能保障数据进行实时、高效、灵活地分发，可满足各种分布式实时通信应用需求。]]></description><category></category></item><item><title><![CDATA[DDS（data distribution service，数据分发服务）简介]]></title><link>https://blog.youkuaiyun.com/segments/article/details/139443140</link><guid>https://blog.youkuaiyun.com/segments/article/details/139443140</guid><author>segments</author><pubDate>Tue, 04 Jun 2024 15:28:02 +0800</pubDate><description><![CDATA[数据分发服务（DDS™）是一个由对象管理组（OMG）发布的以数据为中心的中间件协议和API标准。DDS集成系统中的各个组件，提供低延迟数据连接、高可靠性以及高可扩展体系结构，以适应商业级物联网（IoT）应用程序的需求。]]></description><category></category></item><item><title><![CDATA[fdbus和vsomeip的对比]]></title><link>https://blog.youkuaiyun.com/segments/article/details/135104378</link><guid>https://blog.youkuaiyun.com/segments/article/details/135104378</guid><author>segments</author><pubDate>Wed, 20 Dec 2023 12:11:29 +0800</pubDate><description><![CDATA[近日发现，在智能座舱系统里核间通讯，有项目团队使用了fdbus这一开源项目作为解决方案，于是特意调研了下。]]></description><category></category></item><item><title><![CDATA[【转载】Fast Distributed Bus - FDBus：高速分布式总线以及中间件开发框架]]></title><link>https://blog.youkuaiyun.com/segments/article/details/135058850</link><guid>https://blog.youkuaiyun.com/segments/article/details/135058850</guid><author>segments</author><pubDate>Mon, 18 Dec 2023 11:32:03 +0800</pubDate><description><![CDATA[摘要
本文描述了一种新型IPC机制：Fast Distributed Bus(FDBus)。从IPC（Inter-Process Communication）角度，FDBus和广泛使用的D-Bus(Desktop Bus)有类似之处，但是FDBus具有自身优势，功能更齐全，性能更高，使用便利，除了支持主机内的IPC，还能在多个主机之间组网，同时可以定制安全策略，支持不同的安全等级。FDBus构筑于socket（Unix domain和TCP）之上，采用Google protobuf做序列化和反序列化。FDB]]></description><category></category></item><item><title><![CDATA[[翻译] SOMEIP和DDS的区别]]></title><link>https://blog.youkuaiyun.com/segments/article/details/120484856</link><guid>https://blog.youkuaiyun.com/segments/article/details/120484856</guid><author>segments</author><pubDate>Sun, 26 Sep 2021 11:18:11 +0800</pubDate><description><![CDATA[翻译自。

感觉原文作者是一个DDS的扈拥，字里行间都在贬低SOME/IP。所以，看看就好。




			SOME/IP
			DDS
			Notes
		概念
			SOME/IP和DDS都允许分布式应用程序使用发布/订阅模式和服务请求/回复模式（RPC）进行通信。 但是也存在重大差异。 SOME/IP专为汽车行业设计。 SOME/IP是作为AUTOSAR一部分而开发的一系列规范，描述了其序列化协议，服务发现以及集成在Classic AUTOSAR中的协议标准接口。
			DDS（数据分发服务）的目标]]></description><category></category></item><item><title><![CDATA[Some/IP和DDS的区别]]></title><link>https://blog.youkuaiyun.com/segments/article/details/120484026</link><guid>https://blog.youkuaiyun.com/segments/article/details/120484026</guid><author>segments</author><pubDate>Sun, 26 Sep 2021 10:53:47 +0800</pubDate><description><![CDATA[​​​​​​What's the difference between DDS and SOME/IP?

SOME/IP is an automotive middleware solution that can be used for control messages. DDS is also an automotive middleware for communication. I want to know what's the difference between them? and, why an]]></description><category></category></item><item><title><![CDATA[沉思录四：如何优化性能]]></title><link>https://blog.youkuaiyun.com/segments/article/details/115139216</link><guid>https://blog.youkuaiyun.com/segments/article/details/115139216</guid><author>segments</author><pubDate>Wed, 24 Mar 2021 10:03:41 +0800</pubDate><description><![CDATA[面对一个架构设计繁复的linux服务器端应用，难于维护的局面，如何破局？其中，性能总是不达标怎么办？]]></description><category></category></item><item><title><![CDATA[沉思录三：敏捷开发的精髓是什么]]></title><link>https://blog.youkuaiyun.com/segments/article/details/114887892</link><guid>https://blog.youkuaiyun.com/segments/article/details/114887892</guid><author>segments</author><pubDate>Tue, 16 Mar 2021 17:54:18 +0800</pubDate><description><![CDATA[面对一个架构设计繁复的linux服务器端应用，难于维护的局面，如何破局？我想起当年大家讨论敏捷开发的事情。若干年后，尘埃落定，敏捷开发遗留下的最实用和重要的是：结对review和每次构建。]]></description><category></category></item><item><title><![CDATA[沉思录二：以unix哲学基础的架构设计]]></title><link>https://blog.youkuaiyun.com/segments/article/details/114704771</link><guid>https://blog.youkuaiyun.com/segments/article/details/114704771</guid><author>segments</author><pubDate>Fri, 12 Mar 2021 20:03:29 +0800</pubDate><description><![CDATA[面对一个架构设计繁复的linux服务器端应用，难于维护的局面，如何破局？看看《unix编程艺术》一书里，unix哲学基础章节如何说的。


1 模块原则：使用简洁的接口拼合简单的部件
2 清晰原则: 清晰胜于机巧
3 组合原则：设计时考虑拼接组合
4 分离原则: 策略同机制分离，接口同引擎分离
5 简洁原则：设计要简洁，复杂度能低则低
6 吝啬原则: 除非确无它法，不要编写庞大的程序
7 透明性原则：设计要可见，以便审查和调试
8 健壮原则: 健壮源于透明与简洁
9 表示原则: 把知识叠入数据以求逻辑质朴而]]></description><category></category></item><item><title><![CDATA[沉思录一：如何维护一个复杂的网络应用]]></title><link>https://blog.youkuaiyun.com/segments/article/details/114702209</link><guid>https://blog.youkuaiyun.com/segments/article/details/114702209</guid><author>segments</author><pubDate>Fri, 12 Mar 2021 19:45:43 +0800</pubDate><description><![CDATA[写下这个文章的时候，刚从一个复杂的linux服务端网络应用项目中脱出，除去身心的疲惫不堪后，不得不反思标题中的问题，如何破局？这样在下次面对相似问题时，可能就多几分幸存的几率。

“最想知道我是在什么地方死的，这样我就可以避开死亡了。” 
这个是查理芒格多次讲过的话。但是很多人被困难问题击败后，都没有找到自己是在哪儿失败的？如何破局？首先是找到在哪儿挂的和挂的原因。]]></description><category></category></item><item><title><![CDATA[TCP 为什么三次握手而不是两次握手（正解版）]]></title><link>https://blog.youkuaiyun.com/segments/article/details/111316388</link><guid>https://blog.youkuaiyun.com/segments/article/details/111316388</guid><author>segments</author><pubDate>Thu, 17 Dec 2020 15:26:34 +0800</pubDate><description><![CDATA[参考文章

Why do we need a 3-way handshake? Why not just 2-way

大部分网络博客的错误解读

首先需要声明的是， 百度搜索到的大部分网络博客关于这个问题的解答都是不清晰或者不准确的。 讨论这个问题的大部分博客都会引用《计算机网络》的内容：

防止已失效的连接请求又传送到服务器端，因而产生错误
不幸的是， 这种解释是不准确的， TCP 采用三次握手的原因其实非常简单， 远没有大部分博客所描述的那样云山雾绕。

这里先给出结论：


为了实现可靠数据传输， ]]></description><category></category></item><item><title><![CDATA[valgrind可以输出部分报告而无需退出配置文件应用程序吗？]]></title><link>https://blog.youkuaiyun.com/segments/article/details/111225299</link><guid>https://blog.youkuaiyun.com/segments/article/details/111225299</guid><author>segments</author><pubDate>Tue, 15 Dec 2020 17:00:59 +0800</pubDate><description><![CDATA[我想用valgrind检查一个长时间运行的内存泄漏过程.我怀疑我之后的内存泄漏可能会在执行几个小时之后才会发生.我可以在valgrind下运行应用程序并获得valgrind日志就好了,但这样做意味着我必须退出应用程序并重新启动它以重新启动一个新的valgrind会话,我仍然需要等待几个小时.是否可以保持valgrind和应用程序运行并在执行期间的任何时候仍然获得valgrind的(部分)数据？

你可以使用 Valgrind gdbserver and GDB来做到这一点.

简而言之,您可以像往常一样使用]]></description><category></category></item><item><title><![CDATA[无人驾驶刚刚开始的未来]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110876737</link><guid>https://blog.youkuaiyun.com/segments/article/details/110876737</guid><author>segments</author><pubDate>Tue, 08 Dec 2020 16:48:15 +0800</pubDate><description><![CDATA[作者：刘少山，唐洁，吴唯玥责编：何永灿，欢迎人工智能领域技术投稿、约稿、给文章纠错，请发送邮件至heyc@youkuaiyun.com
本文为《程序员》原创文章，未经允许不得转载，更多精彩文章请订阅《程序员》


本文是无人驾驶技术系列的第12篇，也是最后一篇（文末汇总了无人驾驶系列文章）。本文梳理总结了前面11篇涉及到的技术点，尝试呈现一个宏观的无人驾驶系统架构。另外，简单分析了无人驾驶的产业链现状以及根据笔者自己的经验提出了一些给开发者、创业者，以及投资者的建议。



无人驾驶技术总结



无人驾驶是...]]></description><category></category></item><item><title><![CDATA[【无人驾驶系列】光学雷达（LiDAR）在无人驾驶技术中的应用]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110864869</link><guid>https://blog.youkuaiyun.com/segments/article/details/110864869</guid><author>segments</author><pubDate>Tue, 08 Dec 2020 11:30:51 +0800</pubDate><description><![CDATA[作者：刘博聪，刘少山，James Peng
责编：周建丁（投稿请联系zhoujd@youkuaiyun.com）
声明：《程序员》原创文章未经允许不得转载，更多精彩文章请订阅2016年程序员：http://dingyue.programmer.com.cn/


http://geek.youkuaiyun.com/news/detail/70880?utm_source=tuicool&amp;utm_medium=referral


摘要：本文为《程序员》无人驾驶技术系列文章的第一篇，深入解析光学雷达（LiDAR）在无...]]></description><category></category></item><item><title><![CDATA[Linux 下的 AddressSanitizer]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110857828</link><guid>https://blog.youkuaiyun.com/segments/article/details/110857828</guid><author>segments</author><pubDate>Tue, 08 Dec 2020 10:58:02 +0800</pubDate><description><![CDATA[AddressSanitizer 是一个性能非常好的 C/C++ 内存错误探测工具。它由编译器的插桩模块（目前，LLVM 通过）和替换了 malloc 函数的运行时库组成。这个工具可以探测如下这些类型的错误：

对堆，栈和全局内存的访问越界（堆缓冲区溢出，栈缓冲区溢出，和全局缓冲区溢出）
	UAP（Use-after-free，悬挂指针的解引用，或者说野指针）
	Use-after-return（无效的栈上内存，运行时标记 ASAN_OPTIONS=detect_stack_use_after_return]]></description><category></category></item><item><title><![CDATA[怎样实时判断socket连接状态？]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110824016</link><guid>https://blog.youkuaiyun.com/segments/article/details/110824016</guid><author>segments</author><pubDate>Mon, 07 Dec 2020 18:03:38 +0800</pubDate><description><![CDATA[摘自：https://www.cnblogs.com/embedded-linux/p/7468442.html

对端正常close socket，或者进程退出（正常退出或崩溃），对端系统正常关闭
这种情况下，协议栈会走正常的关闭状态转移，使用epoll的话，一般要判断如下几个情况


	处理可读事件时，在循环read后，返回结果为0
		处理可写事件时，write返回-1，errno为EPIPE
		EPOLLERR或EPOLLHUP或事件
	
对端非正常断开，比如服务器断电，网线被拔掉
这种情况下，协]]></description><category></category></item><item><title><![CDATA[在Linux系统里使用SS命令获取TCP RTT]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110822148</link><guid>https://blog.youkuaiyun.com/segments/article/details/110822148</guid><author>segments</author><pubDate>Mon, 07 Dec 2020 17:01:31 +0800</pubDate><description><![CDATA[在Linux下的TCP通讯，如果能通过工具实时的获取某TCP通讯的RTT，就能比较清楚得知道当前网络TCP通讯的拥塞程度，在一定程度上对网络拥塞做出量化数据，记录历史日志。问题是，有什么工具或办法直接拿到RTT数据呢？
------------------摘自某个被TCP通讯中的timeout搞得头痛的码农

什么是TCP的RTT？这个还是网上搜索科普吧。

这里将范围缩小，我们讨论的目标是如何对一个正在运行的socket（TCP）通讯应用，做一个RTT的Benchmark。如何测试硬件系统和操作系统本身带]]></description><category></category></item><item><title><![CDATA[linux程序依赖的第三方库相互冲突问题]]></title><link>https://blog.youkuaiyun.com/segments/article/details/110204695</link><guid>https://blog.youkuaiyun.com/segments/article/details/110204695</guid><author>segments</author><pubDate>Thu, 26 Nov 2020 21:11:56 +0800</pubDate><description><![CDATA[Linux下的软件开发，因为有着众多的开源项目助力，开发难度应该降低很多才是。但是如果用的开源库太多了，偶尔也会遇到2个开源库相互冲突的问题。好比正在干活，有2个好朋友一起过来帮忙，但是活没有干完，这2个好朋友却先起冲突干起来了。人在江湖，朋友多了，似乎朋友之间的矛盾也成了自己的矛盾。-------------------------摘自某某码农开发笔记。

特别是在纯C的软件开发中，如果依赖的2个第三方库，有同名的函数，变量或宏定义，那么麻烦就大了去了。有人说，难道编译不过吗？不是，还真不影响编译。但就是]]></description><category></category></item><item><title><![CDATA[如何防止shell脚本的重入--flock]]></title><link>https://blog.youkuaiyun.com/segments/article/details/109898554</link><guid>https://blog.youkuaiyun.com/segments/article/details/109898554</guid><author>segments</author><pubDate>Sat, 21 Nov 2020 15:17:10 +0800</pubDate><description><![CDATA[可重入的函数是安全的。不可重入的函数，每次调用返回的结果，可能是不一致的，即使每次传入的参数是一样的。编程语言里的函数如此，那么linux的shell脚本是不是可重入的呢？答案是：未必。其中，有很大部分的shell脚本是不可重入的。这自然带出问题：如何防止shell脚本的重入？
---------------------------------------摘自某某不会装AC的码农笔录

这里讨论的脚本重入问题，是说在同一时刻，同时调用2次同一个脚本文件。很多时候，我们希望的结果可能有2种，分别是：
1. 多]]></description><category></category></item></channel></rss>