计算机的组成

计算机作为一个复杂信息处理工具,从诞生到现在已经走过半个多世纪,计算机行业不断地飞速发展,现在已经成为我们生活和工作当中不可缺少的重要工具。计算机主要是由硬件系统和软件系统组成。

硬件系统

组成:主要由五大部件组成,运算器,控制器,存储器,输入设备,输出设备。

CPU:
主要部件:运算器,控制器
运算器主要用来做逻辑算术运算;控制器主要用来指挥运算过程,协调各个部件的参与。

加速部件:寄存器,缓存
临时存放运算信息,是提升cpu性能的辅助性工具

存储器: 内存(RAM),外部存储(ROM)

内存(RAM),也叫运行内存,即随机访问存储器,主要将静态程序文件装载为动态程序进程,通俗的讲就是存储正在运行的应用程序;这里存放的信息都是临时的,断电后不可保存。
它之所以存在是因为cpu运算和读取的速度很快,当数据处理完后,需要一个存储设备来保存临时的存储数据,而外部存储速度很慢,无法满足cpu的运算和读取速度,而内存的读取速度快相比外部存储快得多,cpu处理完后通过高速缓存(Cache)会将处理好的数据放入内存中,临时存放。
程序运行时系统通过cpu发出指令,内存会到外部的静态存储中读取程序数据并装载到内存中,将其装载为动态进程,从而方便cpu快速调取。(理解有限,不过随着不断地学习,相信对内存的理解会更加深入。)

外部存储(ROM),即硬盘,主要用来存放各种程序数据文件等,如下载好的多媒体文件,程序安装包,安装好的程序,psd,doc,ppt,xls,txt等等文件。可长久保存。

输入设备:下指令,提供数据等

常用的设备有,鼠标,键盘,麦克风等。

输出设备:输出数据加工处理的结果

常用的设备有,显示器,耳机,音响等。

软件系统

计算机在拥有了完备的硬件基础,更准确地说是拥有了数据处理器和信息输入输出设备后,我们还需要给它提供处理特定信息的软件系统,目的是实现我们想要的功能。

软件系统分为两大类:操作系统 应用程序

这里需要说明,这个操作系统并不是广义上我们理解的那个面对普通用户的自带系统工具和用户界面的系统。

它更准确地说应该是内核,而我们常用的系统出场预装的用户界面,办公软件,文本编辑器,网络服务软件,各种资源浏览器等程序都是应用软件。

内核:
什么是内核?用来干什么?它是怎么工作的?

内核是操作系统的核心,是软件与硬件连接的基础。主要功能是进程管理,内存管理,驱动程序管理,文件系统管理,网络功能管理,系统安全管理。

当用户打开一个应用软件,其实就是将磁盘中的静态应用程序读取并交给内核,然后内核在内存中找到一部分空闲的空间并将该应用程置入其中,创建出一个可供管理的运行的动态程序,这就是一个进程(process)。 不同的进程会占据不同大小的内存空间,内核负责监管和协调这些进程对内存的使用。

既然一个操作系统如此的重要,那么我们常见的操作系统有哪些呢?
由于操作系统的发展历史很久远,这里我们只挑一些重点来讲,

Unix:

Unix是一款纯多用户,多任务的操作系统,体积很小,但性能强悍。是KenThompson带着两个小伙伴使用C语言和汇编语言于1969年在AT&T的贝尔实验室编写而成的,是现代操作系统的鼻祖

著名发行版有;
AT&T:System V7

Berkeley的BSRG组织发行的BSD(Berkeley System Distribution)

注:现在我们所熟知的iPhone和Mac,其底层系统就是BSD

Linux及其发行版

linux的诞生完全就是个偶然,当时因为版权问题,很多人都没办法再使用Unix,一个叫linus·Torvalds的芬兰年轻人开发出了这个系统。这个系统是一套开源的,并且可自由传播的类Unix操作系统,它是一个基于POSIX标准的多用户、多任务并且应用程序可移植到其他任何一个遵循POSIX标准的系统的操作系统。 由于遵循GNU组织的GPL开源协议,无数开源爱好者在其基础之上修修改改按照各自的喜好,开发出了合适各样的Linux发行版。

