类型系统

dbus通信与接口介绍

大城市里の小女人 提交于 2019-12-06 07:45:29
DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。 DBUS中主要概念为总线,连接到总线的进程可通过总线接收或传递消息,总线收到消息时,根据不同的消息类型进行不同的处理。DBUS中消息分为四类: 1. Methodcall消息:将触发一个函数调用 ; 2. Methodreturn消息:触发函数调用返回的结果; 3. Error消息:触发的函数调用返回一个异常 ; 4. Signal消息:通知,可以看作为事件消息。 1.2 DBUS应用场景 根据DBUS消息类型可知,DBUS提供一种高效的进程间通信机制,主要用于进程间函数调用以及进程间信号广播。 1 . 函数调用 DBUS可以实现进程间函数调用,进程A发送函数调用的请求(Methodcall消息),经过总线转发至进程B。进程B将应答函数返回值(Method return消息)或者错误消息(Error消息)。 2 . 消息广播 进程间消息广播(Signal消息)不需要响应,接收方需要向总线注册感兴趣的消息类型,当总线接收到“Signal消息”类型的消息时,会将消息转发至希望接收的进程。 1.3 DBUS通信特点

D-Bus介绍

烂漫一生 提交于 2019-12-06 07:33:59
1 D-Bus 简介 D-Bus 是 Desktop Bus 的缩写,是针对桌面环境优化的 IPC(interprocess communication) 机制,用于进程间的通信或进程与内核的通信。 IPC 种类很多,适用的情景也不一样: CORBA 是用于面向对象编程中复杂的 IPC 的一个强大的解决方案。 DCOP 是一个较轻量级的 IPC 框架,功能较少,但是可以很好地集成到 K 桌面环境中。 SOAP 和 XML-RPC 设计用于 Web 服务,因而使用 HTTP 作为其传输协议。 D-BUS 设计用于桌面应用程序和 OS 通信。 D-Bus 中 D 是代表桌面“ Desktop ”的意思,即用于桌面操作系统的通信通道。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。 典型的桌面都会有多个应用程序在运行,而且,它们经常需要彼此进行通信。 DCOP 是一个用于 KDE 的解决方案,但是它依赖于 Qt ,所以不能用于其他桌面环境之中。类似的, Bonobo 是一个用于 GNOME 的解决方案,但是非常笨重,因为它是基于 CORBA 的。它还依赖于 GObject ,所以也不能用于 GNOME 之外。 D-BUS 的目标是将 DCOP 和 Bonobo 替换为简单的 IPC ,并集成这两种桌面环境。由于尽可能地减少了 D-BUS 所需的依赖,所以其他可能会使用 D

强类型语言和弱类型语言

Deadly 提交于 2019-12-05 19:14:57
参考文章: https://blog.csdn.net/sinolzeng/article/details/40742757 编译型和解释型   我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就成为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。   如果我们写的程序代码都包含在一个源文件中,那么通常编译后就会直接生成一个可执行文件,我们就可以直接运行了。但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Ojbect file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上以及可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。   待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工作由另一个程序负责完成,由于词过程好像是把包含可执行代码的目标文件连接装配起来,所以有称为链接(Link),而负责链接的程序就叫链接程序(Linker)。链接程序除了链接目标文件外,可能还有各种资源,像图标文件啊、声音文件啊什么的,还要负责去除目标文件之间的冗余重复代码,等待

crashlog解析-iOS

