计算机概论与linux的发展

来源:互联网 发布:淘宝店铺logo图片尺寸 编辑:程序博客网 时间:2024/05/02 05:06

CPU主要分为两个单元:

1> 算术逻辑单元:主要负责程序运算和逻辑判断

2> 控制单元: 主要协调各组件和各单元之间的工作。


CPU的分类:

1> 精简指令集:

Sun公司的SPARC系列(常用语学术领域的大型工作站,包括银行金融体系)

IBM公司的Power Architecture【包括PowerPc】...(例如sony公司的PS3)

ARM系列(手机,导航设备,路由器。。)   //ARM可能是全世界使用范围最广的了

2> 复杂指令集:

有AMD,intel,VIA等X86架构的CPU.(被大量个人计算机使用)

//最早intel开发的CPU的代号为8086,后来依此架构又开发了80286,80386,因此这种架构的CPU被称为X86架构、

//2003年以前由intel所开发的X86架构CPU由8位升级到16,32位,后来AMD依次架构修改新一代的CPU位64位,为了区别两者的不同。所有64位的个人计算机CPU又被统称为x86_64架构。


南北桥:

1> 北桥负责连接速度较快的CPU,内存,显卡等组件//北桥的总线称为系统总线,因为是内存传输的主要信道

2> 南桥二则连接速度较慢的周边接口,例如硬盘,USB,网卡等//南桥就是所谓的输入输出(IO)总线


外频与倍频:

所谓的外频指的是CPU与外部组件进行数据传输/运算时的速度,倍频则是CPU背部用来加速工作性能的一个倍数。两者相乘才是CPU的频率。

//超频:增大CPU的外频,倍频不变,理论上CPU的频率也会增大。不过由于频率并非正常速度,可能会在造成死机。


32位与64位:

CPU每次能够处理的数据量称为字组大小(word size),字组大小依据CPU的设计有32位和64位,现在所称的32/64位计算机就是按字组大小区分的

//最大支持内存和操作系统有直接关系,即使是64位处理器,使用32位操作系统支持的内存也最多为2的32
次方,就是4G。在windows 32位操作系统中最大只识别3.25-3.75之间,根据windows版本不同而不同。
而64位操作系统的寻址能力就是2的64次方。也就是17179869184G,当然这只是理论值,实际中不可能用
到这么大的内存,目前64位windows系统最大只支持128G。而当前主流主板只能加到16G


磁盘主要有IDE接口和SATA接口。

 SATA接口是串行数据接口,俗称串口。在硬盘外部传输速度目前最快可达250M/S 。
IDE接口是并行数据接口,俗称并口,在硬盘外部传输速度最快可达133M/S 。(每条线可以接2个IDE设备)
受硬盘内部结构的限制,硬盘内部传输的速度远远达不到,在实际应用中没有差别的。SATA接口数据线
体积小对机箱的散热更有利的。
SATA 接口比同转速的IDE接口的传输速度要快,价格比较同容量同转速同品牌的硬盘便宜80-150块钱左右
,而且内置高速缓存通常都在8M以上,而普通IDE缓存都在2M左右,相差甚远;
下图左边是SATA,右边是IDE接口。

 设备I/O地址与IRQ中断

1> I/O地址就像每个设备的门牌号,一般来说不能有两个设备使用同一个I/O地址

2> IRQ就像是各个门牌号连接到CPU的路径。设备可以通过IRQ中断信道告知CPU该设备的运行情况


CMOS与BIOS

1> CMOS记录主板上面的重要参数,包括系统时间,CPU电压频率,I/O地址与IRQ等。由于这些数据的记录需要电力,因此主板上才有电池

2> BIOS为写入到主板上某一块闪存或EEPROM的程序,它在开机的时候执行,以加载CMOS的参数,并尝试调用存储设备上的开机程序


扇区,磁道,柱面


每个扇区的大小是512字节


计算机的层级结构

操作系统内核和驱动程序开发商根据硬件的硬件规格接口与硬件连接

运行库根据系统调用接口与操作系统连接

应用程序通过API(应用程序编程接口)与运行库连接


多道,分时,分布式多任务

1> 计算机发展早起,CPU资源很昂贵,一个CPU只能运行一个程序,当这个程序读写磁盘的时候,CPU就被占用。很是浪费。于是人们开发了一个监控程序,当某个程序暂时无需使用CPU时,监控程序就把另外的正在等待CPU资源的程序启动,使得CPU可以被充分使用,这就是多道程序

2> 每个程序运行一段时间后主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一段时间,这对于一些交互式的任务尤为重要,这种程序协作模式称为分时系统

