怎么着手学UNIX?

作者&投稿:逯图 (若有异议请与网页底部的电邮联系)
怎么学习UNIX~

UNIX的种类挺多,基础命令大多一样,但是想进一步学习,就得考虑要选择哪个系统了。目前流行的是AIX,HP-UX,Solaris。他们的区别很大。个人建议选择AIX,用的多,不过得买二手设备来学习了,且竞争较大。HP-UX不太建议,现在貌似发展的不好。Solaris也还行,用的人不多了,但是在Oracle下,还有发展机会,并且可以免费试用。不建议使用Linux来学习UNIX,不然深入了之后,会对你产生影响。

Windows和Unix是两个系统,当然不能从Windows进入Unix

你想用的话可以在Windows下装一个VMware(安装包560M)或者VirtualBox(安装包70M左右)的虚拟机软件,在虚拟机里安装Unix系统,这样你在虚拟机里打开Unix系统,就可以联系Unix命令了

不过现在基本用的是Linux的吧,比如Ubuntu这一系统,比较容易使用,不过RedHat是学习Linux比较好的版本

对了,Linux是类Unix系统

一、概述

标准 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的批评有如下几点:

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

UNIX是用C语言写成的,因而容易修改和移植。UNIX也鼓励用户用UNIX的工具开发适合自己需要的环境,这样造成了UNIX版本太多而不统一。为了解决这一问题,目前 AT&T己与四家重要的微机厂家(Inte
r,Motorola ,Zilog和National Semiconductor)合作制订统一的UNIX
system V版本,这将会给UNIX的标准化以重大影响。

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

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

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

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

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

三、UNIX系统结构

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

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

系统结构如图8.1所示。

1.Shell

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

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

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表,发现辅存有就绪进程时,查内存是否有空闲区,若有空闲区则直接调入;否则要把内存中某些进程换出,若内存没有可换出进程,则对换进程处于等待状态,直到某些事件发生,唤醒后再度工作。辅存有多个就绪进程时,按先进先出换进内存;内存有多个进程可换出时,则选可换进程中优先数低的进程换出。

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


power automate如何获取当前的unix时间戳?
在Power Automate中精准获取当前的Unix时间戳是一项关键任务,通过巧妙运用系统功能,我们可以轻松实现这一目标。首先,从UTC时间着手,Power Automate提供了内置的"utcNow()"函数,它能获取到当前的协调世界时(UTC)。然而,值得注意的是,UTC时间并不是直接等于Unix时间戳的,Unix时间戳是以自1970年1月1...

如何学c语言?是不是该多做练习?
2、在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。那么可以在...

Lunix是哪国研发的?
从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。详情请参阅 参考资料:http:\/\/www.ccxx.net\/linux\/lish.htm ...

电脑软件学习需要学习什么?软件开发要学什么?
从何处着手学习、用哪种软件呢?也有很多计算机软件开发速成书,如《24小时学会JAVA》等,从书名看很能吸引人。但从实际效果来看,没有雄厚的编程基础很难学精这些快速入门书籍。一个优秀的程序员也不是十天半个月就能够造就出来的,必须要扎扎实实学好编程基础知识,要经历一个漫长且辛苦的学习和程序...

Linux的起源是?
从 Unix 到 Linux 这一段历史 为什么大家常常会说, Linux 是很稳定的一套操作系统呢?这是因为, Linux 他有个老前辈,那就是 Unix 家族啰!有这个前辈的提携,让 Linux 这个小老弟很快的就成为一套稳定而优良的操作系统啦!所以,底下我们来谈一谈 Unix 到 Linux 的这一段历史吧!早在 Linux ...

在C语言中,<<、>>是什么意思?
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出zhi流。区别如下:1、应用场合不同:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;正是因为...

网络安全知识具体应该从哪几个方面着手学习?
对于操作系统的安全防范可以采取如下策略:尽量采用安全性较高的网络操作系统并进行必要的安全配置、关闭一些起不常用却存在安全隐患的应用、对一些关键文件(如UNIX下:\/.rhost、etc\/host、passwd、shadow、group等)使用权限进行严格限制、加强口令字的使用、及时给系统打补丁、系统内部的相互调用不对外公开。 应用系统安全...

四川国际标榜职业学院的对外合作
为学院赢得了很好的声誉。日本UNIX是日本当今第二大美容美发连锁经营机构,在日本行业内有着举足轻重的地位。其重点在于美容美发的短期培训和开设连锁美容美发店。UNIX正着手进入中国市场的前期调研和准备工作。下午日方客人在美容保健部进行美甲和面部护理的实际体验,在初雪榕、刘巧、宋真贞教师的带领下,...

