我的全栈之路

1.1 信息手艺成长趋势

今朝信息手艺首要履历了互联网、移动互联网以及以大数据、云较量、物联网、人工智能区块为代表的新兴手艺三个阶段。互联网

互联网自从20世纪90年月逐渐鼓起,首要是经由收集保持了世界各地的PC机,笔记本以及背后供应数据办事的大型办事器集群。

个中绝大多数PC机都运行着Windows,macOS把持系统,而办事器首要是以类Unix(CentOS,Ubuntu)占有首要市场。

依靠互联网成长起来的公司有Apple、Google、Amazon、Microsoft、Baidu、Alibaba、Tencent。移动互联网

移动互联网首要从2010起头爆发式增进,首要是经由收集保持了世界各地的移动设备(最典型的就是手机),它们绝大多数都运行着Android,iOS把持系统。

依靠移动互联网成长起来的公司有小米、美团、滴滴、蚂蚁金服。大数据、云较量

跟着用户的爆发式增进,以海量数据为根蒂的大数据、云较量手艺在Badu、Alibaba、Tencent等大型互联网公司有着普遍的贸易应用场景。物联网

物联网会以手机作为中枢,经由物联网保持所有的智能设备,包罗智能家居、汽车、电视等嵌入式设备,今朝小米、华为等在智能家居、电视、汽车等范畴普遍结构,2019年8月华为发布了鸿蒙系统。人工智能

人工智能(AI)作为当前最火爆的手艺,国内的Baidu、Tencent、Alibaba等互联网公司逐渐凭据自身的焦点买卖起头结构,Alibaba最早将人工智能手艺结构在电商和物流范畴,而Baidu斥地出了对话式人工智能把持系统Dueros和主动驾驶..Apollo,Tencent则是在游戏范畴应用人工智能。区块链

区块链履历了数字泉币、智能合约和超等账本三个阶段,区块链手艺能够普遍使用在金融、供给链、物流、民众办事等范畴,解决互联网的信任问题,今朝蚂蚁金服、京东已经有大量的区块链应用落地。1.2 浅谈较量机系统架构

1.2.1 较量机系统架构概述

较量机系统由硬件系统和软件系统构成,由软硬件协作完成人们平常生活和工作中的各类义务,例如听歌、看片子、购物、写博客等等。

微信聊天:微信监听键盘输入的数据,并放到内存,然后传给网卡,经由收集传递给此外一个网卡,再从网卡传递到内存,显露在显露器上。

QQ音乐:QQ音乐将音乐数据加载到内存上,然后写到声卡上。

腾讯视频:应用法式将视频数据加载到内存,然后写到显卡上。

Office写文档:Office将内存中的数据写入到磁盘上。

Office读文档:Offcice将磁盘的数据加载到内存,然后显露在屏幕上。

1.2.2 较量机硬件系统

如今较量机是由运算器、掌握器、存储器、输入设备和输出设备五大部门构成,它们各司其职,完成了数据的较量、存储、传输。CPU

CPU也就是中央处理器,由运算器和掌握器所构成,其感化是从内存中获取指令并执行后将究竟返回给内存或写入磁盘和掌握其他设备协同工作。内存

内存是采用编址存储,其首要感化是作为法式的工作区,法式运行时会将指令和数据都加载到内存,内存中的数据断电后会丢失。硬盘

硬盘是用于存储海量数据,分为机械硬盘和固态硬盘两大类。IO设备

IO设备用于数据的输入和输出,个中常见的IO设备包含鼠标、键盘,常见的输出设备包罗声卡、显卡。

网卡也是属于IO设备的一种,首要用于网路上的数据领受和发送。

在后期法式排查错误时除了要考虑法式自己的错误以外,还要考虑较量机硬件故障,例如磁盘写满,收集欠亨等问题

每个较量机组件的IO机能也各不沟通,CPU、内存、磁盘都遵循容量越大、IO机能越差的特点。

我的全栈之路

在后期优化法式时需要考虑法式时间复杂度和空间复杂度的问题。

1.2.2 较量机软件系统

