“计算机“的初识

 计算机的组成

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

硬件系统

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

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个字符

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值