linux操作系统的技术介绍,Linux操作系统基础解析之(一)——IT技术简介

什么是IT?

提及IT技术,大家可能会觉得很熟悉,但是又会很陌生。这是个相关困扰和纠结的问题。IT技术最早指的是Information Technology,即信息技术,或者被称为ICT(Information and Communications Technology),即信息和通信技术。而在互联网发展到如此地步的今天,有很多人也将IT理解为互联网技术(Internet Technology)。

接下来我要说的也是从互联网技术这个角度来介绍IT。

对于IT技术而言,大体上可以分为两大类技术,即:研发领域和应用领域。所谓研发,就是研究与开发,也就是通过认知、学习、论证、实践等阶段建立一套理论体系,再基于这套理论体系并根据生产生活的需要,将一些工具创造出来的过程。所谓应用,就是尽最大可能地完美地将开发者开发的各种产品应用到人们的生产生活中,从而使得整个IT体系更加强大,能够具备更多的功能,能够帮人们完成更多的工作,能够更加方便人们的生产生活的技术。说白了,开发就是造工具,应用就是使用这些工具来干活。

接下来我们详细探讨一下开发领域和应用领域的具体内容。

研发领域:

研发又可以继续细分为硬件研发和软件研发。

硬件研发,就是制造可应用于IT技术的底层支持技术的各类硬件设备,如各种电子元件(如电阻、电容,继电器等)的设计和制造,电路板的设计和制造,电路的印刷,芯片的设计和制造等等。而每一种硬件设备在设计和制造的过程中都必须设计一套能够让人进行硬件操作的操作接口。

比如,很多年前,如果我们买了一台电视机,在这电视机上就需要提供开关、音量调节、频道选择等按钮,以方便用户使用这台电视机。而且每一次用户想要使用电视机,都必须走的电视机的旁边,按下这些按钮中的一个或几个,来实现某些特定的功能,这想按钮就是电视机制造商提供给用户的操作接口。如果没有这样的接口,那么用户就必须要搞明白电路之中那些线路短接可以打开电视机,那些线路短接可以实现音量调节和频道切换,姑且先不论用户是否易于操作,单单是记住这些电路的接线顺序和功能的对应关系已经是非常巨量的工作了。估计这样的话,电视机的生产商也别指望卖出太多的电视机了,也不会有太多了客户对这样的产品感兴趣了。因此电视机生产商就必须要急用户之所急,想用户之所想,帮助用户克服这种使用行的障碍,于是,电视机生产商就把这些对于用户来讲几乎不可能实现的操作隐藏起来,用一个更容易被用户操作的抽象层来提供接口,即:用户将指令发送给这个抽象层,而这个抽象层将背后的复杂的指挥逻辑和执行逻辑隐藏起来,输出简单的执行结果供用户使用,而用户则不必关心为什么按下开关之后电视机就会开机或者关掉这样的事情了。用户只需要知道按下开关之后会发生什么就可以了。后来随着技术的改进,出现了遥控电视机,从而,使得电视机上的接口变少了,更多的接口功能都集成到了遥控器上,遥控器通过红外信号将用户选择的操作传递到电视机上的红外线接收装置上,而实现不用靠近电视机也可以方便的使用电视机了,这个遥控器以及遥控器上的按钮就是硬件的操作接口,但是即便已经有了遥控器,电视机上依然提供了少量的控制接口,以方便在遥控器失灵或损坏的时候用户依然可以使用电视机。但是为了能够让遥控器生效,背后的逻辑更加复杂,需要编写的功能也越来越多,因此这样的电视机在造价上也比之前的电视机要高许多,所以售价也比较昂贵。

通过上面的例子,只想说明这样的一个问题:硬件保持了最为底层的功能,所有我们需要使用软件来帮助硬件实现接近于最终产品形态。电视机这种设备,相对于计算机来讲,可以说是简单的多了,但是,与计算机上应用软件的方式上相比较的话,可以说是大同小异的。

如果人们有不同的需求,我们就需要根据用户的需求把底层的硬件所提供的功能用软件的形式封装起来,从而以更为简洁的接口的形式提供给用户,以方便用户的使用。但是计算机的接口非常难以理解,因为其采用二进制指令来加工二进制数据。对于用户来讲,很难做到从二进制的角度来思考问题。但是在计算机发展的早期,程序员编写程序就只能以二进制指令加工二进制数据的方式进行编写。这对于程序员来说,工作量太大,效率也太低。因此,程序员们迫切的需要一种方法,进行更加简单高效的程序编写,让程序员们更加容易掌握和使用。

