linux和unix是系统软件吗(unix是操作系统软件吗)

linux和unix是系统软件吗(unix是操作系统软件吗),第1张

linux和unix有什么区别啊?unix开源么?

真正意义上的Unix系统已经不存在了

现在所谓的Unix或Unix-Like系统都是继承了一部分的Unix(有的继承了部分代码,有的则只集成了一些特点而没有继承代码)

Linux是荷兰学生Linus在1991年的时候,参考Unix的结构特点(只是结构特点,没有参考哪怕一行的代码)自己写出的一个操作系统。属于最典型的Unix-Like系统(“类Unix”系统,即和Unix相似,但不是Unix)

其他的主要的Unix-Like系统还有SUN的Solaris系统,伯克利的BSD系列系统(包括FreeBSD、NetBSD、OpenBSD)以及继承自FreeBSD的苹果MacOS系统,用于教学的Minix系统等

以上列举出的所有Unix-Like系统都是开源的(Solaris和Mac不完全开源,但Solaris有个完全开源版叫OpenSolaris,只不过现在SUN公司被Oracle收购后这个开源版已不更新了),但唯独原版的Unix是典型的商业软件,完全不开源

需要注意的是:

1Linux系统从来就不算Unix的一种!和其他Unix-Like系统不同,他一行Unix的代码都没有用,完全是Linus本人自己写的代码,只是借鉴Unix系统优秀的系统构架

2Linux只是个系统内核,纯Linux是没法用的。需要加入其他的东西才能成为一个完整的操作系统。所以现在有各种各样的“发行版”,主要的有Ubuntu、Fedora、Redhat、SUSE等

在使用上有什么区别呢?

因为真正的Unix没有了,而Linux也只是个内核,所以没法说使用上有什么区别

就连Linux各个发行版的使用方法都不尽相同

但都是一理的,所有Unix-Like系统中只要学会一种,其他的就都不会太难学了

软件通用么?

大体上通用,有时会有些许差别,但少量修改就可以移植

Windows、Linux、UNIX、Dos操作系统的核心代码大部分是使用C和C++编写,底层接口用汇编编写.

以windows为例,根据几年前微软在美国公布的内容,WINDOWS本身属于微内核系统,WINDOWS98总共大概不到10万行代码,而WINDOWS2000则已经有20余万行代码,其中80%是用C++编写,其余部分有C和汇编,底层接口用汇编编写。

微内核系统从概念上是指“只包括操作系统的基本功能,例如内存管理和进程管理等等”,就连对各个文件系统的支持也不算在内.

所以一个微内核系统的操作系统能够有20万行代码已经很多了。

之所以微软选择了C++而不想LINUX一样选择C,其根本原因就是WINDOWS操作系统本身是微内核系统,所以扩展性及以后的维护要求非常重要,所以C++的类的概念就能在这里很好的利用,但是毕竟C++的效率不如标准C及汇编,所以在一些明显以效率为重的地方用的还是标准C及汇编。

编写完毕后,WINDOWS上的其他用户态程序(包括所有驱动程序、计算器、游戏等等所有你现在拿鼠标能够操作的东西)另行开发,例如:扫雷游戏就是用VB写的。

UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。

最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

Unix 操作系统因其开放性、可移植性、多用户多任务以及稳定性等特点,加上本身强大的网络通讯功能,被广泛的应用在各主要行业中  。

UNIX用户协会最早从20世纪80年代开始标准化工作,1984年颁布了试用标准。后来IEEE为此制定了POSIX标准(即IEEE1003标准)国际标准名称为ISO/IEC9945它通过一组最小的功能定义了在UNIX操作系统和应用程序之间兼容的语言接口。

扩展资料

1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。

1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。

20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。

1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。

这个新的UNIX商业发布版本不再包含源代码,所以加州大学柏克莱分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。

BSD有8个主要的发行版中包含了TCP/IP:41c、42、43、43-Tahoe、43-Reno、Net2、44以及44-lite。

这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX和Microsoft Windows。

其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,比尔·乔伊,在BSD基础上开发了SunOS,并最终创办了升阳公司。

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、DragonFlyBSD的先辈。AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。

-unix

1969年,AT&T贝尔实验室的KenThompson希望根据PDP 7上十分成熟的MULTICS操作系统生成一个简化的单用户版本,并根据单用户(Uno)的字头和“MuItlX”的字尾,为这种新的操作系统取名Unix,后来又由Dennis Ritchie作了大量的改进。1974年,Unix发展成为一种运行效率很高的操作系统,在科研和教育领域十分盛行。AT&T将Unix源代码向教学科研机构公开,更使其成为“开放系统”的同义语。

