:: wikimiki.org ::
| 程序库 |
程序库在计算机科学中,库是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。
库链接是指把一个或多个库包括到程序中,有两种链接形式:静态链接和动态链接,相应的,前者链接的库叫做静态库后者的叫做动态库。
静态链接
静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。
静态链接的最大缺点是生成的可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多的时间。
动态链接
动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过程的一部分。在这些系统上,可执行文件包含一个叫做import directory的表,该表的每一项包含一个库的名字。根据表中记录的名字,装载程序在硬盘上搜索需要的库,然后将其加载到内存中预先不确定的位置,之后根据加载库后确定的库的地址更新可执行程序。可执行程序根据更新后的库信息调用库中的函数或引用库中的数据。这种类型的动态加载成为装载时加载 ,被包括Windows和Linux的大多数系统采用。装载程序在加载应用软件时要完成的最复杂的工作之一就是加载时链接。
其他操作系统可能在运行时解析引用。在这些系统上,可执行程序调用操作系统API,将库的名字,函数在库中的编号和函数参数一同传递。操作系统负责立即解析然后代表应用调用合适的函数。这种动态链接叫做运行时链接 。因为每个调用都会有系统开销,运行时链接要慢得多,对应用的性能有负面影响。现代操作系统已经很少使用运行时链接。
可以动态链接的库,在Windows上是dynamic link library (DLL),在UNIX或Linux上是Shared Library。库文件是预先编译链接好的可执行文件,存储在计算机的硬盘上。大多数情况下,同一时间多个应用可以使用一个库的同一份拷贝,操作系统不需要加载这个库的多个实例。
动态链接的最大缺点是可执行程序依赖分别存储的库文件才能正确执行。如果库文件被删除了,移动了,重命名了或者被替换为不兼容的版本了,那么可执行程序就可能工作不正常。这就是常说的DLL-hell。
category:電腦術語
ja:ライブラリ
计算机科学
计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和硬件等。作为一门学科,它与数学、计算机程序设计、软件工程和计算机工程有显著的不同,却通常被混淆,尽管这些学科之间存在不同程度的交叉和覆盖。
计算机科学研究的课题是:
- 计算机程序能做什么和不能做什么(可计算性);
- 如何使程序更高效的執行特定任務(算法和复杂性理论);
- 程序如何存取不同类型的数据(数据结构和数据库);
- 程序如何显得更具有智能(人工智能);
- 人类如何与程序沟通(人机互动和人机界面)。
计算机科学的大部分研究是基于“冯·诺依曼计算机”和“图灵机”的,它们是絕大多數实际机器的计算模型。作为此模型的开山鼻祖,邱奇-图灵论题(Church-Turing Thesis)表明,尽管在计算的时间,空间效率上可能有所差异,现有的各种计算设备在计算的能力上是等同的。尽管这个理论通常被认为是计算机科学的基础,可是科学家也研究其它种类的机器,如在实际层面上的并行计算机和在理论层面上概率计算机、oracle 计算机和量子计算机。在这个意义上来讲,计算机只是一种计算的工具:著名的计算机科学家 Dijkstra 有一句名言“计算机科学并不只是关于计算机的,正如天文学并不只是关于望远镜一样”。
计算机科学根植于电子工程、数学和语言学,是科学、工程和艺术的结晶。它在20世纪最后的三十年间兴起成为一门独立的学科,并发展出自己的方法与术语。
早期,虽然英国的剑桥大学和其他大学已经开始教授计算机科学课程,但它只被视为数学或工程学的一个分支,并非独立的学科。剑桥大学声称有世界上第一个传授计算的资格。世界上第一个计算机科学系是由美国的普渡大学在1962年设立,第一个计算机学院於1980年由美国的东北大学设立。现在,多数大学都把计算机科学系列为独立的部门,一部分将它与工程系、应用数学系或其他学科联合。
计算机科学领域的最高荣誉是ACM设立的图灵奖,被誉为是计算机科学的诺贝尔奖。它的获得者都是本领域最为出色的科学家和先驱。华人中首获图灵奖的是姚期智先生.他于2000年以其对计算理论做出的诸多“根本性的、意义重大的”贡献而获得这一崇高荣誉。
计算机系统
计算机系统可划分为软件系统与硬件系统两大类。
硬件
- 结构控制和指令系统
- 算法和逻辑结构
- 存储器结构
- 冯·诺伊曼结构
- 哈佛结构
- 输入/输出和数据通信
- 数字逻辑
- 逻辑设计
- 集成电路
计算机系统组织
- 计算机系统结构
- 计算机网络
- 分布式计算
- 网络安全
- 计算机系统实现
软件
- 系统软件
- 操作系统
- 编译器
- 应用软件
- 计算机游戏
- 办公自动化
- 网络软件
- CAD软件
- 计算机程序
- 程序设计和程序设计实践
- 面向对象技术
- 程序设计语言
- 软件工程
- 软件复用
- 驱动程序
- 计算机模拟
- 程序设计方法学
数据和信息系统
- 数据结构
- 数据存储表示
- 数据加密
- 数据压缩
- 编码与信息论
- 文件
- 信息系统
- 管理信息系统
- 决策支持系统 - 专家系统
- 数据库
- 信息存储和数据存取
- 信息交互与表达
主要的研究领域
形式化基础
- 逻辑学
- 谓词逻辑
- 模态逻辑
- 时序逻辑
- 描述逻辑
- 数学
- 泛代数
- 递归论
- 模型论
- 概率论和数理统计
- 逻辑代数
- 布尔代数
- 离散数学
- 组合数学
- 图论
- 网论
- 信息论
理论计算机科学
- 形式语言
- 自动机
- 可计算性
- 算法
- 计算复杂性
- 描述复杂性
- 编译器
- 程序设计理论
- 信息论
- 类型理论
- 指称语义
- 微程序
- 遗传算法
- 并行计算
计算方法学
- 人工智能
- 计算机图形学
- 图像处理与计算机视觉
- 模式识别
- 语音识别
- 文字识别
- 签名识别
- 人脸识别
- 指纹识别
- 仿真与建模
- 数字信号处理
- 文档与文本处理
计算机应用
- 数值计算
- 数值分析
- 定理机器证明
- 计算机代数
- 工程计算
- 计算机化学
- 计算机物理
- 生物信息论
- 计算生物学
- 非数值计算
- 工厂自动化
- 办公室自动化
- 人工智能
- 信息存储与检索
- 符号语言处理
- 计算机辅助科学
- 计算机辅助设计
- 计算机辅助教学
- 计算机辅助管理
- 计算机辅助软件工程
- 机器人学
- 多媒体技术
- 人机交互
- 电子商务
特定技术
- 测试基准
- 机器视觉
- 数据压缩
- 设计模式
- 数字信号处理
- 文件格式
- 信息安全
- 国际互联网络
- 超大规模集成电路设计
- 网络传输协议
- 网络处理器技术
- 整数运算器
- 浮点运算器
- 矩阵运算处理器
- 网格
计算科学史
- 计算机历史
- 软件业历史
- 编程思想
相关学科
计算机科学与另外的一些学科紧密相关。这些学科之间有明显的交叉领域,但也有明显的差异。
- 信息科学 - 软件工程 - 信息系统 - 计算机工程 - 信息安全 - 密码学 - 数学 - 工程学 - 语言学 - 逻辑学
卓越的先驱者
- 艾伦·图灵
参见
- 计算机科学课程列表
- 计算机科学家
- 图灵奖
- 冯·诺依曼奖
- 中国计算机产业
- 中国计算机科学大事年表
- 程序设计语言列表
- 操作系统列表
- ASCII艺术
外部链接
ko:컴퓨터 과학
ja:情報工学
simple:Computer Science
th:วิทยาการคอมพิวเตอร์
Category:自然科学
Category:技术科学
子程序在计算机科学中,作为更大的程序的一部分,一个子程序(函数、过程,或者是子例程)是完成一项特定任务的代码序列,它由一个或多个语句块组成。这些代码通常被整合为软件库。
category:程序设计
ja:関数 (プログラミング)
程序
计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。 通常,计算机程序要经过编译和链接而成为一种人们不易理解而计算机理解的格式,然后运行。未经编译就可运行的程序通常称之为脚本程序。
程序的运行
为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。
在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。
冯诺依曼体系结构
在一台基于最常见的冯诺依曼体系结构(又称Harvard Architecture)的计算机上,程序从某种外部设备,通常是硬盘,被加载到计算机里。 如果计算机选择冯诺依曼体系结构,那么程序就被加载入内存。 指令序列顺序执行,直到一条跳转或转移指令被执行,或者一个中断出现。所有这些指令都会改变指令寄存器的内容。
基于这种体系计算机如果没有程序的支持将无法工作。一个计算机程序是一系列指令的集合。
程序里的指令都是基于机器语言;程序通常首先用一种计算机程序设计语言编写,然后用编译程序或者解释执行程序翻译成机器语言。 有时,程序也可以用汇编语言编写,汇编语言实质就是表示机器语言的一组记号-在这种情况下,用于翻译的程序叫做汇编程序(Assembler)。
程序和数据
程序已经被定义了。如何定义数据呢?数据可以被定义为被程序处理的信息。当我们考虑到整个计算机系统时,有时程序和数据的区别就不是那么明显了。中央处理器有时有一组微指令控制硬件,数据可以是一个有待执行的程序(参见脚本编程语言),程序可以编写成去编写其它的程序;所有这些例子都使程序和数据的比较成为一种视角的选择。有人甚至断言程序和数据没有区别。
编写一个程序去生成另外一个程序的过程被称之为原编程()。它可以被应用于让程序根据给定数据生成代码。单一一个程序可能不足以表示给定数据的所有方面。让一个程序去分析这个数据并生成新的程序去处理数据所有的方面可能会容易一些。就是一例支持这种编程模式的程序语言。
在神经网络里储存的权重是一种数据。正是这些权重数据,跟网路的拓扑结构一起,定义了网络的行为。人们通常很难界定这些数据到底表示什么或者它们是否可以由程序来代替。这个例子以及跟人工智能相关的其它一些问题进一步考验程序和数据的区别。
算法
算法指解决某个问题的严格方法,通常还需辅以某种程度上的运行性能分析。算法可以是纯理论的,也可以由一个计算机程序实现。理论算法通常根据复杂性分为不同类别;实现的算法通常经过颇析()以测试其性能。请注意虽然一个算法在理论上有效可行,但是一个糟糕的实现仍会浪费宝贵的计算机资源。(更详细信息,参见算法信息论,)
开发
编写程序是以下步骤的一个往复过程:编写新的源代码,测试、分析和提高新编写的代码以找出语法和语义错误。从事这种工作的人叫做程序设计员。由于计算机的飞速发展,编程的要求和种类也日趋多样,由此产生了不同种类的程序设计员,每一种都有更细致的分工和任务。软件工程师和系统分析员就是两个例子。现在,编程的长时间过程被称之为“软件开发”或者软件工程。后者也由于这一学科的日益成熟而逐渐流行。
因此,如今程序设计员可以指某一领域的编程专家,也可以泛指软件公司里编写一个复杂软件系统里某一块的一般程序员。一组为某一软件公司工作的程序员有时会被指定一个程序组长或者项目经理,用以监督项目进度和完成日期。大型软件通常经历由系统设计师的掌握的一个长时间的设计阶段,然后才交付给开发人员。牛仔式的编程(未经详细设计)是不为人所齿的。
两种当今常见的程序开发方式之一是项目组开发方式。使用这种方式项目组里每一个成员都能对项目的进行发表意见,而由其中的某一个人协调不同意见。这样的项目组通常有10个左右的成员,这样做是为了便于管理。第二种开发方式是结对开发。
参见
- 程序员
- 卸载程序
- 源代码
- 電子計算機
- 计算机软件
- 程序设计语言
- 編程典範
- 固件
- 操作系统
- 图灵机
- 系统需求
外部链接
- [http://www.webopedia.com/TERM/P/program.html Definition of Computer program @ Webopedia]
参考文献
#Eric Baum What is Thought MIT Press 2004 ISBN 0-262-02548-5
#- Chapter Two: The Mind is a Computer Program
Category:计算机软件
Category:程序设计
ja:プログラム
ko:프로그램
simple:Computer program
动态库动态库也称为全局数据库或工作存储器,是反映当前问题求解状态的集合。
存放内容
- 系统运行过程中所产生的所有信息
- 原始数据
- #用户输入的信息
- #推理的中间结果
- #推理过程的纪录
作用
动态库中由各种事实、命题和关系组成的状态,既是推理机选用知识的依据,也是解释机制获得推理路径的来源。
Category:数据库
编译器编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。
一个现代编译器的主要工作流程如下:
- 源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables])
工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。
典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
编译器种类
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。
预处理器(preprocessor)
作用是通过代入预定义等程序段将源程序补充完整。
编译器前端(frontend)
前端主要负责解析(parse)输入的源程序,由词法分析器和语法分析器协同工作。词法分析器负责把源程序中的‘单词’(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句 ,函数等等。
例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句。
前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST),这样后端可以在次基础上进一步优化,处理。
编译器后端(backend)
编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation)。
一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraprocedural)还是函数之间(interprocedural)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。
编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。
常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的 变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain),变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等。
上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并,分裂(loop fusion,loop fission),数组填充(array padding),等等。 优化和变形的目的是减少代码的长度,提高内存(memory),缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code)。
机器代码的生成是优化变型后的中间代码转换成机器指令的过程。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code)。即使在代码生成阶段,高级编译器仍然要做很多分析,优化,变形的工作。例如如何分配寄存器(register allocatioin),如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等。
编译语言与解释语言对比
许多人将高级程序语言分为两类: 编译型语言 和 解释型语言 。然而,实际上,这些语言中的大多数既可用编译型实现也可用解释型实现,分类实际上反映的是那种语言常见的实现方式。(但是,某些解释型语言,很难用编译型实现。比如那些允许 在线代码更改 的解释型语言。)
历史
上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他对自然语言结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。Chomsky的研究导致了根据语言文法的难易程度以及识别它们所需要的算法来对语言分类。正如现在所称的Chomsky架构(Chomsky Hierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。2型文法(或上下文无关文法)被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。分析问题(parsing problem,用于上下文无关文法识别的有效算法)的研究是在60年代和70年代,它相当完善的解决了这个问题。现在它已是编译原理中的一个标准部分。
有限状态自动机(Finite Automaton)和正则表达式(Regular Expression)同上下文无关文法紧密相关,它们与Chomsky的3型文法相对应。对它们的研究与Chomsky的研究几乎同时开始,并且引出了表示程序设计语言的单词的符号方式。
人们接着又深化了生成有效目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其称为优化技术(Optimization Technique),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(Code Improvement Technique)。
当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(Scanner Generator)的工具,Lex(与Yacc同时,由Mike Lesk为Unix系统开发)是这其中的佼佼者。
在70年代后期和80年代早期,大量的项目都贯注于编译器其它部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。
编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。
在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感性趣的人可以很容易的得到它们的免费源代码。
大约在1999年,SGI公布了他们的一个工业化的并行化优化编译器Pro64的源代码,后被全世界多个编译器研究小组用来做研究平台,并命名为Open64。Open64的设计结构好,分析优化全面,是编译器高级研究的理想平台。
参见
- 计算机科学课程列表
category:系统软件
Category:程序设计工具
ja:コンパイラ
ko:컴파일러
simple:Compiler
th:ตัวแปลโปรแกรม
操作系统操作系统(Operating System,简称OS)
是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石。
它的职责通常(但并非绝对)包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理之类的面向应用程序的服务等等。
操作系统的理论是计算机科学中一个古老而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与核心。
今天的操作系统
到2005年6月为止,用于通用计算机上的分布的操作系统主要两个家族:类Unix家族和微软Windows家族。
主机系统和嵌入式操作系统使用多样的系统,并且很多和Windows和Unix都没有直接的联系。
类Unix家族包括多个组织的操作系统,其中有几个主要的子类包括System V,BSD和Linux。这里'Unix'是一个商标,开发组织允许使用操作系统在一个定义前提下自由地开发。这名字是通用大型设置操作系统类似组织Unix。Unix系统运行在从巨型机到嵌入式系统的多种机器架构上。Unix 主要使用于重要的商务服务器系统以及学院和工程环境中的工作站之上。和Unix不同,自由软件比如Linux 和 BSD 逐步开始流行,并且开始进入桌面操作系统领域。和一些Unix操作系统不同,像惠普公司的HPUX和IBM公司的AIX是设计仅运行在客户购买的设备上,其中有一些特殊的(比如SUN公司的Solaris)可以运行在客户购买设备和基于工业标准的PC上。APPLE公司的Mac OS X是一个BSD特例,以取代早期小型市场上的苹果公司Mac OS,众多流行的Unix操作系统正在走向一体。
微软公司的Windows操作系统家族起源于早期的IBM PC环境中的MS-DOS,现在版本是基于新的Windows NT内核,第一次是在OS/2中制定。和Unix不同,Windows只能运行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,尽管早期有版本运行于DEC Alpha,MIPS 和 PowerPC体系结构。今天Windows是一个流行的操作系统,在全球桌面市场中占有90%左右的份额,同时在中低端服务器市场也有广泛的应用,如Web服务器和数据库服务器。
译者提示:NT是 New Technology 而不是 Network Technology,这点很多人都出现过误解.
大型机系统,比如IBM公司的Z/OS,和嵌入式操作系统比如QNX , eCOs 和 PalmOS都是和Unix和Windows无关的操作系统,而Windows CE ,Windows NT Embedded 4.0 和 Windows XP Embedded 都是和Windows相关的。
老的操作系统停留在市场包括类似IBM Windows的OS/2;来自惠普的VMS(以前的DEC);苹果公司的Mac OS操作系统,非Unix先驱苹果公司Mac OS X;和AmigaOS,第一个图形用户界面的操作系统,包括对于普通用户的高级的多媒体能力.
功能
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。
结构
操作系统理论研究者有时把操作系统分成四大部分:
- 驱动程序 - 最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
- 内核 - 操作系统之最核心部分,通常运行在最高特权级,负责提供基础性、结构性的功能。
- 支承库 - (亦作“接口库”)是一系列特殊的程序库,它们指责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。
- 外围 - 所谓外围,是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。
当然,本节所提出的四部结构观也绝非放之四海皆准。
例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。
而在使用外核结构的操作系统中,则根本没有驱动程序的概念。
因而,本节的讨论只适用于一般情况,具体特例需具体分析。
操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。
常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机(虛擬機器Virtual Machine)结构。
简单结构
很多商用操作系统都没有清晰的整体结构,系统中的各个部件混杂在一起。
这些操作系统往往是由很小的实验性的项目逐步演化而来的,因而宏观结构非常模糊。
MS-DOS就是一个很好的例子,在设计之初,MS-DOS的设计目标是在比较有限的硬件资源上运行比较有限的应用程序,开发人员很可能都没有预料到它日后在市场上的巨大成功,因而模块之间的相对独立性几乎被忽略。
相似的情况也发生在UNIX家族之中。
早期的UNIX因为受限于当时的硬件能力,也一直都是采用非常简单的、
随着UNIX的不断发展这样结构也很快成为了UNIX演进的瓶颈。
其他采用这种简单结构的操作系统还包括PalmOS 5以前的PalmOS,以及很多其他的小型的嵌入式操作系统。
层结构
微内核结构
垂直结构
虚拟机结构
分类
内核结构
:主条目: 内核
内核是操作系统最核心最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。
尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准。
内核的结构可以分为
单内核(monolithic kernel),
微内核(microkernel),
超微内核(nanokernel),
以及外核(exokernel)等。
详情参见操作系统内核。
单内核结构是操作系统中各核心部件杂然混居的形态,该结构于二十世纪六十年代(亦有二十世纪五十年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。
微内核结构是二十世纪八十年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。
二十世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。
尽管自二十世纪八十年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。
在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如Linux,大部分的Unix,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。
微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核。
基于单内核的操作系统通常有着较长的历史渊源。
例如,绝大部分UNIX的家族史都可上溯至二十世纪六十年代。
该类操作系统多数有着相对古老的设计和实现
(例如某些UNIX中存在着大量七、八十年代的代码)。
另外,往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统
(但通常认为此种性能优势不能完全归功于单内核结构)。
通用与专用、嵌入式去
实时与非实时
“实时操作系统”(Real Time OS)泛指所有据有一定实时资源调度以及通讯能力的操作系统。而所谓“实时”,不同语境中往往有着非常不同的意义。某些时候仅仅用作“高性能”的同义词。但在操作系统理论中“实时性”所指的通常是特定操作所消耗的时间(以及空间)的上限是可预知的。比如,如果说某个操作系统提供实时内存分配操作,那也就是说一个内存分配操作所用时间(及空间)无论如何也不会超出操作系统所承诺的上限。实时性在某些领域非常重要,比如在工业控制、医疗器材、影音频合成、以及军事领域,实时性都是无可或缺的特性。
常用实时操作系统有QNX、VxWorks、RTLinux等等,而Linux、多数UNIX、以及多数Windows家族成员等都属于非实时操作系统。操作系统整体的实时性通常依仗内核的实时能力,但有时也可在非实时内核上建立实时操作系统,很多在Windows上建立的实时操作系统就属于此类。
在POSIX标准中专有一系用于规范实时操作系统的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合称POSIX.4)
以及POSIX.13等等。符合POSIX.4的操作系统通常被认可为实时操作系统(但实时操作系统并不需要符合POSIX.4标准)。
多任务与单任务
16位、32位、64位
所谓16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。同样道理32位的宽度对应4GB的寻址范围,64位的宽度对应16 Exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。
在早期的16位操作系统中,由于64KB的寻址范围太小,大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。
在32位操作系统中,
4GB的寻址范围对于一般应用程序来说是绰绰有余的,
因而,通常使用一维的线性地址空间,而不使用“段”。
参看
- 操作系统内核
- 实时操作系统-分时系统-多任务-嵌入式系统-单一用户-多用户
- 对称多处理并行计算(SMP)-集群(Cluster)-分布式计算
- 操作系统列表
- 64位操作系统
- 计算机科学课程列表
部分操作系统
- FreeBSD
- MS-DOS
- GNU/Linux
- Mac OS
- Windows
- Windows NT
- UNIX
- 其他操作系统
外部链接
-
als:Betriebssystem
ja:オペレーティングシステム
ko:운영 체제
ms:Sistem pengoperasian
simple:Operating system
th:ระบบปฏิบัติการ
zh-min-nan:Chok-gia̍p hē-thóng
Windows
Microsoft Windows(微软视窗)是一个为个人电脑和服务器用户设计的操作系统。它的第一个版本由微软公司发行--1985年,并最终获得了世界个人电脑操作系统软件的垄断地位。所有最近的Windows都是完全独立的操作系统。
Windows家族
1985年
1985年
Windows这个词用于一系列不同的产品,它们可以划分为一些四个类别:
- 16位操作环境:这些产品只是提供了一个图形用户界面或桌面,还要有一个独立的操作系统提供必要的服务,例如读取磁盘服务、显示器和键盘的输入等等。这个系列的产品包括Windows 1.0(1985年)、Windows 2.0(1987年)以及它的近似产品Windows 286和Windows 386、Windows 3.0和Windows 3.1。它们都不能脱离DOS运行。
- 混合的16/32位操作环境:这个系列的Windows是16位的Windows的升级版本,仍然需要DOS操作系统才能运行,但是由于和微软的MS-DOS组件整合在一起作为一个整体来发售,这样就不用再单独购买MS-DOS以运行Windows了。这个系列包括Windows 95(第一版发行于1995年,后来的改进版本发行于1996年和1997年),以及三个版本的Windows 98(1998年、1999年和2000年)。这三个版本最终发展成为Windows ME。但是它作为Windows 98家族的资格并没有在广告上出现。
- 32位操作系统环境:起初是为更高性能的商业市场设计而编写的独立的32位操作系统。这个系列包括Windows NT 3.1(1992年)、NT 3.5、NT 3.51、NT 4.0、Windows 2000和Windows XP等。
- 64位操作系统环境:最新的Windows版本开始采用64位操作系统环境,虽然不管是Intel的EM64T还是AMD的x86-64在本质上都是一种32位扩展指令集,兼容英特尔的EM64T扩展指令集和AMD的x86-64指令集(Intel的EM64T其实是其兼容指令集)。这个系列的产品包括Windows XP 64位版和Windows Server 2003 64位版。IA-64是Intel的安腾处理器使用的完全不同的纯64位RISC指令集,在32位兼容模式下性能极为低下而且基本不兼容现有的x86软件,故和现有桌面平台所谓的64bit指令集是完全不同的概念,Microsoft仅仅有Windows 2000 Advanced Server Limited Edition这个限量版的基于IA-64指令集的系统和一个非常罕见的Windows2003Sever for IA-64版本。
Windows的發展史
Windows起源可以追溯到Xerox公司所進行的研發工作。1970年,美國Xerox公司成立了著名的研究機構Palo Alto Research Center(PARC),從事區域網路、雷射印表機、圖形使用者介面(Graphic User Interface,縮寫:GUI)和物件導向(Object-Oriented)技術的研究,並於1981年宣佈推出世界上第一個商用的GUI系統:Star 8010工作站。但由於種種原因,此技術上的領先並未得到充份的重視,也沒有進一步做商業化的應用。
然而Apple Computer公司的創始人之一Steve Jobs在參觀Xerox公司的PARC研究中心後,認識到了GUI的重要性以及廣闊的市場前景,於是開始著手進行自己的GUI系統研發工作,並於1983年研發成功第一個GUI系統:Lisa。不久,Apple又推出第二個GUI系統:Macintosh,這是世界上第一個成功的商用GUI系統。Apple公司在開發Macintosh時,出於市場戰略上的考量,只開發了能於Apple公司自己的電腦上作運作的GUI系統,但當時,基於Intel x86微處理器晶片的IBM兼容電腦已漸露頭角,因此就給了Microsoft公司所開發的Windows生存空間和市場。
Intel x86Microsoft公司早就意識到建立業界標準的重要性,在1983年春季就宣佈開始研究開發Windows,希望它能夠成為基於Intel x86微處理晶片電腦上的標準GUI操作系統。它在1985年和1987年分別推出Windows 1.03版和Windows2.0版。但是,由於當時硬體和DOS操作系統的限制,這兩個版本並沒有取得很大的成功。此後,Microsoft公司對Windows的RAM管理、GUI做了重大改進,使GUI更加美觀並支持虛擬記憶體。Microsoft於1990年5月份推出Windows 3.0並一炮而紅。這個「千呼萬喚始出來」的操作系統一面世便在商業上取得驚人的成功:不到6周,Microsoft公司銷出了50萬份Windows 3.0,打破了任何軟體產品的6周銷售記錄,從而一舉奠定了Microsoft在操作系統上的壟斷地位。後來更因此在1994年時被Apple公司控告侵權,展開了著名的“look and feel”訴訟官司。
自Windows 95和Windows NT4.0以來,這個系統最明顯的特徵是桌面。微軟設計的桌面大大改變了人機交流的界面,使得更多普通的任務只需要少量的電腦知識就可以勝任了,甚至一些比較複雜的任務。但是Windows界面也使得用戶和計算機的內部工作隔離開來,使得用戶控制和設置計算機變得更加困難(這或多或少是由於現代操作系統功能和復雜性不斷增長以及不斷有大量低水平的電腦人員的增長所帶來的必然)。
Windows獲得了巨大的市場成功。估計現在有90%的個人電腦使用這個系統。但是用戶也很難選擇其它的操作系統,因為在他們花錢購買電腦的時候他們的電腦已經有了Windows系統,而他們必須刪除了Windows之後纔能安裝別的系統(通常是免費的系統)。因此,無論是它的市場佔有率或為了實現保持市場主導位置的活動都是極富爭議性的。
Windows XP和Windows Server 2003是現在最新的Windows版本。Windows Server 2003有四個版本:Windows Server 2003 Web服務器版本(Web Edition)、 Windows Server 2003標准版(Standard Edition)、 Windows Server 2003企業版(Enterprise Edition)以及Windows Server 2003數據中心版(Datacenter Edition)。Web Edition主要是為網頁服務器(web hosting)設計的,而Datacenter是一個為極高端系統使用的。標准和企業版本則介於兩者中間。
Windows CE系統是1996年開始設計的一款專門針對嵌入式設備設計的操作系統,最開始的時候微軟打算在Windows 98和Windows NT的基礎上修改,但是項目進行不順利,後來經過全新設計產生了Windows CE系列產品其中包括後來的PocketPC以及Smartphone,嚴格的說Windows CE只是一個操作系統的核心,在這個核心的基礎上發展了針對不通設備的不同版本的操作系統。
微軟有一系列主動的計劃:.NET,Palladium以及Windows Vista(开发代号Longhorn)操作系統。有人認為.NET和Windows Vista是微軟希望從Windows中轉移開來。有人推想這樣將可能幫助微軟避免遭到像反托拉斯那樣的後果。也可以宣稱微軟的下一代產品將是全新的產品,而不是Windows的後續版本。
为特殊设备设计的版本
- 为个人数字助理设计的Pocket PC。
- 为移动电话设计的Smartphone。
- 为笔记本电脑及触摸式屏幕设计的Tablet PC。
- 为DEC Alpha、IBM PowerPC和MIPS systems设计的Windows NT。(在2000年后都废止了)
- 为掌上电脑设计的Windows CE。
- 为家庭媒体中心设计的Windows XP Media Center Edition
- 為XBOX遊戲機設計的版本,名為 Dashboard,但實為 Windows 2000修改而成。
参看
- 微软
- Microsoft Windows的历史
- Windows API
- Windows XP 常用快速鍵列表
- .NET Framework
- 硬件:WinHEC
- 操作系统列表
- Linux
- Unix
- Mac OS X
- ReactOS
Category:操作系统
Category:視窗系統
ja:Microsoft Windows
ko:마이크로소프트 윈도우즈
ms:Microsoft Windows
simple:Microsoft Windows
th:ไมโครซอฟท์วินโดวส์
zh-min-nan:Microsoft Windows
API编程接口,简称API(Application Programming Interface),就是软件系统不同组成部分衔接的约定。
随着软件规模的日益庞大,我们需要把复杂系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API在各语言中的表达方式
[Public|Private] Declare Function|Sub name Lib "libname" [Alias "aliasname"](Byval] variable [As type][,[Byval] variable [As type...]) [As type]
dffgffgghgbhg
[DllImport("libname", 'Named Parameters')]
[public|private|internal] [Type] FunctionName(Type parameter1,Type parameter2...);
参看
- 软件工程
----
Category:程序设计
Category:计算机语言
ja:Application Programming Interface
ko:API
UNIXUNIX是一个强大的多用户,多任务操作系统,支持多种处理器架构,最早由Ken Thompson,Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。
简介
Ken和Dennis最早是在贝尔实验室开发UNIX的,此后的10年,UNIX在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将UNIX源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的UNIX“变种(Variations)”,这些变种反过来也促进了UNIX的发展,其中最著名的变种之一是由加州大学Berkeley分校开发的BSD产品。
后来AT&T意识到了UNIX的商业价值,不再将UNIX源码授权给学术机构,并对之前的UNIX及其变种声明了版权权利。为了不和AT&T的版权冲突,BSD产品在版本3之后将代码进行了重写,BSD产品在此之后不再包括有版权的UNIX代码。BSD在发展中也逐渐衍生出3个主要的分支:FreeBSD,OpenBSD和NetBSD。
此后的几十年中,UNIX仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。UNIX的版权曾经为AT&T所有,之后Novell拥有了UNIX,再之后Novell又将版权出售给了SCO(这一事实双方尚存在争议)。有很多大公司在取得了UNIX的授权之后,开发了自己的UNIX产品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。
UNIX因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用,与此形成对比的是,在桌面和个人计算领域,微软的Windows系列和苹果电脑的Mac OS系列产品占据了绝大部分市场!
历史
初创期
UNIX的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。
AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。
在Dennis Ritchie的帮助下,Thompson用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thompson和Ritchie领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,这个项目被称为UNICS(Uniplexed Information and Computing System),因为它可以支持同时的多用户操作。后来这个名字被改为UNIX。
发展期
最初的UNIX是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973年Thompson和Ritchie用C语言重写了UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以Thompson和Ritchie此举是极具大胆创新和革命意义的。用C语言编写的UNIX代码简洁紧凑,易移植,易读,易修改,为此后UNIX的发展奠定了坚实基础。
1974年,Thompson和Ritchie合作在ACM通信上发表了一片关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。
1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了Plan 9的出现,这是一个新的分布式操作系统。
1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。
这个新的UNIX商业发布版本不再包含源代码,所以加州大学Berkeley分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及 4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX 和Microsoft Windows。
其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,Bill Joy,在BSD基础上开发了SunOS,并最终创办了Sun Microsystems。
1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz 和 Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz 离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSD、OpenBSD 和 NetBSD的先辈。
AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。
1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。
现况
UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了Open Group。Open Group定义的多个标准定义着什么是以及什么不是UNIX。
实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。
1127部門的解散
根據一項[http://www.unixreview.com/documents/s=9846/ur0508l/ur0508l.html 報導]指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已於2005年8月正式宣告解散。已退休,現居加州;調到別的部門;在達特茅斯學院擔任教授等等。
标准
从20世纪80年代开始,POSIX,一个开放的操作系统标准就在制定中,IEEE制定的POSIX标准现在是UNIX系统的基础部分。
自由的类UNIX系统
Richard Stallman建立了GNU项目,要创建一个能够自由发布的类UNIX系统。20年来,这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目开发的产品,比如Emacs,GCC等已经成为各种其他自由发布的类UNIX产品中的核心角色。
1990年,Linus Torvalds決定編寫一個自己的Minix內核,初名為Linus' Minix,意為Linus的Minix內核,後來改名為Linux,此內核於1991年正式发布,并逐渐引起人们的注意。当GNU软件与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经成为发展最为活跃的自由/开放源码的類UNIX操作系统。
1994年,BSD UNIX走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD, OpenBSD和NetBSD的出现。
-
Category:操作系统
ja:UNIX
ko:유닉스
ms:UNIX
simple:Unix
th:ยูนิกซ์
Linux:本文内容是关于基于Linux的操作系统,GNU/Linux和相关主题的。请参照Linux内核以获得和内核本身相关的内容。
:Linux也是一颗小行星的名字,请参阅小行星9885。
Linux是一种计算机操作系统和它的内核的名字。它也是自由软件和开放源代码发展中最著名的例子。
严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和資料庫的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。
Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。
在开始的时候,Linux只是个人狂热爱好的一种产物。但是现在,Linux已经成为了一种受到广泛关注和支持的一种操作系统。包括IBM和惠普在内的一些计算机业巨头也开始支持Linux。很多人认为,和其他的商用Unix系统以及微软Windows相比,作为自由软件的Linux具有低成本,安全性高,更加可信赖的优势。
小行星9885是以Linux的名字命名的。
歷史
Linux內核最初只是由芬蘭人Linus Torvalds在赫爾辛基大學上學時出於個人愛好而編寫的。最初的設想中,Linux是一種類似Minix這樣的一種操作系統。Linux的第一個版本在1991年9月被--發布在Internet上,隨後在10月份第二個版本就發布了。
Linux的歷史是和GNU緊密聯系在一起的。從1983年開始的GNU計劃致力於開發一個自由並且完整的類Unix操作系統,包括軟件開發工具和各種應用程序。到1991年Linux內核發布的時候,GNU已經幾乎完成了除了系統內核之外的各種必備軟件的開發。在Linus Torvalds和其他開發人員的努力下,GNU組件可以運行於Linux內核之上。整個內核是基於GNU通用公共許可,也就是GPL(GNU General License)的,但是Linux內核並不是GNU 計劃的一部分。
Linux的標志和吉祥物是一只名字叫做Tux的企鵝,Linux的注冊商標是Linus Torvalds所有的。這是由於在1996年,一個名字叫做William R. Della Croce的律師開始向各個Linux發布商發信,聲明他擁有Linux商標的所有權,並且要求各個發布商支付版稅,這些發行商集體進行上訴,要求將該注冊商標重新分配給Linus Torvalds。
Linux的某些版本是不需要安裝就能使用的版本,他們稱為LiveCD
应该怎么读Linux?
根据Torvalds的说法,Linux的发音和“Minix”是押韵的。
参照[http://www.shortfamilyonline.com/tech/unix/history-of-linux/reference/23-Apr-1992-re-how-to-pronounce-linux.html],“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“put”中“u”的发音。
此外在[http://www.paul.sladen.org/pronunciation/]有一份Torvalds本人说话的音频,音频内容为“Hello, this is Linus Torvalds, and I pronounce Linux as Linux”。
大致和“利讷克斯”的音类似(注意不是利纳克斯、利牛克斯、利努克斯或者利尼克斯)。
请大家按照['linэks]这个音标读。
音频文件地址:Media:http://zhaolinux.com/down/torvalds-says-linux.mp3
Linux发行版
Linux发行版(Linux distribution)指的就是我们通常所说的“Linux操作系统”,它可能是由一个组织,公司或者个人发行的。通常来讲,一个Linux发行版包括Linux内核,将整个软件安装到计算机上的一套安装工具,各种GNU软件,其他的一些自由软件,在一些特定的Linux发行版中也有一些专有软件。
你可以通过访问http://shots.osdir.com/找到一些特定发行版的截图。
- Magic Linux
- Conectiva Linux
- Debian GNU/Linux
- Fedora Core
- Gentoo Linux
- Knoppix Linux
- Mandriva Linux
- Red Hat Linux
- Slackware Linux
- SUSE Linux
- Turbo Linux
- Ubuntu Linux
- Linux From Scratch
- Asianux
- B2D Linux
参见
- Linux操作系统
- GNU/Linux
- Linux套件列表
- Linus Torvalds
- GNU
- Tux
- 操作系统
- 操作系统列表
Linux资源
- [http://sourceforge.net/index.php 开源软件大厅]
- [http://www.tldp.org Linux文档计划]
- [http://www.kernel.org Linux内核官方网站]
- [http://www.linux.org Linux新闻]
- [http://www.freshmeat.net Linux程序下载中心]
- [http://www.linux.com Linux.com]
- [http://www.linuxwiki.org Linux Wiki]
- [http://www.linux-wiki.com Linux-wiki.com]
- 紅旗Linux(Redflag Linux)
- 衝浪Linux(Xteam Linux)
- 藍點Linux
- Hiweed Debian GNU/Linux
- Magic Linux
- Engineering Computing GNU/Linux
- Open Desktop
- 新華Linux
- 麒麟Linux
- 共創Linux
- 百資Linux
- 中標普華Linux
- 中軟Linux
- 新華華鐳Linux(RaysLX)
- CD Linux
- MC Linux
- 即時Linux(Thizlinux)
- b2d linux
- IBOX
- MCLOS
- FANX
中國大陆Linux社区网站资源
- [http://www.linuxsir.org Linuxsir.org]
- [http://www.linuxfans.org 中国Linux公社]
- [http://www.linuxforum.net 中国Linux论坛]
- [http://www.linuxedu.net 中国Linux教育网]
- [http://linux.chinaunix.net/ 中国UNIX社区-Linux时代]
- [http://www.lupa.gov.cn 开源高校推进联盟]
- [http://www.linuxdby.com Linux大本营] [http://www.linuxdby.com 简体版] [http://big5.linuxdby.com 繁体版]
- [http://www.linuxeden.com Linux依甸园]
- [http://www.linuxaid.com.cn 中国Linux技术中坚站]
- [http://freeway.linuxsir.org FreeWay 自由之路原创文档小组]
- [http://freewill.linuxsir.org FreeWill 自由意志翻译小组]
- [http://gentoo.linuxsir.org/doc/cn/ Gentoo 中文文档集散地]
- [http://lfs.linuxsir.org LFS 中文用户小组]
- [http://www.fcitx.org Fcitx 小企鹅输入法]
- [http://linux.pku.edu.cn 北京大学Linux俱乐部]
- [http://fsa.ia.ac.cn 中科院自动化研究所自由软件协会]
- [http://www.gnome-cn.org 中文 GNOME 用户门户网站]
- [http://linux.hiweed.com 海微 Hiweed-Debian Linux]
- [http://www.linuxdby.com/blog.php Linux Blog]
- [http://wqy.sourceforge.net 文泉驿中文字体计划]
- [http://www.linuxren.org LinuxRen专注与内核]
台灣Linux社群網站資源
- [http://linux.vbird.org/ 鳥哥的Linux 私房菜]
- [http://www.linux.org.tw/ Taiwan Linux User Group]
- [http://blog.linux.org.tw/ Taiwan Linux Blog Center]
- [http://cle.linux.org.tw/ Linux中文延伸套件]
- [http://www.gentoo.org.tw/ Gentoo@台灣]
- [http://b2d.tnc.edu.tw/ B2D中文Linux計劃]
- [http://wiki.debian.org.tw/index.php/Main_Page Debian Wiki]
- [http://knoppix.tnc.edu.tw/ Knoppix中文交流網]
- [http://planet.debian.org.tw/ Planet DebianTW]
- [http://moto.debian.org.tw/ 摩托學園討論區]
- [http://wiki.tossug.org/ Taipei Open Source Software User Group]
- [http://www.study-area.org/menu2.htm Study-Area]
- [http://www.openfoundry.org/ 自由軟體鑄造場]
- [http://www.study-area.org/ Study Area 酷學園]
- [http://mdk.linux.org.tw/ Mandriva(Mandrake)中文使用開發者社群]
香港Linux社群網站資源
- [http://www.oaka.org/ 開放系統研用協會]
- [http://www.linuxhall.org Linux Hall Online Project 資訊網]
- [http://www.openstandards.org.hk/ 開源標準科技協進會]
- [http://www.openstandards.org.hk/pages/os_article.htm 開源科技雜誌 OSS Journal]
- [http://www.hklia.com/ HKLIA 香港 Linux 商會]
- [http://www.hklpg.org/ HKLPG 香港 Linux 玩家網]
- [http://www.linux.org.hk/ HKLUG 香港 Linux 用家協會]
- [http://wiki.linux.org.hk/ OSWikiHK (香港開源維基)]
- [http://elig.linux.org.hk/ Embedded Linux Interest Group]
- [http://gnome.hk/ GNOME Hong Kong]
- [http://www.debian.org.hk/ Debian Hong Kong]
- [http://www.samba.hk/ Samba Hong Kong]
- 【[http://freefonts.oaka.org/index.php/HKSCS_install 香港增補字符集 2001] for Linux】
中国Linux社区IRC资源
- PCHOME #Unix IRC: irc.pchome.net 6667 #unix #geekbone.
- 中国Linux公社 IRC: irc.linuxfans.org 6667~6669 7000 #linuxfans #linuxer etc.
- LinuxFire IRC: linuxfire.dhis.org 6667 #linuxfire #pda #gondson2 #80s
- LinuxSir IRC: www.linuxsir.org 6667~6669 7000 #debianer #gentooer #chatroom etc.
- 北大Linux俱乐部IRC: linux.pku.edu.cn 6667 #club
Category:Linux
Category:操作系统
ja:Linux
ko:리눅스
ms:Linux
simple:Linux
th:ลินุกซ์
硬盘
硬盘是电脑上使用使用坚硬的旋转盘片为基础的存储设备。它在平整的磁性表面存储和检索数字数据。信息通过离磁性表面很近的写头,由电磁流来改变极性方式被电磁流写到磁盘上。信息可以通过相反的方式回读,例如磁场导致线圈中电气的改变或读头经过它的上方。
硬盘按数据接口不同,大致分为ATA和SATA以及SCSI。
ATA全称Advanced Technology Attachment,是用传统的 40-pin 并口数据线连接主板与硬盘的,外部接口速度最大为133MB/s,因为并口线的抗干扰性太差,且排線佔空間,不利電腦散熱,將逐漸被 SATA 所取代。
SATA,全称Serial ATA,也就是使用串口的ATA接口,因抗干扰性强,且对数据线的长度要求比ATA低很多,支持热插拔等功能,已越来越为人所接受。SATA-I的外部接口速度已达到150MB/s,SATA-II更将为是300MB/s,SATA的前景很广阔。
SCSI,全稱為Small Computer System Interface,歷經多世代的發展,從早期的 SCSI-II,到目前的 Ultra320 SCSI 以及 Fiber-Channel (光纖通道),接頭型式也有多種。SCSI 硬碟廣為工作站級個人電腦以及伺服器所使用,因為它的轉速快,可達 15000 rpm,且資料傳輸時佔用 CPU 運算資源較低,但是單價也比同樣容量的 ATA 及 SATA 硬碟昂貴。
发展史
- 1956年IBM的IBM 350 RAMAC是现代硬盘的雏形,它相当于两个冰箱的体积,不过其存储容量只有5MB。1973年IBM 3340问世他拥有“温彻斯特”这个绰号,来源于他两个30MB的存储单元,恰是当时出名的“温彻斯特来复枪”的口径和填弹量。至此,硬盘的基本机构被确立。
- 1980年,两位前IBM员工创立的公司开发出5.25英寸规格的5MB硬盘,这是首款面向台式机的产品,而该公司正是先进的希捷(SEAGATE)公司。
- 80年代末,IBM公司推出MR(Magneto Resistive磁阻)技术令磁头灵敏度大大提升,使盘片的存储密度较之前的20Mbpsi(bit/每平方英寸)提高了数十倍,该技术为硬盘容量的巨大提升奠定了基础。1991年,IBM应用该技术推出了首款3.5英寸的1GB硬盘
- 1995年,为了配合Intel的LX芯片组,昆腾与Intel携手发布UDMA 33接口——EIDE标准将原来接口数据传输率从16.6MB/s提升到了33MB/s 同年,希捷开发出液态轴承(FDB,Filuid Dynamic Bearing)马达。所谓的FDB就是指将陀螺仪上的技术引进到硬盘生产中,用厚度相当于头发丝直径十分之一的油膜取代金属轴承,减轻了硬盘噪音与发热量
- 1970年到1991年,硬盘盘片的存储密度以每年25%~30%的速度增长;从1991年开始增长到60%~80%;至今,速度提升到100%甚至是200%从1997年开始的惊人速度提升得益于IBM的GMR(Giant Magneto Resistive,巨磁阻)技术,它使磁头灵敏度进一步提升,进而提高了存储密度
- 1998年2月,UDMA 66规格面世但是IBM与昆腾并未抓住UDMA 66接口换代的良机,自此,希捷、迈拓、西部数据走向了光明,而IBM、昆腾走向了独木桥
- 在昆腾被收购后,IBM于2002年6月将硬盘部转手给日立(HITACHI)
- 2004年希捷开创了磁盘垂直记录技术,实现了存储密度100Gbpsi的惊人纪录,该原理是将平行于盘片的磁场方向改变90度变为垂直,更充分的利用的存储空间
SCSI
外部連結
硬盤製造商
- [http://www.seagate.com/ Seagate Technology] 提供桌上型之 IDE 及 SCSI 硬盤。
- [http://www.wdc.com Western Digital] (簡稱 WD) 提供桌上型及筆記本 IDE 介面硬盤。
- [http://www.fujitsu.com/global FUJITSU] 提供桌上型 SCSI 介面及筆記本 IDE 介面硬盤。
- [http://www.hitachi.com/ HITACHI] 提供桌上型 SCSI 及 IDE 介面硬盤,以及筆記本 IDE 介面硬盤;之前收購 IBM 硬盤部門。
- [http://www.maxtor.com/ Maxtor] 提供桌上型 IDE 介面硬盤。
- [http://www.samsung.com/ SAMSUNG] 提供筆記本 IDE 介面硬盤。
Category:電腦儲存
ja:ハードディスクドライブ
ko:하드 디스크
ms:Cakera keras
th:ฮาร์ดดิสก์ Diputació de Barcelona
La província de Barcelona és la més poblada de les quatre de la Comunitat Autònoma de Catalunya, i la seva capital és Barcelona.
La província hi conté nombroses ciutats: Barcelona (1.582.738 habs.), L'Hospitalet de Llobregat (246.415 habs.), Badalona (214.440 habs.), Sabadell (191.057 habs.), Terrassa (184.829 habs.), Santa Coloma de Gramenet (116.012 habs.), Mataró (111.879 habs.), Cornellà de Llobregat (82.817 habs.), Sant Boi de Llobregat (80.738 habs.), Manresa (67.269 habs.), Rubí (64.848 habs.), El Prat de Llobregat (63.312 habs.), Sant Cugat del Vallès (63.132 habs.), Viladecans (59.343 habs.), Vilanova i la Geltrú (57.300 habs.), Granollers (55.913 habs.), Cerdanyola del Vallès (55.731 habs.), Castelldefels (52.405 habs.), i Mollet del Vallès (50.001 habs.).
Conté les següents comarques:
- Alt Penedès
- Anoia
- Bages
- Baix Llobregat
- Barcelonès
- Berguedà
- Garraf
- Maresme
- Osona
- La Selva (nomès parcialment)
- Vallès Occidental
- Vallès Oriental
Vegeu també el llistat de municipis de Barcelona
Categoria:Província de Barcelona
gry strategiczne snowboard w austrii dieta tablice accommodation in valencia
|
|
|
| :: RELATED NEWS :: |
Rui Díaz de Bívar
Herói espanhol nascido em Burgos, seu verdadeiro nome era | |