梦想的初衷 提交于 2019-12-05 06:34:49
Crashlog 解析 对于从事iOS移动端测试的同学来说,应用crash十分常见。对于必现crash,通过必现路径复现crash就能定位问题,但对于偶现crash、压力测试crash或者线上crash,就只能通过crashlog来分析,本文介绍iOS端crashlog解析的一些通用知识点。 (做个笔记,以百度地图为例并不适用所有) 1. Crashlog 获取方式 1.1 连接 Xcode 直接读取 crashlog Mac电脑安装Xcode开发平台,通过USB线连接手机与电脑,点击Xcode→Window→De vices and Simulators进入如下界面 (以Xcode9为例)。 图1.1 再点击View Device Logs,读取手机中的crashlog文件。 图1.2 找到对应时间点且process名称为对应app(比如百度地图为IphoneCom)的crashlog文件,右键导出即可。 图1.3 1.2 通过手机直接复制 如果是线上用户主动反馈的crash,那么可能就无法通过上述方式获取crashlog文件,可以让用户进入隐私→诊断与用量→诊断与用量数据查看本地crashlog(iOS10),找到对应时间点且process名称为对应app(比如百度地图为IphoneCom)的文件,并通过手动复制后发送给我们,然后保存成.crash文件。这里有几点需要说明: ①

.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)

喜欢而已 提交于 2019-12-04 19:49:11
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员登录 系统用户管理 系统角色管理 权限管理 接口秘钥管理 系统日志 单库事务 跨库事务 读写分离分库分表 常见疑问 如何进行联表查询 如何切换数据库类型 如何使用多个数据库 引言 时间真快,转眼今年又要过去了。回想今年,依次开源发布了 Colder.Fx.Net.AdminLTE(254Star) 、 Colder.Fx.Core.AdminLTE(335Star) 、 DotNettySocket(82Star) 、 IdHelper(47Star) ,这些框架及组件都是本着以实际出发,实事求是的态度,力求提高开发效率(我自己都是第一个使用者),目前来看反响不错。但是随着前端和后端技术的不断变革,尤其是前端,目前大环境已经是前后端完全分离为主的开发模式,在这样的大环境和必然趋势之下,传统的MVC就显得有些落伍了。在这样的背景下,一款前后端分离的.NET开发框架就显得尤为必要,由此便定了框架的升级目标: 前后端分离 。 首先后端技术的选择,从目前的数据来看,.NET Core的发展远远快于.NET Framework,最简单的分析就是Colder.Fx.Core

QT的总结文章(转)

末鹿安然 提交于 2019-12-04 18:57:23
★ 了解 Qt 和 C++ 的关系 ★ 掌握 Qt 的信号 / 槽机制的原理和使用方法 ★ 了解 Qt 的元对象系统 ★ 掌握 Qt 的架构 ★ 理解 Qt 的事件模型,掌握其使用的时机 信号与槽、元对象系统、事件模型是 Qt 机制的核心,如果您想要掌握 Qt 编程,就需要对它们有比较深入的了解。本章重点介绍了信号与槽的基本概念和用法、元对象系统、 Qt 的事件模型,以及它们在实际使用过程中应注意的一些问题。 Qt 对标准 C++ 的扩展 标准 C ++对象模型为面向对象编程提供了有效的实时支持,但是它的静态特性在一些领域中表现的不够灵活。事实上, GUI 应用程序往往对实时性和灵活性都有着很高的要求。 Qt 通过其改进的对象模型在保持 C ++执行速度的同时提供了所需要的灵活性。 Qt 相对于标准 C ++增添的特性主要有以下体现: ◆ 支持对象间通信信号与槽机制 ◆ 支持可查询和可设计的动态对象属性机制 ◆ 事件和事件过滤器 ◆ 国际化支持 ◆ 支持多任务的定时器 ◆ 支持按层检索的对象树 ◆ 受保护指针 ◆ 动态类型转换 这些内容是 Qt 核心机制的重要组成部分,在下面的章节中,笔者将有选择的向大家介绍它们。 一、信号与槽 信号和槽机制是 Qt 的核心机制之一,要掌握 Qt 编程就需要对信号和槽有所了解。信号和槽是一种高级接口,它们被应用于对象之间的通信,它们是 Qt