在科研、教育和商业机构,Unix都是非常流行的操作系统平台,被广泛用于客户机/服务器和交互事务处理等关键任务环境。Unix的许多成分,如TCP/lP、SMTP、NFS、NIS和X Window都是当今网络环境特别是Internet中事实上的标准。

由于各个硬件厂商推出的Unix版本是各不相同的,这给系统之间的互操作带来一些麻烦。开发者们一直在期盼统一的Unix应用程序编程接口,IBM、Intel和SCO正在致力于统一Unix的计划——Monterey,很多企业正积极加入这一计划,但它是否真的能一统Unix天下,人们还在观望。

区别:

1、开源情况

UNIX 是商业化的,而 Linux 是开源的,是免费、公开源代码的。

2、硬件适用

UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在 x86 服务器和个人计算机上的,而 Linux则可以运行在多种硬件平台上。

可以先学习linux后再学习unix,因为linux可以方便的在虚拟机上运行,防止新手的误操作。而在发行版本上可以选择Ubuntu、Linux Mint等。

扩展资料

unix诞生

1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。

直到1969年,因MULTICS计划的工作进度太慢,该计划被停了下来。当时,Ken Thompson(后被称为UNIX之父)已经有一个称为"星际旅行"的程序在GE-635的机器上跑,但是反应非常慢,正巧被他发现了一部被闲置的PDP-7(Digital的主机),

Ken Thompson和Dernis Ritchie就将"星际旅行"的程序移植到PDP-7上。而这部PDP-7(如图1-1所示)就此在整个计算机历史上留下了芳名。

MULTICS其实是"Multiplexed Information and Computing Service"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:

"UNiplexed Information and Computing Service",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年可称为"UNIX元年"。

Linux基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。

至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。

正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

完全兼容POSIX10标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。

许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

-unix

-linux

downloadlinuxsirorg/ebook/unix/%c0%b3%b0%ba%ca%cfUNIX%d4%b4%b4%fa%c2%eb%b7%d6%ce%f6/

这个地址里有PDF格式的,打开后如果有乱码可以在浏览器的编码设置那里设成简体中文gb18030

ishareiasksinacomcn/f/9327370htmlfrom=dl你也可以下这个

一、概述

标准 UNIX 操作系统是一个交互式的分时系统,提供了一个支持程序开发全过程的基础和环境,可以支持40个终端用户。UNIX系统是由美国电报电话公司(AT&T)下属的Bell实验室的两名程序员K汤普逊(Ken Thompson)和D里奇(Dennis Ritchie)于1969~1970年研制出来的。UNIX问世以来十分流行,它运行在从高档微机到大型机各种具有不同处理能力的机器上。目前,UNIX除了可在PDP-11 、DEC公司的VAX-11系统的各种机型上运行之外,还可以在IBM的370、3300系列机和Amdahi公司、Data General公司、Hp公司的系列机上。近年来,几乎所有的16位机、32位微型计算机都竞相移植UNIX。这种情况在操作系统发展的历史上是极为罕见的。随着UNIX的普及,书写系统的C语言也成为引人注目的语言,得到广泛使用。

UNIX系统获得了巨大的成功,这有着内在的原因和客观的因素。客观条件之一是,UNIX问世之前己有许多操作系统研制成功,其中有成功的经验,也有失败的教训,而UNIX的设计者正是经过认真考虑,作了适当的取舍,使UNIX站在前人肩头上获得成功(MULTICS用了200人年未达到原定目标,UNIX只用了2个人年);其二是,由于当时人们需要一个使用方便、能提供良好开发环境、大小适中的系统,UNIX恰是生逄其时;其三是,UNIX是在PDP-11系列机上开发出来的,这种机器在世界上己得到广泛应用,这为UNIX广泛配置创造了条件。当然,UNIX成功的关键是在于自身的性能和特点。

UNIX的主要特点是:短小精悍、简易有效、并具有易理解、易扩充、易移植性。

UNIX的核心程序由约10000行C语言代码和1000行汇编语言代码构成,被分成能独立编译和汇编的44个文件,每个文件又分若干过程。这些文件可分以下三类:

⑴汇编语言文件:系统只有2个文件用汇编语言编程,包含33个汇编子程序,与机器硬件直接相关的部分,如中断处理、系统启动等,为了提高效率,有些频繁使用的基本过程,也用汇编语言编写。

⑵C语言文件:共有28个,其中包括进程管理的主要过程,它们又可分成190个子程序 。文件可以独立编译,经装配程序连接装配后就可执行。

⑶C语言全局变量文件:共14个,其中含有结构的重要说明。这类文件不能独立编译,而必须和某个C语言文件一起编译。