Linux发行版

准确来讲应该叫: GNU Linux,因为linux发行版集成了遵循GNU组织开源协议的应用软件和linux内核

Debian:

  • Ubuntu,基于Debian,早期以桌面应用而开发,现在服务端桌面端都很不错。
  • Knoppix,基于Debian,以安全著称

Slackware:
SUSE:基于slackware

  • SLES:基于SUSE;SUSE Linux Enterprise Server,即SUSE服务器端发行版
  • OpenSUSE:基于SUSE,界面华丽

RedHat:

  • Red Hat Enterprise Linux(RHEL):RedHat企业发行版,付费
  • Centos:基于RHEL, 社区运营,免费
  • Fedora Core :RedHat个人桌面版,Redhat项目终止后,红帽公司用来面对个人用户的linux
  • Fedora :基于Fedora Core,个人桌面版

Gentoo:一种定制性极强的linux系统

ArchLinux: 致力于使用简单、系统轻量、软件更新速度快的linux系统

由于Linux发行版分支很多,此处仅列出目前比较知名的一些发行版,其他发行版见下图

开源协议

说起开源协议,不得不提一下自由软件,自由软件是一种可以不受限制地自由使用、复制、研究、修改和分发但必须公开源代码的软件。可以买卖。这方面的不受限制正是自由软件最重要的本质。这是自由软件基金会(FSF)对自由软件的定义。
自由软件/开源软件是自由的,免费的,源代码是开放的,我们可以自由下载安装和使用。但为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议。

GPL:GNU通用公共许可协议(GNU General Public License),一种自由软件许可证,作用是保证用户能够自由运行,学习,共享分发和修改软件。
主要内容是:如果一个软件中使用了遵循GPL协议的自由软件源代码,那么该软件也必须采用GPL协议,也要保持开源和自由。

LGPL:GNU宽通用公共许可证(GNU Lesser General Public License),另外一种比GPL更宽松的自由软件许可证,是GNU为了得到更多的商业软件开发商的支持而提供的,LGPL允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码,这使得采用LGPL协议的开源代码可以被商业软件使用并销售。如果修改遵循LGPL协议的代码,那么其衍生的代码也要遵循LGPL协议,需要开源。

BSD:BSD许可协议(Berkeley Software Distribution license) ,是一种给予使用者很大自由权的协议,使用上几乎没有什么限制,可以自由使用,修改源代码,也可以将修改后的源代码作为开源或者商用软件发布。
但是再发布的软件要满足3个条件:

  • 如果再发布的产品包含原来的代码,则原来代码中必须包含BSD协议。
  • 如果再发布的只是二进制类库或软件,则需在相应文档和版权声明中包含原来代码的BSD协议。
  • 不可以使用开源代码的作者或组织机构名字和原产品的名字做商业推广。遵循BSD协议的软件随鼓励代码共享,但需要尊重代码作者的著作权。

Apache:Apache开源协议,与BSD类似,同样自由,鼓励代码共享修改,尊重原作者的著作权。
代码中包含原有代码的部分同样也要带有原有代码遵循的Apache license。 使用遵循该协议的软件所开发的软件可商用。

协议区别
与GPL相比,LGPL的出现主要是为了得到商业软件的支持,其能允许随意调用且不用遵循LGPL协议只有LGPL的类库,如果要调用其他软件 则要将自己的软件开源。
而BSD与Apache无论是对商业软件还是普通软件,还是遵循BSD/Apache协议的源码作者都很友好,如果新软件中使用的是遵循BSD/Apache协议的软件源码,没修改的部分就要署名原来代码所遵循的开源协议,商用时不能以源码作者的名义。
相比而言,GPL协议只要一点代码使用了遵循GPL的代码 就要把整个软件给开源,太过于理想和国产化,确实不适合商用。
BSD,Apache等宽松协议更适合商用软件。

