基础及背景介绍20181104(代码片段)

sstjustdoit sstjustdoit     2023-01-14     538

关键词:

一、冯诺依曼体系

运算器、控制器、存储器、输入设备、输出设备
技术分享图片

二、计算机的一些硬件

1.CPU

CPU是 central processing unit 的缩写,即中央处理器。有运算器和控制器组成,是整个计算机最重要的部分。关于CPU的一些概念:

  • 主频:CPU的时钟频率(CPU clock speed),指CPU运算时的工作频率(1秒钟发生的同步脉冲数),单位是Hz。
  • 外频:系统总线的工作频率,CPU与外部(主板芯片组)交换数据、指令的工作时钟频率。
  • 倍频:外频与主频相差的倍数。主频=外频X倍频
  • 高速缓存(cache):高速交换的存储器,用于减少处理器访问内存的平均时间,容量远小于内存,但速度却可以接近CPU的频率。分为一级(L1)、二级(L2)、三级缓存(L3)。
  • 内存总线速度(memory-bus speed):一般等同于CPU外频 ,指CPU与二级(L2)缓存和内存之间的通信速度。
  • 地址总线速度:决定了CPU可以访问的物理地址空间。
  • CPU的一些类型:
    x86、x64、ARM、power(IBM)、alpha(HP)、 Ultrasparc(sun)、安腾(compad)

2.内存

介于CPU 和外部存储之间,是CPU 对外部存储中程序与数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路。CPU能直接寻址的存储空间,存取速度快。计算机中所有程序的运行都在内存进行,对计算机性能影响很大。断电后数据丢失。

3.硬盘(hard disk driver)

  1. 由盘片(media)、磁头(read write head)、马达(spindel motor & voice coil motor)组成的外部存储设备,其读写方式是随机存取方式。
  2. 如果CPU有每秒处理1000个服务请求的能力,各种总线的负载能力能达到500个,但网卡只能接受200个请求,而硬盘只能负担150个的话,那这台服务器得处理能力只能是150个请求/秒,有85%的处理器计算能力浪费了
  3. SSD(Solid State Disk)泛指使用NAND Flash组成的固态硬盘。其特别之处在于没有机械结构,以区块写入和抹除的方式作读写的功能,因此在读写的效率上,非常依赖读写技术上的设计SSD读写存取速度快,性能稳定,防震性高,发热低,耐低温,电耗低,无噪音。

4.存储网络

DAS:直接存储(Direct Attached Storage)。存储设备与主机的紧密相连

  1. 管理成本较低,实施简单
  2. 储时直接依附在服务器上,因此存储共享受到限制
  3. CPU必须同时完成磁盘存取和应用运行的双重任务,所以不利于CPU的指令周期的优化,增加系统负担

NAS:网络连接存储(Network Attached Storage)。通过局域网在多个文件服务器之间实现了互联,基于文件的协议(NFS、SMB/CIFS ),实现文件共享。

  1. 集中管理数据,从而释放带宽、提高性能
  2. 可提供跨平台文件共享功能
  3. 可靠性较差,适用于局域网或较小的网络
    SAN:存储区域网络(Storage Area Networks,SAN),利用高速的光纤网络链接服务器与存储设备,基于SCSI,IP,ATM等多种高级协议,实现存储共享。
  4. 服务器跟储存装置两者各司其职
  5. 利用光纤信道来传输数据﹐以达到一个服务器与储存装置之间多对多的高效能、高稳定度的存储环境
  6. 实施复杂,管理成本高

三、操作系统(OS,operating system)

是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求

1、操作系统的功能

操作系统的有如下功能:

  • 硬件驱动
  • 进程管理
  • 内存管理
  • 网络管理
  • 安全管理
  • 文件管理

2、OS的交互式接口

有两类:

GUI: (Graphic User Interface)X protocol、Windows manager、desktop

  • desktop:
    GNOME(c,图形库gtk)
    KDE(C++,图形库qt)
    XFCE(轻量级桌面)

CLI(Command line interface)

  • shell程序:sh、csh、bash、ksh、

3、开发标准接口

ABI: Application Binary Interface

ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行

API:Application Programming Interface

API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译

POSIX: Portable Operating System Interface

是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称

4、一些开源协议

OS=kernel+application
对于Linux,是Linux内核+GNU
GNU,GNU is not unix

关于一些开源协议可看此文一张图看懂开源协议及其区别
技术分享图片

四、编程语言

  • 低级语言
    • 机器语言:0和1
    • 汇编语言:和机器语言一一对应,与硬件有关的相关特有代码,驱动程序开发
  • 中级语言:C,C++
    • 操作系统,对性能要求较高的服务类程序
  • 高级应用语言:java,python,PHP,go
    • 应用级程序开发

五、什么是shell

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
shell也被称为LINUX的命令解释器(command interpreter)
shell是一种高级程序设计语言

技术分享图片

cat /etc/shells    #查看当前系统支持的shells
echo $SHELL    #查看当前正在使用的shell

六、Linux的各版本

  1. slackware:SUSE Linux Enterprise Server (SLES)
    • Open Suse 桌面
  2. debian
    • Ubuntu
    • mint
  3. Redhat
    • RHEL: RedHatEnterprise Linux 每18个月发行一个新版本
    • CentOS:兼容RHEL的格式
    • Fedora:每6个月发行一个新版本
  4. Gentoo:极致性能,不提供传统意义的安装程序
  5. LFS: Linux From scratch 自制Linux(学完全部课程可自制)
    inux分支参考网站:http://futurist.se/gldt/

七、程序管理

程序的组成部分

