什么是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. eclipse中update maven工程后,项目JDK变为1.6
  2. java 服务器所在盘符_JAVA获取文件本身所在的磁盘位置 | 学步园
  3. C#设计模式--模板方法模式(学习Learning hard 设计模式笔记)
  4. 一个网络资深者发起的思考
  5. 十多款优秀的Vue组件库介绍
  6. sql判断字段不为null_什么是NULL值
  7. 网页长截图工具_Mac系统如何轻松实现网页长截图功能
  8. MySQL MYISAM引擎表锁和行锁详解
  9. 服务器迁移虚拟化实施方案,服务器虚拟化项目P2V实施及迁移方案v8(31页)DOC
  10. 推荐两款轻量级股票看盘工具
  11. Linux T恤设计大赛 “飞企鹅”获奖
  12. react 打电话+阻止冒泡
  13. 远程桌面连接服务器时,键盘不能正常打字
  14. 关于浏览器的几个高度和宽度
  15. 机器学习算法面经(阿里京东拼多多百度等)
  16. 可以计算一元二次方程复数根的模拟计算机
  17. OPA 20 - deliberately generate an error
  18. 图像修复(Image Restoration)
  19. Android studio 仿微信朋友圈页面(简单版)
  20. w10的计算机图标在桌面显示,一学就会的win10桌面怎么显示我的电脑图标方法

热门文章

  1. 2012春暖花开高清桌面壁纸与精美电脑主题分享
  2. Ubuntu安装nodejs及nodejs升级
  3. Vijos P1071新年趣事之打牌
  4. 打造先进的SOA应用
  5. 《代码大全2》第8章 防御式编程
  6. sql小册子_如何在Microsoft Word中创建小册子
  7. 辽宁警官高等专科学校 计算机2级,辽宁警官高等专科学校
  8. MySQL 新增字段(alter table add column),报错:Duplicate entry
  9. logrotate测试_简单好用的日志管理工具 Logrotate
  10. Git安装教程(详细教程)