软件的显现实现了人和较量机更好的交互,它是由斥地人员采用某种编程说话(C/C++/Java等等)编写的一系列指令以及分歧买卖场景发生的数据构成。

平日将软件分为系统软件和应用软件

系统软件:驱动、把持系统、编译器、数据库等都是属于系统软件,把持系统是负责治理硬件资源

,同时给应用软件供应运行..,今朝主流的把持系统有Windows,Linux,macOS,Android,iOS。

应用软件:微信、支出宝、淘宝、Office都是属于应用软件,它们都是运行在把持系统之上的。

运行在分歧把持系统之上的软件交互体式也纷歧样,Linux上的软件平日是使用字符界面的交互体式,运行在Windows,macOS上的软件平日是以鼠标、键盘把持的交互体式,运行在Android,iOS上的软件平日是以手势触控、语音等交互体式。1.3 法式和指令

法式是为了完成某项义务(例如聊天、听音乐)而使用某种编程说话(例如C/C++)编写的一组指令序列。

而指令是较量机法式掌握的最小单元单子,由把持码和把持数构成,把持码是较量机要执行什么把持,例如加减乘除把持,而把持数具体执行的对象,具体的数据以及数据的位置。

所有指令的鸠合称为指令系统,常见的PC机指令系统有Intel X86指令集,常见的手机指令系统有ARM,是以手机上的法式不加点窜是不克直接在PC机上运行,因为分歧的指令集是不兼容的。1.4 编程说话成长史

任何事物都是从无到有,慢慢成长强大起来的,编程说话也是一般。

较量机法式设计说话履历了机械说话到汇编说话和高级法式设计说话三个阶段,其特点是使得法式员用编程说话斥地、测试、布置应用法式越来越轻易、高效。然则是以牺牲效率为价值,然则跟着较量机硬件的成长,绝大多数应用场景的效率损失能够忽略不计。机械说话

较量机成长的最早期,法式员编写法式采用二进制的指令(010010101)来实现的,而每种CPU都有各自分歧的指令系统(Ultra SPARC/Intel X86/ARM),是以在分歧的机械上使用分歧的机械说话实现。其特点是机能稀奇高效,而面向机械编程也就意味着不克移植,需要手动处理底层硬件的差别性,并且二进制的指令难以懂得和维护。汇编说话

跟着时代和较量机手艺的成长,汇编说话和编译器的显现解决了机械说话需要记住非常多的二进制机械指令的难题,然则照样没有从基本上解决移植性的问题,只是将机械指令转换为易懂的英文单词,然后由编译器编译成机械指令,因为较量机终归揭底只能识别二进制的0001110100110机械指令,并且汇编说话是面向机械的,分歧机械(SPARC/Intel X86/ARM)的汇编指令是不沟通的。高级法式设计说话

高级法式设计说话的高级之处施展在斥地人员在编写法式时无需关心较量机底层硬件差别而只需要专注于买卖模块实现即可。甚至是能够实现 一次编译,四处运行,这里以Java为例子:经由实现分歧..的JVM,编译生成的字节码文件能够在随意的JVM上运行。

高级说话平日都需要编译器或许是注释器将源码编译或许注释后执行。

高级说话首要分为面向过程和面向对象两种,个中典型的面向过程编程说话就是C,面向对象的编程说话有Java,C++等等。1.5 较量机说话应用场景

若是想知道今朝主流的编程说话有哪些,能够接见tiobe 首页获取编程说话排行榜。

2019年8月编程说话排行榜Top20

我的全栈之路

凭据Tiobe排行榜得知,Java/C/Python离别排在前三名, 随后紧跟着C++,C#等等。

我的全栈之路

那么若是你作为初学者,面临如斯之多的编程说话,究竟应该先从哪门说话上车呢?若是你想深入的进修其他说话和架构相关的常识之前建议熟练把握C说话。因为C++/Java/C#等编程说话都模拟了C说话。无论哪种说话,都是实现方针的对象,而不是方针自己。

而不出不测的话,我的全栈之路系列会笼盖上述的十种编程说话,实现全..斥地。1.6 C说话概览

1.6.1 C说话成长简史

我的全栈之路

Dennis Ritchie