Linux哲学思想

  • 一切皆文件:
    在Linux系统中,几乎所有的资源都杯抽象为文件,包括硬件设备,甚至通信接口,Linux在运行时,它们在Linux眼里只是拥有不同属性的的文件,所起到的作用也不尽相同即使是硬件 其在Linux中也只是/dev下的各种特殊文件。它们也跟其他普通文件类似,能被打开,读取,写入,关闭,删除,创建如,物理终端:/dev/console,虚拟终端:/dev/tty#,串行终端:/dev/ttyS#,伪终端:/dev/pts/#
  • 组合小程序完成复杂任务:
    在Linux中所有的复杂功能的实现都是由一个又一个的单一小程序所组成,一个程序只做一件事,不臃肿不复杂,这样在面对处理大型任务的时候会更加的灵活,多变,易用。
  • 避免与用户交互:
    如一些容易令人产生困扰的用户界面,用户通过傻瓜式的用户界面使用操作系统,一旦出了问题,就不知道怎么办,不知道哪个地方出了问题,不知道怎么排错,而使用简单的命令行进行交互,即使出了问题也可以通过命令行进行排错,修复,这么做的目的是为了让系统更加的简洁,运行起来更加的高效,没那么多乱七八糟的东西。
  • 使用文本文件保存配置信息:
    这样做有利于修改和设置文件配置信息,所有的文件配置修改时直接通过文本编辑器修改其配置文件即可实现配置修改。这样做高效且简单。

Linux目录结构

一般目录路径最左侧的/代表根目录,其他/代表路径分隔符,
路径最右侧为基名(basename);基名左侧的是目录名(dirname)

/ :linux整个文件系统的根目录

  • /bin/:此处存放的是所有用户可使用的基本命令程序文件,如:cat,ls等应用程序文件
  • /boot/:引导加载器必须用的静态文件,如:kernel,inird
  • /sbin/:此处存放供系统管理员使用的工具程序
  • /dev/:存储设备文件或特殊文件
  • /etc/:系统程序的配置文件
  • /home/:普通用户的家目录,包含普通用户创建和保存的文件
  • /lib/:为内核提供模块,为系统启动或者根文件上的应用程序提供共享库
  • /media/便携式设备挂载点
  • /mnt/:其他文件系统的临时挂载点,如U盘,其他USB设备
  • /opt/:可选程序的安装位置,一般为空
  • /proc/:用于共享的虚拟文件系统,将内核与进程状态归档为文本文件
  • /root/:超级管理员家目录
  • /srv/:当前主机为服务提供的数据
  • /tmp/:存放临时文件,系统重启时该目录上的文件不会被保留
  • /usr/:Unix Software Resource的缩写,存放全局共享的只读数据,所有程序都安装在这里
  • /var/:存储常发生变化的数据,即变量

文件目录命名法则

  • 严格区分字符大小写:file.txt 与 File.txt不是同一文件
  • 目录也是文件,在同一路径下,两个文件的名字不能相同
  • 支持使用除/以外的任意字符
  • 文件名首个字符不能使用特殊符号和数字
  • 文件名最长不能超过255个字符

先写到这里,理解有限,错误的地方还请大牛指出来。

