目录
20 关系: 对象 (计算机科学),序列化,圖形處理器,CORBA,系统调用,组件对象模型,Direct3D,遠程過程調用,行程,计算机科学,通用語言運行庫,Microsoft Windows,Mozilla应用程序框架,OpenGL,Platform Invocation Services,Protocol Buffers,Python,Unmarshalling (计算机科学),XPCOM,.NET框架。
- 遠端程序呼叫
对象 (计算机科学)
在計算機科學中,对象(object),--,是一個記憶體位址,其中擁有值,這個位址可能有標識符指向此處。物件可以是一個變數,一個資料結構,或是一個函式。是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素。 在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象(Object Oriented)的软件中,对象(Object)是某一个类(Class)的实例(Instance)。 http://www.iicm.org.tw/term/ https://web.archive.org/web/20110410015410/http://ccts.cs.cuhk.edu.hk/ Category:面向对象的程序设计.
查看 Marshalling (计算机科学)和对象 (计算机科学)
序列化
序列化(serialization)在計算機科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式(例如存成檔案,存於緩衝,或經由網絡中傳送),以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。依照序列化格式重新獲取位元組的結果時,可以利用它來產生與原始物件相同語義的副本。對於許多物件,像是使用大量參照的複雜物件,這種序列化重建的過程並不容易。物件導向中的物件序列化,並不概括之前原始物件所關聯的函式。這種過程也稱為物件編組(marshalling)。從一系列位元組提取資料結構的反向操作,是反序列化(也稱為解編組, deserialization, unmarshalling)。 序列化在计算机科学中通常有以下定義.
圖形處理器
圖形處理器(graphics processing unit,縮寫:GPU),又稱顯示核心、視覺處理器、顯示晶片或繪圖晶片,是一種專門在個人電腦、工作站、遊戲機和一些行動裝置(如平板電腦、智慧型手機等)上執行繪圖運算工作的微處理器。 圖形處理器是輝達公司(NVIDIA)在1999年8月發表精視 256(GeForce 256)繪圖處理晶片時首先提出的概念,在此之前,電腦中處理影像輸出的顯示晶片,通常很少被視為是一個獨立的運算單元。而對手冶天科技(ATi)亦提出視覺處理器(Visual Processing Unit)概念。圖形處理器使顯示卡减少了對中央處理器(CPU)的依赖,並分擔了部分原本是由中央處理器所擔當的工作,尤其是在進行三維繪圖運算時,功效更加明顯。圖形處理器所採用的核心技術有硬體座標轉換與光源、立體環境材質貼圖和頂點混合、纹理壓缩和凹凸映射貼圖、雙重纹理四像素256位渲染引擎等。 圖形處理器可單獨與專用電路板以及附屬組件組成顯示卡,或單獨一片晶片直接內嵌入到主機板上,或者內建於主機板的北橋晶片中,現在也有內建於CPU上組成SoC的。個人電腦領域中,在2007年,90%以上的新型桌上型電腦和筆記型電腦擁有嵌入式繪圖晶片,但是在效能上往往低於不少獨立顯示卡。但2009年以後,AMD和英特爾都各自大力發展內建於中央處理器內的高效能整合式圖形處理核心,它們的效能在2012年時已經勝於那些低階獨立顯示卡,這使得不少低階的獨立顯示卡逐漸失去市場需求,兩大個人電腦圖形處理器研發巨頭中,AMD以AMD APU產品線取代旗下大部分的低階獨立顯示核心產品線。而在手持裝置領域上,隨著一些如平板電腦等裝置對圖形處理能力的需求越來越高,不少廠商像是高通(Qualcomm)、PowerVR、ARM、NVIDIA等,也在這個領域裏紛紛「大展拳腳」。 GPU不同于传统的CPU,如Intel i5或i7处理器,其内核数量较少,专为通用计算而设计。 相反,GPU是一种特殊类型的处理器,具有数百或数千个内核,经过优化,可并行运行大量计算。 虽然GPU在游戏中以3D渲染而闻名,但它们对运行分析、深度学习和机器学习算法尤其有用。 GPU允许某些计算比传统CPU上运行相同的计算速度快10倍至100倍。.
CORBA
CORBA(Common Object Request Broker Architecture)通用物件請求代理架構是軟體構建的一个標準。 CORBA標準由物件管理組織(OMG)設立並進行控制,CORBA定義了一系列API,通信協議,和物件/服務信息模型用於使得異質應用程序能夠互相操作,這些應用程序用不同的程式語言編寫,運行在不同的平台上。CORBA因此為定義明確的物件提供了平臺和位置的透明性,這些物件是分布式計算平臺的基礎。 通常來說,CORBA把用其他語言開發的程序代码和關於該程序代码能力和如何調用該程序代码的信息包到一個开发包(package)中,开发包中的物件則可以在網络上被其他程序(或CORBA物件)調用。在這個意義上來講,CORBA可以被看作是一個機器可讀的文件檔格式,類似於头文件(header),但是具有相當多的信息。 CORBA使用一種接口描述语言(Interface description language)用於刻畫物件將呈現出來的介面。CORBA又規定了從IDL到特定程式語言,如C++或Java,實現的映射。這個映射精確的描述了CORBA資料類型是如何被用戶端和伺服器端實現的。標準映射的有Ada、C、C++、Smalltalk、Java、以及Python。還有一些非標準的映射,為Perl和Tcl的映射由這些語言寫的ORB實現。 CORBA的IDL只是IDL的一個例子。 在提供用戶語言和平臺中性的遠端程序呼叫規範的同時,CORBA也定義了通常需要的服務,例如事務和安全。.
系统调用
在電腦中,系統調用(system call),又稱為系統呼叫,指運行在使用者空間的程序向操作系統內核請求需要更高權限運行的服務。系統調用提供用戶程序與操作系統之間的接口。大多數系統交互式操作需求在內核態執行。如設備IO操作或者進程間通信。.
组件对象模型
组件对象模型(Component Object Model,縮寫COM)是微軟的一套软件组件的二进制接口标准。这使得跨编程语言的进程间通信、动态对象创建成为可能。COM是多项微软技术与框架的基础,包括OLE、、ActiveX、COM+、DCOM、、DirectX、Windows Runtime。.
Direct3D
Direct3D(簡稱:D3D)是微軟公司在Microsoft Windows作業系統上所開發的一套3D繪圖編程介面,是DirectX的一部份,目前廣為各家顯示卡所支援。與OpenGL同為電腦繪圖軟體和電腦遊戲最常使用的兩套繪圖編程介面之一。 1995年2月,微软收购了英国的Rendermorphics公司,將RealityLab 2.0技术發展成Direct3D标准,並整合到Microsoft Windows中,Direct3D在DirectX 3.0開始出現。後來在DirectX 8.0發表時與DirectDraw編程介面合併並改名為DirectX Graphics。.
查看 Marshalling (计算机科学)和Direct3D
遠程過程調用
远程过程调用(Remote Procedure Call,縮寫為 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用,例:Java RMI。.
行程
行程(process),是電腦中已執行程式的實體。行程為曾经是分時系統的基本運作單位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,行程本身不是基本執行单位,而是執行緒的容器。程式本身只是指令、数据及其组织形式的描述,行程才是程式(那些指令和数据)的真正執行实例。若干行程有可能與同一個程式相關聯,且每個行程皆可以同步(循序)或异步(平行)的方式獨立執行。現代電腦系統可在同一段時間內以进程的形式将多個程式載入到記憶體中,並藉由時間共享(或稱时分复用),以在一個處理器上表現出同時(平行性)執行的感覺。同樣的,使用多執行緒技術(多執行緒即每一個執行緒都代表一個行程内的一个独立执行上下文)的作業系統或電腦架構,同樣程式的平行线程,可在多CPU主機或網絡上真正同時執行(在不同的CPU上)。.
计算机科学
计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.
通用語言運行庫
通用語言執行平台(Common Language Runtime,簡稱CLR)是微軟為他們的.NET的虛擬機器所選用的名稱。它是微軟對通用语言架构(CLI)的實作版本,它定義了一個程式碼執行的環境。CLR執行一種稱為通用中间语言的字节码,這個是微軟的通用中间语言實作版本。 CLR執行在微軟的視窗作業系統上。檢視通用语言架构可以找到該規格的實作版本列表。其中有一些版本是執行在非Windows的作業系統中。.
查看 Marshalling (计算机科学)和通用語言運行庫
Microsoft Windows
Microsoft Windows(中文有时譯作微軟--,通常不做翻译)是微軟公司推出的一系列操作系统。它問世於1985年,起初是MS-DOS之下的桌面環境,其後續版本逐漸發展成為主要为個人電腦和服务器用户設計的操作系統,并最终获得了世界个人电脑操作系統的垄断地位。此操作系統可以在几种不同类型的平台上运行,如个人电脑(PC)、移动裝置、服务器(Server)和嵌入式系統等等,其中在个人电脑的领域应用内最为普遍。在2004年國際數據資訊公司一次有关未来发展趋势的会议上,副董事长Avneesh Saxena宣布Windows拥有终端操作系统大约70%的市场份额 www.linuxworld.com.au。 Windows操作系統目前最新的穩定版是於2015年7月29日發佈的 Windows 10。Windows Server目前最新的穩定版是2016年9月26日發佈的Windows Server 2016。.
查看 Marshalling (计算机科学)和Microsoft Windows
Mozilla应用程序框架
Mozilla应用程序框架(Mozilla application framework)是一套跨平台软件组件,其构成了Mozilla应用软件。它最早被称为XPFE,一个跨平台前端的縮寫。后来也曾被称为XPToolkit。为避免混淆,它现在被称为Mozilla应用程序框架。 类似于GTK+、Qt和wxWidgets等,它的目的是提供适合制作网络应用程序(例如网页浏览器)的跨平台功能子集,以利用Gecko排版引擎中构建的跨平台功能。.
查看 Marshalling (计算机科学)和Mozilla应用程序框架
OpenGL
OpenGL(Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用於渲染2D、3D矢量圖形的跨語言、跨平台的應用程序編程接口(API)。這個接口由近350個不同的函數调用組成,用來從簡單的圖形位元繪製複雜的三維景象。而另一种程式介面系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用於CAD、虛擬實境、科學視覺化程式和電子遊戲開發。 OpenGL的高效實現(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。這些實現一般由顯示裝置廠商提供,而且非常依賴於該廠商提供的硬體。開放原始碼函式庫Mesa是一個純基於軟體的圖形API,它的代码兼容於OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。 OpenGL规范由1992年成立的OpenGL架构评审委员会(ARB)维护。ARB由一些對建立一个统一的、普遍可用的API特别感兴趣的公司组成。根据OpenGL官方网站,2002年6月的ARB投票成员包括3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI和Sun Microsystems,Microsoft曾是创立成员之一,但已于2003年3月--。.
Platform Invocation Services
#重定向 平台叫用服務.
查看 Marshalling (计算机科学)和Platform Invocation Services
Protocol Buffers
Protocol Buffers是一種序列化資料結構的协议。對於透過管線(pipeline)或儲存資料進行通訊的程式開發上是很有用的。這個方法包含一個接口描述語言,描述一些資料結構,並提供程式工具根據這些描述產生程式碼,用於將這些資料結構產生或解析資料串流。.
查看 Marshalling (计算机科学)和Protocol Buffers
Python
Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.
Unmarshalling (计算机科学)
unmarshalling,或译作“解集”,是计算机科学中把已经变换为适合于存储或传输的对象的表示,变换为可执行的对象表示的过程。一个unmarshalling接口把序列化对象变换为可执行形式。Unmarshalling是marshalling的逆过程。.
查看 Marshalling (计算机科学)和Unmarshalling (计算机科学)
XPCOM
跨平台组件对象模型(Cross Platform Component Object Model,简称XPCOM)是Mozilla的一个跨平台组件模型。它类似微软的组件对象模型(COM)和公共对象请求代理体系结构(CORBA)。它有多个语言绑定和接口描述语言(IDL)描述符,因此程序员可以将自己的自定义函数插入到框架中并与其他组件连接。 2015年8月,Mozilla宣布将放弃为创建Firefox附加组件而使用的XPCOM,未来将支持WebExtensions。Firefox的分支苍月浏览器(Pale Moon)则将继续无限期的支持XPCOM。.
.NET框架
--是由微軟開發,一個致力於敏捷軟體開發(Agile software development)、快速應用開發(Rapid application development)、平臺獨立性和網路透明化的軟體框架。.NET是微軟為2000年代對伺服器和桌上型軟體工程邁出的第一步。.NET包含許多有助於互聯網和內部網應用迅捷開發的技術。.NET框架是微軟公司繼Windows DNA之後的新開發平臺。.NET框架是以一種採用系統虛擬機運行的編程平臺,以通用語言運行庫(Common Language Runtime)為基礎,支援多種語言(C#、F#、VB.NET、C++、Python等)的開發。.NET也為應用程式介面(API)提供了新功能和開發工具。這些革新使得程式設計員可以同時進行Windows應用軟體和網路應用軟體以及元件和服務(web服務)的開發。.NET提供了一個新的反射性的且物件導向程式設計編程介面。.NET設計得足夠通用化從而使許多不同高階語言都得以被彙集。 甲骨文公司的Java程式語言和Java平臺企業版技術是.NET平臺的競爭對手之一。 2014年11月12日,微軟宣布將完全開放.NET Framework的原始碼,並提供給Linux和OS X使用。.
另见
遠端程序呼叫
- .NET Remoting
- Apache Avro
- D-Bus
- DCE/RPC
- ICE (中间件)
- JSON-RPC
- Java远程方法调用
- Marshalling (计算机科学)
- Thrift
- XML-RPC
- 接口描述语言
- 简单对象访问协议
- 遠程過程調用
- 開放網路運算遠端程序呼叫