什么是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。

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

  1. linux修改服务器时间_操作系统基础解析:Windows和Linux 到底有何不同?

    出品丨自主可控新鲜事 内容节选自东方证券 正文共2520字,建议阅读时间8分钟 计算机操作系统是基础软件,分为闭源和开源两类. 广义的操作系统包括:计算机(PC.工作站.服务器)系统.移动端系统(例如 ...

  2. 计算机及linux操作系统的简单介绍

    计算机及linux操作系统的简单介绍 文章目录 计算机介绍 冯诺依曼体系 二进制和十进制转换 摩尔定律 计算机分类 计算机硬件组成 内存 常见的磁盘接口 机械硬盘的基本参数 SSD固态硬盘 机柜 操作 ...

  3. linux操作系统的体系架构,linux操作系统的体系架构_linux操作系统的关机指令

    linux操作系统的体系架构 Linux系统结构一般有3个主要部分:内核kernel.命令解释层Shell或其他操作环境.实用工具. 1.Linux内核 内核是系统的核心,是运行程序和管理磁盘.打印机 ...

  4. Linux操作系统的设备独立性,Linux的设备管理

    一 设备管理 在计算机系统中,除了CPU和内存之外,其余的大部分硬件设备称为外部设备.外部设备包括常用的I/O(输入/输出)设备.外存设备以及终端设备等. 1.I/O设备的类型 ●按设备的所属关系可以 ...

  5. 江西冶金职业技术学院计算机,计算机基础知识江西冶金职业技术学院.ppt

    计算机基础知识江西冶金职业技术学院 第一章 计算机基础知识 1.1 概述 1.2 计算机的组成及工作原理 1.3 计算机的语言 1.4 计算机的性能和使用维护 1.5 计算机内部数据的表示 1.6 计 ...

  6. Linux操作系统基础解析之(三)——基本命令行操作及获得帮助的方法

    我们传统意义上理解的操作系统实际上是指:包括了操作系统的kernel,以及在其上构建了大量的功能各异的应用程序的集合体.所以狭义上来讲,操作系统就是指kernel.kernel将底层的硬件的复杂逻辑屏 ...

  7. linux系统分析命令,Linux操作系统基础解析之(四)——Linux基本命令剖析(2)

    11.cat:外部命令 功能:连接文件并在标准输出中显示连接结果 格式:cat [OPTION]... [FILE]... 常用选项: -A, --show-all:相当于-vET -b, --num ...

  8. Linux操作系统基础解析之(四)——Linux基本命令剖析(2)

    11.cat:外部命令 功能:连接文件并在标准输出中显示连接结果 格式:cat [OPTION]... [FILE]... 常用选项: -A, --show-all:相当于-vET -b, --num ...

  9. Linux操作系统基础解析之(五)——grep命令家族及正则表达式初识

    grep号称文本处理三剑客之一,虽然说是三剑客中功能最少也是最简单的,但仍然不能小觑.   grep的全称为:Global search REgular expression and Print ou ...

最新文章

  1. 想做网络工程师不?最好学下Linux
  2. angular中的class写三元表达式 和 清空表单校验
  3. release和retain还有多少人在用
  4. Nginx+Tomcat出现session丢失问题
  5. 农村黑产,才是真正的硬核朋克!
  6. mysql大量数据分页优化_mysql大量数据分页优化
  7. 美图秀秀首页界面按钮设计(二)
  8. Mybatis insert返回主键ID
  9. java跳_用Java实现跳表
  10. python创建实例会调用哪些魔术方法_Python最会变魔术的魔术方法,我觉得是它!...
  11. We change lives !
  12. 201671010135 《面向对象程序设计课程学习进度条》
  13. 数学建模方法 — 【01】模糊数学
  14. 软件工程----开发大致流程
  15. 评价指标 | ROC曲线和AUC面积理解
  16. Visual Studio 2015 Enterprise - 企业版 - 简体中文
  17. 红孩儿网狐Cocos经典棋牌开发教程-卞安-专题视频课程
  18. 墙裂推荐的工具软件及插件神器
  19. java中private作用_java中private什么意思
  20. SpringSecurity-密码存储方式

热门文章

  1. 【SpringSSM项目】搏击俱乐部 使用邮箱进行登录注册 密码加盐加密
  2. conceptd什么时候上市_iPhone12什么时候上市?iPhone12售价多少?
  3. 那些感动过你我的句子
  4. 05年大纲新增词汇(含中文释义)
  5. 微信编辑器如何识别错别字
  6. 天源财富:深海钻探,“海牛Ⅱ号”真牛
  7. 设置Ubuntu 的vim/vi 自动显示行号信息
  8. 基于java注册登录MD5算法加盐加密颁发 Token身份令牌使用各种邮箱发送验证码详解雪花算法
  9. 牛逼,上头终于出手了!
  10. 平湖国美网吧采用艾泰路由器后的革新(转)