二、UNIX操作系统的主要特点

1精巧的核心与丰富的实用层

UNIX系统在结构上分成内核层和实用层。核心层小巧,而实用层丰富。核心层包括进程管理、存储管理、设备管理、文件系统几个部分。UNIX核心层设计得非常精干简洁,其主要算法经过反复推敲,对其中包含的数据结构和程序进行了精心设计。因此,核心层只需占用很小的存储空间,并能常驻内存,以保证系统以较高的效率工作。

实用层是那些能从核心层分离出来的部分,它们以核外程序形式出现并在用户环境下运行 。这些核 外程序包含有丰富的语言处理程序。UNIX支持十几种常用程序设计语言的编译和解释程序,如C、APL、FORTRAN77、PASCAL、SNOBOL、COBOL、BASIC、ALGOL68等语言及其编译程序。还包括其他操作系统常见的实用程序,如编辑程序、调试程序、有关系统状态监控和文件管理的实用程序等。UNIX还有一组强有力的软件工具,用户能比较容易地使用它们来开发新的软件。这些软件工具包括:用于处理正文文件的实用程序troff,源代码控制程序SCC

S(Source Code Control System),命令语言的词法分析程序和语法分析程序的生成程序LEX(Generator of Lexical Analyzers)和YACC(Ye

t Another Compiler Compiler)等。另外,UNIX的命令解释程序Shel

l也属于核外程序 。正是这些核外程序给用户提供了相当完备的程序设计环境。

UNIX的核心层向核外程序提供充分而强有力的支持。核外程序则以内核为基础,最终都使用由核心层提供的低层服务,它们逐渐都成了“UNIX系统”的一部分。核心层和实用层两者结合起来作为一个整体,向用户提供各种良好的服务。

2使用灵活的命令程序设计语言Shell

Shell首先是一种命令语言。UNIX 的200多条命令对应着200个实用程序。Shell 也是一种程序设计语言。它具有许多高级语言所拥有的控制流能力,如if、for、while、until、case语句,以及对字符串变量的赋值、替换、传替参数、命令替换等能力。用户可以利用这些功能用Shell语言写出“Shell”程序存入文件。以后用户只要打入相应的文件名就能执行它。这种方法易于系统的扩充。

3层次式文件系统

UNIX系统采用树型目录结构来组织各种文件及文件目录。这样的组织方式有利于辅助存储器空间分配及快速查找文件,也可以为不同用户的文件提供文件共享和存取控制的能力,且保证用户之间安全有效的合作。

4文件和设备统一看待

UNIX系统中的文件是无结构的字节序列。在缺省情况下,文件都是顺序存取的,但用户如果需要的话,也可为文件建立自己需要的结构,用户也可以通过改变读/写指针对文件进行随机存取。

UNIX将外围设备与文件一样看待,外围设备如同磁盘上的普通文件一样被访问、共享和保护。用户不必区分文件和设备,也不需要知道设备的物理特性就能访问它。例如系统中行式打印机对应的文件名是/dev/lp 。用户只要用文件的操作(write)就能把它的数据从打印机上输出。这样在用户面前,文件的概念简单了,使用也方便了。

5良好的移植性

UNIX的所有实用程序和核心的90%代码是用C语言写成的,这使得UNIX成为一个可移植的操作系统。操作系统的可移植性带来了应用程序的可移植性,因而用户的应用程序即可用于小型机,又可用于其他的微型机或大型机。从而大大提高了用户的工作效率。

虽然UNIX系统取得了巨大的成功,但它也不是没有缺点的。概括起来,对UNIX的批评有如下几点:

1UNIX系统的版本太多,造成应用程序的可移植性不能完全实现

UNIX是用C语言写成的,因而容易修改和移植。UNIX也鼓励用户用UNIX的工具开发适合自己需要的环境,这样造成了UNIX版本太多而不统一。为了解决这一问题,目前 AT&T己与四家重要的微机厂家(Inte

r,Motorola ,Zilog和National Semiconductor)合作制订统一的UNIX

system V版本,这将会给UNIX的标准化以重大影响。

2UNIX系统缺少诸如实时控制、分布式处理、网络处理能力

这一缺点也在不断改进中,以UNIX为基础的分布式系统和具有实时处理能力的系统己在研制中,有的已研制成功。

3UNIX系统的核心是无序模块结构

UNIX系统的核心有90%是用C语言写成的,但其结构不是层次的,故显得十分复杂,不易修改和扩充。

UNIX系统的这些缺点比起它的成就而言是十分次要的,它的成功是辉煌的。

三、UNIX系统结构