C说话凭借其高效率、精巧的移植性、功能壮大的特征在把持系统、硬件驱动以及系统应用斥地占有广宽的市场。发源

1972年,贝尔实验室的Dennis Ritchie和Ken Thompson在斥地Unix把持系统时设计了C说话,该把持系统的90%以上的代码都是由C说话实现,后期的Linux,MacOS,Android,IOS都是基于Unix成长而来的。尺度

1987年Dennis Ritchie和Brian Kernighan编写了The C Programming Language第一版是公认的C尺度实现,而没有界说C库。

尔后期ANSI/ISO先后于1990年、1999年和2011年发布了C90尺度、C99尺度和C11尺度,该尺度界说了C说话和C尺度库。

1.6.2 C说话特征

C说话作为面向过程的高级法式设计说话,可以轻松的实现自顶向下的规划、构造化编程和模块化设计,如许使得法式构造加倍简练,可扩展性强以及加倍轻易维护。

并且C说话有着高效(执行速度快)、功能壮大(嵌套汇编)以及可移植性(尺度库可移植)、功能壮大等长处,并且也存在着对系统..库依靠严重,因为编程气势自由,经验不足也会轻易导致失足,编写代码实现周期长,同样的代码在分歧的把持系统(或许编译器)下或者会有分歧的示意等瑕玷。

1.6.3 C说话应用场景

C说话倾向把持系统、硬件驱动、底层应用(数据库、编译器)、嵌入式应用斥地、游戏引擎等应用场景。

硬件驱动的绝大部门实现是由C说话和汇编说话实现的。

主流把持系统(Unix,Linxu,MacOS,Windows,Android,iOS)的底层实现都是由C说话和部门汇编实现的。

C++,Java,Python,Swift的编译器或许注释器都是由C说话实现的。

Git,Nginx,Redis,MySQL都是使用C说话实现的,并且都是开放源代码的,能够在GitHub中获取到,能够经由阅读源码提拔本身的设计和编码能力。

标签:之路
我的全栈之路微信号:暂无扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1 如何把两个pdf文件合成一个(怎么样把两个pdf文件合成一个)

    大家好,小伟今天来为大家解答如何把两个pdf文件合成一个以下问题,怎么样把两个pdf文件合成一个很多人还不知道,现在让我们一起来看看吧!1、

  2. 2 中药降血糖最好的方法(中药降血糖)

    大家好,小丽今天来为大家解答中药降血糖最好的方法以下问题,中药降血糖很多人还不知道,现在让我们一起来看看吧!1、生黄芪配生地降尿糖,

  3. 3 无氧运动(无氧运动能减肥吗)

    大家好,小豪今天来为大家解答无氧运动以下问题,无氧运动能减肥吗很多人还不知道,现在让我们一起来看看吧!1、“无氧运动”的英文是“Ana

  4. 4 日语再见sayonara(日语再见发音在线听)

    大家好,小伟今天来为大家解答日语再见sayonara以下问题,日语再见发音在线听很多人还不知道,现在让我们一起来看看吧!1、对了,就是英文音译

  5. 5 李海欣个人简介(李海欣烈士生前的最后一张照片)

    大家好,小伟今天来为大家解答李海欣个人简介以下问题,李海欣烈士生前的最后一张照片很多人还不知道,现在让我们一起来看看吧!1、1984年5月

  6. 6 五号字体是多大尺寸(五号字体有多大)

    大家好,小美今天来为大家解答五号字体是多大尺寸以下问题,五号字体有多大很多人还不知道,现在让我们一起来看看吧!1、一般word中默认的字体

  7. 7 莱卡是什么面料(弹力莱卡是什么面料)

    大家好,小娟今天来为大家解答莱卡是什么面料以下问题,弹力莱卡是什么面料很多人还不知道,现在让我们一起来看看吧!1、您好!莱卡面料是由

  8. 8 承前启后继往开来的意思(承前启后继往开来对联)

    大家好,小伟今天来为大家解答承前启后继往开来的意思以下问题,承前启后继往开来对联很多人还不知道,现在让我们一起来看看吧!1、“承前启

Copyright 2024 看看网,让大家及时掌握各行各业第一手资讯新闻!