谁能提供关于网络信息安全的书,本人是初学者,以后想从事相关的工作,想...
它不仅提供了Windows系统、UNIX系统和Oracle系统的主机及网络安全解决方案,而且包括了企业的安全管理规范和原则;它既高屋建瓴地描述了企业内部网整体面临的安全威胁和漏洞,又细致地介绍了Windows,UNIX ... 黑客大曝光:网络安全机密与解决方案(第3版,1CD) ¥75.05元 本书从攻击者和防御者的不同角度系统地阐述了...

什么是互联网的发明者?
1983年,伯克利加州大学推出了包含TCP/IP协议通信模块的UNIX操作系统,从此,TCP/IP协议被高级研究计划管理局认定为阿帕网的标准协议,并在社会上广泛流行开来,最终诞生了真正的Internet。在这段时期里,出现了许多重要的网络。美国威克森大学创建了一个专门用于集中研究计算机科学方面的网络,其后一些单位和...

沙河市18637761618: 怎么学习UNIX -
微丹罗霖: UNIX的种类挺多,基础命令大多一样,但是想进一步学习,就得考虑要选择哪个系统了.目前流行的是AIX,HP-UX,Solaris.他们的区别很大.个人建议选择AIX,用的多,不过得买二手设备来学习了,且竞争较大...

沙河市18637761618: 我现在想学UNIX,从那里学起啊?
微丹罗霖:说实话,UNIX和windows没啥像的地方,你要是精通DOS没准还好学点,你先了解下命令行的操作方式吧,甚至了解下DOS都是有点用的,之后学习下UNIX命令.

沙河市18637761618: unix操作系统该怎么学? -
微丹罗霖: 错了,这不是什么黑客学的东西!UNIX和WINDOWS系列一样是一种计算机操作系统,学习的方法很多,但首先你要有这方面的资料,学会安装,在自己或单位的电脑上安装一个UNIX操作系统,可以选择SCO OPENSERVER ,然后对照相关资料进行学习的操作,目前在银行等金融系统应用比较多.

沙河市18637761618: 我非常想学UNIX,那位成功人士能告诉从什么地方开始?
微丹罗霖: 那我就把我学的过程或者叫经验告诉你: 上面那位仁兄说得很对,先从Linux开始学,因为Linux是Unix的升级版本,Linux的内核比其Unix更加丰富,功能更加稳定成熟,当然这都是些套话.买本Linux的书,其实学Linux主要就是学它的命令,与windows不同的是它的大部分操作都是要靠命令行去完成,当然它也有界面,但界面操作和windows都差不多,用鼠标点击什么的没什么好学的,而学命令我是通过没学一个命令读和windows的基本操作进行类比,这样记得更牢固,理解也更深刻一些,仅个人观点,希望对你有用...

沙河市18637761618: 我想学习SCO UNIX操作系统,如何着手学习?(之前只用过WINDOWS系统,有一定的计算机知识和C语言基础)
微丹罗霖: 如果你只是想应用SCO UNIX操作系统,不用有太多的基础知识,到网上找找unix论坛下载些unix入门教程、资料看一看,普及一下unix知识;然后在自己机器上装一套系统,慢慢练一练就可以了.另外,如果不是必须学SCO,建议你学别的unix操作系统,因为它已经过时了.新的linux有很多版本可用,再专业些的就是IBM 的AIX;HP UX,等等;你自己看看吧.最后祝你早日学成!

沙河市18637761618: 学习UNIX 需要些什么基础?急急急 -
微丹罗霖: 一、先在Windows上学习Unix Unix是一个很专业的操作系统,一般要找到其安装光盘也是比较困难的,如果你先安装Unix操作系统的话,往往会破坏你原有的Windows操作系统,给自己的电脑使用带来一定的麻烦.对于刚刚入门的新手来说,...

沙河市18637761618: unix网络编程怎么开始学习呢 -
微丹罗霖: 你的问题比较笼统,所以我也笼统的回答:首先,学会安装系统,任何版本都成(UNIX版本真TMD多,找个免费的下载装吧),安装到任何地方都成:老爷pc、虚拟机、你电脑的双系统...然后....没有然后了,安装并熟悉系统后你自然就知道该往那个方向使劲了

沙河市18637761618: 想学unix,从什么地方开始啊? -
微丹罗霖: 从安装操作系统开始

沙河市18637761618: 怎样学UNIX 才可以学好
微丹罗霖: 当然跟学linux一样了,跟着参考书的章节来 最好你身边有一位高手,请他指点,我敢说这样事半功倍

沙河市18637761618: 最近想了解和学习一下Unix下面的编程,不知道该如何开始呢?买了Unix环境高级编程这本书,但是有些难懂呀~~~
微丹罗霖: 先找找unix常用命令行敲敲熟悉熟悉,然后去适应用命令行操作各种简单操作,像打开文件夹,进入子文件夹等,接着才是越来越深入的学习.不能着急,像我们还不是很有基础,要从浅到深,一步一步来.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网