【转载】2.ROS系统整体架构

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 14:07:37
由于 ROS 系统的组织架构比较复杂,简单从一个方面来说明很难说清楚。按照 ROS 官方的说法,我们可以从 3 个方面来理解 ROS 系统整体架构,这 3 个方面分别是文件系统级、计算图级、开源社区级。 1. 从文件系统级理解 ROS 架构 如果你是刚刚接手 ROS 方面的开发或项目,你肯定会觉得 ROS 中的各种概念非常奇怪,但是当你对 ROS 的使用熟练之后,你就觉得这些概念很好理解了。与其他操作系统相似,一个 ROS 程序的不同组件要被放在不同的文件夹下,这些文件夹是根据不同的功能来对文件进行组织的,如图 3 。 (图 3 )文件系统级理解 ROS 架构 ( 1 )工作空间 工作空间是一个包含功能包、可编辑源文件和编译包的文件夹,当你想同时编译不同的功能包时非常有用,并且可以保存本地开发包。当然,用户可以根据自己的需要创建多个工作空间,在每个工作空间中开发不同用途的功能包。不过作为学习,我们先以一个工作空间为例。如图 3 ,我们创建了一个名为 catkin_ws 的工作空间,该工作空间下会有 3 个文件夹: src 、 build 、 devel 。 src 源文件空间 :这个文件夹放置各个功能包和一个用于这些功能包的 CMake 配置文件 CMakeLists.txt 。这里做一下说明,由于 ROS 中的源码采用 catkin 工具进行编译,而 catkin 工具又是基于

[学习记录]selinux策略日志相关

不羁岁月 提交于 2019-12-04 11:31:55
selinux对于被拒绝的操作是会记录在系统日志的,位置在/var/log/audit/audit.log type为AVC,大括号里是操作类型,还有是否被拒绝、pid、安全上下文等等信息 selinux提供了audit2allow工具,用来分析策略日志然后生成一个使日志中被拒绝 实例如下: 相当于直接输出了一个.te文件,我们只要把输出导出成te文件,然后编译,加载即可。 需要注意的是audit2allow会粗暴地以全部通过为目的进行修改,因此需要注意不要让修改破坏了其它组件地安全。 来源: https://www.cnblogs.com/trickofjoker/p/11858362.html

2019-2020-1学期 20192411 《网络空间安全导论》第六周学习总结

戏子无情 提交于 2019-12-04 09:31:26
第十五章 网络 15.1 联网 1.计算机之间的连接通常是靠物理电线或电缆实现的。但是,有些连接使用无线电波或红外信号传导数据,这种链接是无线的。 2.==计算机网络中的设备不只是计算机==。例如,打印机可以直接连入网络,一边网络中的每个用户都可以使用它。 3.多媒体成分(如音频或视频)是使通信量大增的主要贡献者。 计算机网路(computer network) :为了通信和共享资源而连接在一起的一组计算设备。 无线连接(wireless) :没有物理电线的网络连接。 节点(主机)(node(host)) :网路中任何可寻址的设备。 数据传输率(带宽)(data transfer rate (bandwidth)) :数据从网路中的一个地点传输到另一个地点的速率。 4.在联网过程中,我们使用明确的协议来说明如何格式化和处理要传输的数据。 5.协议(protocol):定义如何在网路上格式化和处理数据的一组规则。 6.客户/服务器模型(client/server model):客户发出对服务器的请求,服务器做出响应的分布式方法。 7.文件服务器(file server):专用于为网路用户存储和管理文件的计算机。 8.Web服务器(Web server):专用于响应网页请求的计算机。 15.1.1 网络的类型 1. 局域网(Local-Area Network,LAN)

C++获取操作系统版本号和默认语言

本小妞迷上赌 提交于 2019-12-04 04:52:34
//以下是获得系统类型和版本的代码 OSVERSIONINFO osvi; ZeroMemory(&osvi,sizeof(OSVERSIONINFO)); osvi.dwOSVersionInfoaSize = sizeof(OSVERSIONINFO); GetVersionEx(&osvi); //以下获得系统的默认使用语言 LCID lcid = GetSystemDefaultLCID();//LCID 实际是unsigned long 类型,所以可以通过LCID编码来比较是什么语言, //具体请参照语言编码表 语言编码表参见以下链接 http://www.science.co.il/Language/Locale-codes.asp 来源: CSDN 作者: 肖邦之离歌 链接: https://blog.csdn.net/u011569364/article/details/17118827