3> 多任务系统:操作系统接管了所有的硬件资源,并且本身运行在一个受硬件保护的级别。所有的应用程序都以进程的方式运行在比操作系统权限级别更低的级别,每个进程都有自己的地址空间,使得进程之间地址空间相互隔离。CPU由操作系统统一分配,每个进程根据进程的优先级都有机会得到CPU。这种CPU的分配方式成为抢占式。


linux的历史

1969年以前,Bell,MIT,GE合作开发Multics系统.

后来贝尔实验室退出。

参与本项目的Ken Thompson(贝尔实验室)在老婆出去探亲的时间内,写出了第一个汇编语言的unics

经过不断的改进,后来C语言作者,将B语言改成C语言,并用C语言写出了高级语言下的unics,后来发型了unix的正式版本

BSD的诞生:加州柏克来大学(Berkeley)的Bill Joy(sun公司创始人)取得unix的源码后,进行了修改。并命名为BSD(Berkeley softwife Distribution)。Sun公司即是根据BSD的内核进行自己的Unix版本的开发。(后来可以运行在X86硬件架构上面的FreeBsd即是BSD改版而来)

SYSTEM V系统:unix是贝尔实验室的工程师最先开发的,贝尔实验室当时隶属于美国电信大厂AT&T。这个AT&T沿着UNIX开发了SYSTEM V系统。

GNU项目与FSF(自由软件基金会): Richard Mathew Stallman(史托曼)在1984年发起了GUN项目。这个项目的目的是创建一个自由,开放的UNIX操作系统(Free Unix)。于是在GUN项目下,史托曼与其他人开发出了GCC,C函数库,bash shell,Emacs程序编辑器。这些软件被越来越多的人使用,进一步壮大了这个自由软件团体。

GUN(general public license:大意是普遍的公共的许可证) GPL:为了避免自己开发的软件被用于商业开发,违背自己的初衷。于是史托曼将GUN与FSF开发的软件都加入了GPL的版权声明。GPL的详细内容就不写了

GUN项目的初衷是创建一个自由,开放的UNIX操作系统,但是却开发了很多被普遍使用的软件,而没有开发合适的unix的内核。

芬兰boy:芬兰的这个大学生(linus Torvalds)开发了最早的linux,后来在社区的帮助下,一点点完善。并衍生了很多分支。linux是按posix标准开发的,是兼容自己的老父亲unix的。gun与fsf的软件后来也能在linux下使用了,于是史托曼认为linux应该叫做GUN/LINUX.以肯定自己的贡献blalala,,大概就是这样.linux后来也加入了GUN

linux的主要分支:



比较常用的最上面和最下面两条线 ret hat (其中一个分支是centos)与 debian(其中一个分支ubuntu)

后面系统安装的就不总结了。。。。。



Linux分区方案不要划分/boot分区:(这部分拷贝自网上,找不到原文出处了)

仅对于不知道怎么分区的用户而言,高级用户应该明白自己需要什么,例如确定自己使用的BIOS可能无

法读取100GB后的位置或是要使用LVM等。
linux社区的一个问题是,很多老旧的资料还在网上传来传去。其中一些真的需要更新了,例如给/boot

专门分一个100MB的分区这种做法。
曾经给/boot一个很小的分区是有十分充足的理由的,因为在二十几年前,BIOS只能认一个1024柱面的硬

盘,如果启动文件放在0-1023(从0开始数,共1024个柱面)之外,BIOS就无法读取启动所需的文件,从

而无法启动。为了兼容这种BIOS,就需要在磁盘前端分出一个小分区专门来存储启动文件。
但是现在,应该是找不到那么古老的主板了,即使能找到,也无法安装现在的linux了。
100MB的boot分区,有什么害处呢?
太小了,放不下现在启动所需的文件了。现在的linux,留下两个内核是很正常的,如果新内核有什么问

题,还可以用老内核。这台机器上现在有两个版本的linux内核(3.13.0-85 和 4.4.0.21),一共多大呢?
代码:
ls -al –block-size=M /boot
total 98M
看上去两个内核100MB勉强够用,但是现在的启动文件是越来越大的,例如3.13的initrd是29M,但4.4的

initrd有35M,下一次升级内核,100MB就不够用了。
另外在Debian系的Linux发行版上,还有另一个问题,老旧的内核不会被自动清除。上次手动清理冗余内

核的时候,/boot已经达到了700+MB。/boot分区满了,内核就无法安装,引发问题。
所以,不要划分/boot分区。
另外,使用gpt的硬盘那个EFI system partition不是boot分区,不要搞混了。

原创粉丝点击