UNIX操作系统采用以全局变量为中心的模块结构,因而系统结构较为复杂,这主要表现在:模块间的循环调用和文件之间的全局变量问题。

从结构上看,UNIX可以分为核心层和外壳层,核心层又分成与硬件接口的设备驱动、物理存储块管理的最低层及实现存储管理、文件管理、设备管理、进程管理等功能的低层。核心的外层是系统调用,它是UNIX核心的对外接口。最外层的Shell是用户与UNIX系统的接口,其他的各种实用程序和用户程序也在这一层运行。

系统结构如图81所示。

1Shell

UNIX提供的用户接口是一种被称为Shell的命令语言,这种命令语言的解释程序也称为Shell 。在系统初始启动时为每个用户建立一个Shell进程,每个Shell进程等待用户输入命令。命令的最简单形式是一个命令行,由命令名和若干参数组成,中间用空格隔开。Shell解释执行命令时,先区分命令名和参数,然后根据命令名找出对应的文件,把文件读入内存,并按给出的参数解释执行。

命令的执行是通过 fork 系统调用来完成的,Shell进程调用for

k后,fork创建一个Shell进程的子进程且让Shell进程等待。子进程解释执行命令,命令执行结束时子进程调用exit系统调用完成终止子进程和释放父进程的工作。Shell进程被释放后,给出允许用户输入下一个命令行的提示,命令的基本执行过程如图82。

UNIX的交互系统要求用户必须等待前一行命令执行结束,在终端上出现提示符后才能输入下一个命令行。由于有些命令的执行时间较长,因此为了减少用户等待时间,在UNIX系统中允许用户使用Shell命令语言编写程序来表示一组命令的执行顺序,用命令语言编写成的程序称Shell程序。Shell程序存放在文件上,需要时由命令解释程序去执行Shell程序中的各个命令。

2系统调用

系统调用是用户程序请求操作系统为其服务的惟一形式,在UNIX中把系统调用称为程序员接口。UNIX规定用户程序用捕俘(trap)指令请求系统服务,UNIX核心中的中断捕俘程序根据trap的类型转向相应的处理程序。Trap指令形式如下:

UNIX第6版共有41条系统调用,可以分成以下三类:

①与进程管理有关的系统调用,如建立子进程、等待子进程、睡眠、发信号、修改数据段大小等。

②与文件管理有关的系统调用,如建立文件、连接文件、打开文件、关闭文件 、读文件 、写文件以及修改当前目录、修改文件属性等。

③其他系统调用,如取当前用户号 、取日历时间 、读取进程运行时间、改变优先数等。

在系统调用中,参数的传递有两种方式。第一种方式:在程序中通过trap指令后继单元传送。这一方式又分为直接方式和间接方式。在直接方式中,允许在trap指令的后继单元中最多可放5个参数;在间接方式中,trap指令的后继单元放的是一个参数区指针,在这个参数区可以存放更多的参数。第二种方式是通过寄存器R0,R1传递参数的。

UNIX的系统程序员界面这包括了大量的库子程序和标题文件。标题文件定义了在系统调用中使用的复杂数据结构;库子程序和库函数为系统调用提供了附加的程序支持。

3存储管理

UNIX系统最初是在 PDP-11 上开发的,PDP-11是段式结构的存储器,在PDP-11中把段称作页,每一页可包含若干块,每块64个字节,主存以块为单位进行分配。

存储分配采用优先适应算法,存储空间使用空闲区表来管理。每表占50项,每项2个单元,一个指向相应空闲区起始块号,另一个指出空闲区大小。表内各项次序按空闲区地址从低到高排列,若有两个相邻空闲区则合并成一个。表项内容为0,表示表尾。

由于PDP-11不支持虚拟存储器,所以UNIX中内存用户区和磁盘对换区的分配和释放由存储管理模块管理。在对换程序的管理下内存用户区和磁盘对换区连成一体,起着虚拟存储器的作用。对换进程扫描PCB表,发现辅存有就绪进程时,查内存是否有空闲区,若有空闲区则直接调入;否则要把内存中某些进程换出,若内存没有可换出进程,则对换进程处于等待状态,直到某些事件发生,唤醒后再度工作。辅存有多个就绪进程时,按先进先出换进内存;内存有多个进程可换出时,则选可换进程中优先数低的进程换出。

当进程要增加页长时,可通过申请新页、释放旧页来实现。若内存无足够空间,则在辅存申请新页,同时将进程整个换到辅存。

欢迎分享,转载请注明来源:表白网

原文地址:https://h5.hunlipic.com/biaobai/4169699.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2024-04-20
下一篇2024-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存