阿里大老带你了解“计算机“的初识相关推荐

  1. 在计算机领域中图形用户界面,带图形用户界面的计算机

    摘要: 1.本外观设计产品的名称:带图形用户界面的计算机.2.本外观设计产品的用途:本外观设计产品用于运行程序.3.本外观设计产品的设计要点:在于屏幕中图形用户界面内容.4.最能表明本外观设计设计要点 ...

  2. 初识好朋友计算机课件,初识电脑朋友.ppt

    初识电脑朋友.ppt (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 初识电脑朋友电脑发展认识新朋友--认识电脑配件请同学扮演图片中的 ...

  3. spring boot web项目_阿里技术专家带你使用Spring框架快速搭建Web工程项目

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 We all have a past. It's how you deal with it. 每个人 ...

  4. 绕开“陷阱“,阿里专家带你深入理解C++对象模型的特殊之处

    摘要:本文介绍了C++对象模型的特殊之处,包括与C兼容的朴素模型,以及能支持多态的虚表模型,同时还带大家了解了构造函数与析构函数相关的一些特性与陷阱.这些内容能够帮助大家更好地学习和使用C++. 数十 ...

  5. PLC通过智能网关 MQTT对接阿里云(带CA证书加密),实现物模型数据显示

    IGT-SER系列智能网关支持各种PLC的以太网和串口协议,以及DL/T645.Modbus通讯,通过网关所带的参数配置工具软件,不用编程,即可打包和解析JSON格式的设备数据,通过MQTT.HTTP ...

  6. 你在读书日疯狂囤书,却还没学会读书方法 | 阿里大牛带你高效阅读

       来自北京的技术菜鸟张小跳提问:  最近一直在看 JavaScript 红皮书,从去年 9 月开始看的,到现在才慢吞吞看到事件部分.做了学习笔记,也做了简单的 demo,但笔记感觉基本就是在抄书, ...

  7. 一文带你掌握计算机体系结构核心内容

    很多人对计算机体系结构有一定的了解,但要问起什么是计算机体系结构,多半答不上来. 计算机体系结构(Computer Architecture)是描述计算机各组成部分及其相互关系的一组规则和方法,是程序 ...

  8. 微课视频小学用计算机画画,初识电脑绘画

    设计思路: 一.利用优芽网制作课件. 建立1位老师和2位学生角色,模拟课堂教学,指导学生,自主解决问题.这样的设计,和学生平时的课堂极度契合,能够快速的将他们带入到教学情景中. 优芽互动电影( www ...

  9. 单选按钮带文字_计算机二级MS office高级应用历年真题操作题文字解析

    ​word 1 题目 在考生文件夹下打开文档 WORD.DOCX. 某高校学生会计划举办一场"大学生网络创业交流会"的活动,拟邀请部分专家和老师给在校学生进行演讲.因此,校学生会外 ...

最新文章

  1. Java的JSON操作存储List到Redis
  2. mysql 索引合并
  3. 解耦 多态性 java_java多态
  4. flask html 得到文本框 input的内容_【笔记7】HTML及其常见标签
  5. 为什么短视频难逃【单列沉浸式】的真香定律?
  6. 2、nginx配置文件
  7. 正确使用计算机说课稿,《初识计算机》说课稿
  8. 优秀的基数统计算法——HyperLogLog
  9. Pro Silverlight 5 in C# 分享
  10. 【学习笔记】生成下一个排列(STL库函数next——permutation)
  11. RS232和RS485标准在DB9公/母头上的接线定义
  12. 如何创建您自己的MP3铃声
  13. excel2010 向程序发送命令时出现问题
  14. 前端技术教学第一周 10.15
  15. python爬取头条付费专栏视频_Python3从零开始爬取今日头条的新闻【五、解析头条视频真实播放地址并自动下载】...
  16. mysql分隔符_在sql文件中设置MySQL分隔符
  17. 四川大学2014年数学分析考研试题
  18. Altium Designer 20设置铜皮到板框的距离(设置内缩)
  19. MATLAB数学建模(一):MATLAB与数学建模
  20. python根据excel生成报表_Python实现导出数据生成excel报表的方法示例

热门文章

  1. 美股暴跌一夜市值蒸发10万亿,传吉利收购魅族,马斯克或任推特临时CEO,今日更多大新闻在此...
  2. 计讯物联智慧景区应用解决方案,开启交互式智慧旅游新篇章
  3. C语言思维导图(4)——简单函数
  4. 通过时间管理充分利用一天24小时
  5. 《学Unity的猫》——第十二章:使用Unity制作背包,皮皮的梦想背包
  6. IT创业疯魔史(读书笔记)
  7. 当再多大公司慢慢的放弃微软的技术时, 不知大家怎想?
  8. FATAL:gpu_data_manager_impl_private.cc(439)] GPU process isn‘t usable. Goodbye
  9. mysql exist in engine_数据库Table doesn't exist in engine
  10. 脑机接口基础学习06---机器学习算法随机森林判断睡眠类型