<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SDL</title>
	<atom:link href="https://www.aitaocui.cn/tag/177227/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Wed, 23 Nov 2022 03:52:10 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>SDL</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SDL(多媒体数据库)</title>
		<link>https://www.aitaocui.cn/article/280674.html</link>
					<comments>https://www.aitaocui.cn/article/280674.html#respond</comments>
		
		<dc:creator><![CDATA[郑匡宇]]></dc:creator>
		<pubDate>Wed, 23 Nov 2022 03:52:10 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[SDL]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=280674</guid>

					<description><![CDATA[SDL（Simple DirectMedia Layer）是一套开放源代码的跨平台多媒体开发库，使用C语言写成。SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。SDL内置...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>SDL（Simple DirectMedia Layer）是一套开放源代码的跨平台多媒体开发库，使用C语言写成。SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。SDL内置了调用OpenGL的函数。SDL提供了数种控制图像、声音、输出入的函数，让开发者只要用相同或是相似的代码就可以开发出跨多个平台（Linux、Windows、Mac OS X等）的应用软件。</p>
</article>
<article>
<h1>简介</h1>
<p>SDL（Simple DirectMedia Layer）被广泛的用于许多著名的游戏。最著名的游戏是赢得Linux组游戏开发大奖的文明：权利的召唤（Civilization: Call To Power）。</p>
<p>SDL的作者是Sam Lantinga, Loki Entertainment Software的主力程序员（Lead Programmer）。</p>
<h1>功能介绍</h1>
<p>·SDL有哪些功能？</p>
<p>·视频</p>
<p>设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持，可以选择转化为另一模式。</p>
<p>直接写入线性的图像帧缓冲（framebuffer）。</p>
<p>用颜色键值（colorkey）或者alpha混合属性创建surface。</p>
<p>Surface的blit能自动的转化为目标格式。blit是优化过的，并能使用硬件加速。x86平台上有针对MMX优化过的blit。</p>
<p>硬件加速的blit和fill（填充）操作，如果硬件支持的话。</p>
<p>·事件</p>
<p>提供以下事件：</p>
<p>应用程序的visibility发生改变</p>
<p>键盘输入</p>
<p>鼠标输入</p>
<p>用户要求的退出</p>
<p>每种事件都能通过SDL_EventState()关闭或者打开。</p>
<p>事件经由用户指定的过滤函数再被加入到内部的事件队列。</p>
<p>线程安全的事件队列。</p>
<p>·音频</p>
<p>设置8位和16位的音频，单声道或者立体声，如果格式硬件不支持，可以选择转换。</p>
<p>由独立的线程执行音频部分，并提供用户回调（callback）机制。</p>
<p>设计上考虑到了客户定制的软混音器，但实际上在例程中就包含了一个完整的音频/音乐输出库。</p>
<p>·CD音频</p>
<p>完整的CD音频控制API</p>
<p>·线程</p>
<p>简单的线程创建API</p>
<p>用于同步的简单的二进制信号量（semaphores）</p>
<p>·定时器</p>
<p>读取已流逝的毫秒数。</p>
<p>等待指定的毫秒数。</p>
<p>设置一个10毫秒精度的周期性定时器。</p>
<p>·字节序无关</p>
<p>侦测当前系统的字节序</p>
<p>快速转换数据的函数</p>
<p>读写指定字节序的数据</p>
<h1>支持系统</h1>
<p>·SDL支持哪些系统平台？</p>
<p>·Linux</p>
<p>视频显示使用X11，利用XFree86 DGA扩展的优势，全屏显示使用新的w MTRR加速。</p>
<p>声音使用OSS API。</p>
<p>使用clone()系统调用和SysV IPC，或者glibc-2.1的pthreads实现线程。</p>
<p>·Win32</p>
<p>有两个版本，一个是适合所有基于Win32的系统的安全版本，另一个是基于DirectX的高性能版本。</p>
<p>安全版本的视频显示采用GDI。高性能版本采用DirectDraw，并支持硬件加速。</p>
<p>安全版本的音频回放采用waveOut API。高性能版本采用DirectSound</p>
<p>·BeOS</p>
<p>视频显示采用BWindow。</p>
<p>音频回放采用BSoundPlayer API。</p>
<p>·非正式的移植版本，进展中Solaris, IRIX, FreeBSD MacOS</p>
<h1>软件安全开发周期</h1>
<p>软件安全开发周期(Security Development Lifecycle)</p>
<p>即Security Development Lifecycle (SDL)，是微软提出的从安全角度指导软件开发过程的管理模式。SDL不是一个空想的理论模型。它是微软为了面对现实世界中安全挑战，在实践中的一步步发展起来的模式。</p>
<p>SDL的核心理念就是将软件安全的考虑集成在软件开发的每一个阶段需求分析、设计、编码、测试和维护。</p>
<h1>规范与描述语言</h1>
<p>规范与描述语言(Specification and Description Language)</p>
<h2 id="a-a3f9f283">简单介绍</h2>
<p>SDL(Specification and Description Language)语言是CCITT推荐的规格与描述性语言。由ITU-T发展和标准化，定义在兰皮书Z.100建议中（1992年，1996年增补）。作为国际标准化的正式语言，它被用来规范描述实时系统。目前，SDL-96是SDL的最新版本。作为SDL相关技术，本文把Z.120建议：消息序列图(message sequence charts,MSC)和Z.105建议：抽象语法符号-一(abstract syntax notation -one, ASN.1)作为SDL的一部分理解。</p>
<p>ITU将SDL描述为&quot;实时系统的特性描述语言&quot;。绝大多数SDL概念有文本和图形两种表述形式。由于缺乏某些范围内的高层结构和一些象C语言的概念，SDL并非编程语言。SDL并不描述系统发展进程。因此，在实际应用中，开发人员将应用用SDL图形描述，再由SDL工具将其转化为C语言源代码，或者CHILL源代码，最后嵌入到实际开发环境中。</p>
<p>使用SDL，可以半图形、半文本地定义特定类型的嵌入式系统的功能描述。这种方法的高度正式性，使得SDL工具有可能生成和测试完整的嵌入式应用。国外大量软件评论家认为，SDL的这种正式方法，应该推荐扩展应用到嵌入式系统之外。事实上，如SDL的消息顺序图，已经被普通的面向对象技术CASE工具，如Rational Rose，在交互式图形部分广泛采用。</p>
<h2 id="a-2a67dc82">适应范围</h2>
<p>SDL的使用范围甚至可以超出电信领域的范畴。但是，SDL也有一些限制。SDL不能适应所有类型的实时系统，例如系统需要描述精确行为，和（或）需要处理复杂数学问题或类似变换，就不适合。需要大量进程间的紧密协作时也不合适。SDL可以很好地处理多种并行处理应用，但仅当它们可用消息传送和非优先级排队模型很好地表述时。另外，SDL难于表示系统的一套复杂静态规则和数据关系，并缺乏对访问稳定数据的有效支持。</p>
<p>SDL方法适合于以下系统：</p>
<p>·主要与其他系统通讯（嵌入式系统）</p>
<p>·精确准时行为非关键。</p>
<p>·与其他系统主要是数字通讯，而不是模拟信号。</p>
<p>·无须执行复杂计算。</p>
<p>·需要并发运行，异步通讯。（并行系统）</p>
<p>·极少需要复杂数据关系模型。</p>
<p>SDL使用有限状态机FSM的概念来描述对象。SDL进程本质上是对象，它们具有各种不同的状态，在每种状态下发送、接收和处理进程消息，对封装的数据完成处理，并具有确定的状态行为。当然，其数据处理能力远不如描述进程能力强。SDL进程的任务是处理输入消息队列。为了提高效率，SDL进程并发运行，相互之间异步通讯。SDL进程之间也可以通过特定的&quot;SDL远程调用&quot;信号同步通讯。</p>
<p>由于SDL的种种特性，它最适合的场合时描述呼叫处理和协议处理。事实上，大量ITU-T的标准都是用SDL描述的，或者象国标中常常采用消息顺序图(MSC)来描述。MSC比SDL图更加直观，但其描述不足以生成为实际应用程序，它一般被用来作为系统设计用。在当前的多数SDL软件工具中，都提供了从SDL到MSC的生成工具，用以作为后期设计系统的正确性验证用。在如Telelogic的SDT软件中，甚至提供了SDL调试中动态MSC跟踪功能。</p>
<p>对于主机数据库开发，用SDL就不合适。因为在这里，需要大量单任务，同步通讯一个进程调用另外一个进程。SDL可以处理这种过程直接调用模型，但其真正的长处在于处理并行多任务之间的异步通讯。当然，在协调并发任务之间的同步机制上，SDL仅提供了高级的支持。对于一部分流行的支持抢先式多任务的操作系统，如pSOS, VxWorks, Win32等，部分SDL工具附带提供了SDL与操作系统的紧耦合接口库。</p>
<h2 id="a-0e166ed3">软件工具现状</h2>
<p>SDL的商用工具主要有以下几种：</p>
<p>·CATT的SDL工具Melba。</p>
<p>·Kvatro Telecom的SDL到CHILL转换器，与Telelogic的SDT集成在一起。CHILL工具CHIPSY。</p>
<p>·Telelogic的SDL工具SDT，和其他相关工具。</p>
<p>·Verilog的SDL工具ObjectGEODE，和其他相关工具。</p>
<p>另外，还有一些SDL的共享软件工具。</p>
<p>由于SDL语言在工程设计中所处的层次较低，及它已经面向应用开发的最末端（可以生成机器代码），SDL在系统分析方面，尤其是面向对象的分析方面有自身的不足，SDL-92开始引入面向对象的概念。而在SDL工具软件中，则大量使用流行的OMT/UML对象标准模型(Object Modeling Technique)，并提供CORBA/IDL支持。</p>
<p>SDT也不例外。其UML(Unified Modeling Language)编辑工具，采用的就是OMT/UML标准文法及标注方式。在分布式应用面向对象模型CORBA中，两个重要的部件是ORB(Object Request Broker)和IDL(Interface Description Language)。SDT支持用IDL写CORBA对象描述，然后通过SDT提供的IDL-SDL转换工具，自动转换并实现在SDL中。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/280674.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