芯片制造商们开始思考这个问题,既可以方便用户的使用,提高易用性;又可以方便程序员进行代码编写,简化编写过程,降低程序员的工作总量。所以,汇编语言就应运而生了。每个芯片制造商,都为自己生产的芯片的机器语言提供了一个较为简单的,层次上稍微靠上的,但仍然非常简陋的编程接口,我们称为微码语言,或称汇编语言。汇编语言已经在使用人类的自然语言来描述了,如:使用ADD表示加法等。但是,尽管如此,汇编语言也仅仅是把那些本来是二进制格式的指令和数据转换成了人类自然语言的符号,仅此而已。所以说,我们想要使用汇编语言写一个复杂的程序也是非常困难的,他离最终形态依然非常遥远,程序员需要做的工作依然非常的多。而且,只要不是用机器语言编写的程序,对于计算机而言,是没有办法直接运行的,因为计算机无法理解非二进制的任何代码的含义。所以,必须把我们使用汇编语言编写的程序转换成计算机能够理解的二进制的指令和数据。对于汇编语言来讲,这个过程我们称为汇编过程,我们使用汇编器完成这个步骤。

汇编语言属于低级语言的范畴。而且汇编语言和芯片的耦合度非常高,或者说是与芯片紧密相关的。在某个芯片上编写的汇编程序,基本上无法移植到其他的芯片上的,因此说,汇编程序的普适性很差。所以就出现了高级语言。

所谓的高级语言,就是离人类的理解能力较近的语言,方便人类的编写,效率很高;所谓的低级语言,就是离机器的理解能力较近的语言,方便机器的运行,运行速度非常快。因此,不是说高级语言很好,只是人类比较容易掌握;也不是说低级语言很差,只是人类不容易理解和掌握。于是就出现了这样一个矛盾:计算机能够直接使用的二进制指令和数据,会让程序员理解起来异常辛苦;程序员方便编写的语言计算机根本无法理解。所以我们必须把使用高级语言编写的程序转换成计算机能够理解的二进制的指令和数据。而这个过程一般被分成两个阶段来执行,第一个阶段就是将高级语言编写的程序转换成汇编语言。是实现这一阶段的过程,我们称为编译或解释,而用来实现这种编译或解释的通用工具,我们称为"编译器"或“解释器”。也就是说,使用高级语言编写的程序代码,需要先编译或解释成汇编语言的代码之后,再将其汇编成二进制指令和数据才可以在计算机上执行。因此,不是说高级语言很好,只是人类比较容易掌握;也不是说低级语言很差,只是人类不容易理解和掌握。

高级语言又分为系统级和应用级两类

系统级语言(如C,C++等),一般用来开发操作系统以及那些对性能要求较高的服务类程序,如Linux,Oracle,MySQL等。

应用级语言(如Java,Python,Ruby等),一般用来开发具有特定的功能并且对性能要求不高,但是对于程序员来讲希望能够快速完成的程序。如ansible,puppet,tomcat等。

而我们平常意义上所谓的软件,就是程序员用某种高级编程语言写就的程序代码。这些程序代码经过了特定的编译或解释以及汇编之后,可以被底层硬件所执行,从而可以根据软件中所定义的功能来实现用户的需求。

应用领域

所谓应用,就是使用其他程序员使用各种高级语言开发的软件,能够最大限度的压榨程序的一切功能并且尽可能的降低系统资源的开销,以使得程序的运行效率大为改观,也使得服务器的资源分配更加合理。在Linux管理领域中通常将这种软件应用的技术称为运维技术。因此运维技术就是应用其他建构在Linux生态圈中的各种应用程序的技术,而且有一个非常苛刻但是有不甚明确的标准,就是用好这些应用程序。

而所谓的用好,一般指在使用了这些运维工具之后,能够保证服务器的高稳定性、高可用性、高安全性以及高效率的资源利用。还有一个非常重要的运维技术,即:利用脚本的自动化特性,能够让某些应用工作能自动完成。

在Linux生态圈中,通常使用shell(bash)脚本来实现自动化功能。但是shell脚本编程并不能算一种语言,他是在建构在解释器之上,让其他程序能够更好的被组织运行的一个逻辑程序工具。如果想要实现更为复杂的功能,那就得使用专业级的完整的编程语言了——Python。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值