二进制程序
库文件
配置文件
帮助文件

八、Linux的哲学思想

  • 一切都是一个文件(包括硬件)
  • 小型,单一用途的程序
  • 链接程序,共同完成复杂的任务
  • 避免令人困惑的用户界面
  • 配置数据存储在文本中















elasticsearch-基础介绍及索引原理分析(代码片段)

...时搜索和分析引擎,一个建立在全文搜索引擎ApacheLucene(TM)基础上的搜索引擎.当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都 查看详情

elasticsearch-基础介绍及索引原理分析(代码片段)

...统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。介绍Ela... 查看详情

ansible安装及基础模块介绍(代码片段)

ansible介绍Ansible基于Python开发,集合了众多优秀运维工具的优点,实现了批量运行命令部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单... 查看详情

elasticsearch-基础介绍及索引原理分析(代码片段)

...时搜索和分析引擎,一个建立在全文搜索引擎ApacheLucene(TM)基础上的搜索引擎.当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可... 查看详情

微搭低代码javascript基础知识-函数及模块介绍(代码片段)

...入门,首先需要学习javascript,我们已经有了两篇基础文章变量定义及初始化循环及条件控制我们本篇介绍两个知识点,一个是函数,一个是模块函数在js中函数是可以重复使用的代码块,定义函数是为了去除... 查看详情

微搭低代码javascript基础知识-函数及模块介绍(代码片段)

...入门,首先需要学习javascript,我们已经有了两篇基础文章变量定义及初始化循环及条件控制我们本篇介绍两个知识点,一个是函数,一个是模块函数在js中函数是可以重复使用的代码块,定义函数是为了去除... 查看详情

微搭低代码javascript基础知识-函数及模块介绍(代码片段)

...入门,首先需要学习javascript,我们已经有了两篇基础文章变量定义及初始化循环及条件控制我们本篇介绍两个知识点,一个是函数,一个是模块函数在js中函数是可以重复使用的代码块,定义函数是为了去除... 查看详情

注解第一部分基础介绍及使用(代码片段)

注解概述注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,... 查看详情

android基础到进阶uiimageview及其子类介绍+实例(代码片段)

ImageView一、ImageView的继承关系        从上图可以看出ImageView继承自View组件,它的主要功能用于显示任何Drawable对象。除此之外ImageView还派生了三个ImageButton、QuickContactBadge、ZoomButton组件。二、ImageView支持的常用XML属性三... 查看详情

android基础到进阶uiimageview及其子类介绍+实例(代码片段)

ImageView一、ImageView的继承关系        从上图可以看出ImageView继承自View组件,它的主要功能用于显示任何Drawable对象。除此之外ImageView还派生了三个ImageButton、QuickContactBadge、ZoomButton组件。二、ImageView支持的常用XML属性三... 查看详情

linux基础-常见指令及权限理解(代码片段)

1.常见指令及权限理解初始Linux操作系统初识shell命令,了解若干背景知识。使用常用Linux命令了解Linux权限概念与思想,能深度理解“权限”初步了解Linux目录结构含义文章目录1.常见指令及权限理解1.linux系统及计算机背景2.使用XShel... 查看详情

零基础学python--机器学习:数据集及特征工程介绍(代码片段)

@TOC一、数据集1.可用数据集公司内部百度数据接口花钱学习阶段可用的数据集:1.sklearn,2.kaggle,3.UCIKaggle网址:https://www.kaggle.com/datasetsUCI数据集网址:http://archive.ics.uci.edu/ml/scikit-learn网址:http://scikit-learn.org/stable/datasets/ind 查看详情

androidopengl基础相机预览及滤镜(代码片段)

一、相机简介在AndroidOpenGL基础绘制Bitmap纹理一文中,我们简单介绍了如何绘制如何把一张图片贴到四边形上。本文介绍如何用GLSurfaceView来实现预览相机。与单张图片纹理不同的地方在于,相机是一个内容不断变化的纹理... 查看详情

python基础库及机器学习笔记(代码片段)

...算能力,这里主要介绍NumPy、pandas和Matplotlib三个库的基础使用。其中NumPy是Python用来进行矩阵运算、高维度数组运算的数学计算库;pandas是Python用来进行数据预处理、数据操作和数据分析的库 查看详情

搜索引擎基础及核心思想(代码片段)

前言本篇文章会通过介绍搜索引擎的基础及在项目中为什么会出现搜索引擎,以及搜索引擎如何实现,包括提到创建索引,对于半结构化数据以及结构化数据快速找到我们想要的数据,以及在大数据条件下Lucene es... 查看详情

mpandroidchart开发使用总结及采坑记录(代码片段)

...开发总结1.1设置不同的图表1.2BarChart的使用流程1.3Chart的基础设置1.4图表描述相关设置1.5是否显示右侧y轴1.6图例相关设置1.7x轴设置1.8Y轴设置二、BarChart开发实例2.1实现某一水平的高亮柱状图2.2实现训练的曲线图2.3实现训练记录点... 查看详情

mpandroidchart开发使用总结及采坑记录(代码片段)

...开发总结1.1设置不同的图表1.2BarChart的使用流程1.3Chart的基础设置1.4图表描述相关设置1.5是否显示右侧y轴1.6图例相关设置1.7x轴设置1.8Y轴设置二、BarChart开发实例2.1实现某一水平的高亮柱状图2.2实现训练的曲线图2.3实现训练记录点... 查看详情

docker基础及进阶(代码片段)

第一章  docker基础一、   docker介绍Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。二、    初识docker1.      Docker容器vs全虚拟化全虚拟化的系统分配到的... 查看详情