计算机基础从入门到放弃

计算机基础

一、编程语言的作用及与操作系统和硬件的关系

语言的存在是为了沟通,在中国用华语,美国用英语,在计算机领域中也不例外,编程语言是让计算机能识别的语言,编程语言也是程序员与计算机沟通的桥梁。

与操作系统之间存在依赖关系,当用编程语言编写完一个软件的时候,却没有操作系统来控制计算机的硬件,那就必须要自己写一个操作系统来控制计算机硬件

当已经在计算机上安装了操作系统了,那么就不需要考虑控制计算机的硬件了,只考虑用户软件与操作系统之间是否兼容。

与硬件的关系,当软件安装到永久保存的硬盘上面,运行软件时,会先从硬盘中找到这个软件的启动文件,然后CPU通过内存来从硬盘中读写程序。

二、应用程序-》操作系统-》硬件

答:用编程语言来编写应用程序的,但计算机的硬件却是按照机器码指令来执行操作的。于是,就出现了这样一个问题:用户如何才能用高级语言来指示一台只能识别

机器码指令的机器来工作。显然,在高级语言程序和机器硬仵之间,必须有一个中介来完成高级语言与低级语言的对接工作,这个中介就是操作系统来控制计算机的硬

三、cpu-》内存-》磁盘

磁盘是永久存放数据的地方,cpu是计算机的大脑核心,也是计算机中运行最快的一个,如果说cpu要从磁盘中读取数据来计算的话,会受限于磁盘的I/O速度,cpu那

边的需要等磁盘从中读写然后交给cpu计算,这就需要一个内存来进行从磁盘中提取数据的缓存,cpu就可以直接从内存中读取数据缓存这样的话就会快很多。

四、cpu与寄存器,内核态与用户态及如何切换

cpu是计算机的核心是计算机中运行最快的。

寄存器(L1)跟cpu的材料工艺是一样的所以cpu访问寄存器是无时延的可以达到1ns但存储容量只有1KB

寄存器是用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延。用来避免内存速率比CPU慢几个数量级的瓶颈问题。

寄存器的分类:

a.通用寄存器:用来保存变量和临时结果

b.程序计数器:保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令。

c.堆栈指针: 指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保

存在寄存器中的临时变量。

d.程序状态字寄存器(Program Status Word,PSW): 这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整

个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。

cpu有两种模式内核态和用户态,当cpu在内核态下运行时,可以通过操作系统来控制所有的硬件

当cpu在用户态下运行,通过用户程序来控制,但不能控制硬件。

用户态下工作的软件不能操作硬件,但是我们的软件,一定会有操作硬件的需求,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),

系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

五、存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池

L1缓存(寄存器),与cpu同材质构成,所以数据读写无延迟。读写速度是1ns虽然速度快但容量均<1KB。

L2缓存(高速缓存器)二级缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有限,二级缓存的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的

数据。同样道理,三级缓存和内存可以看作是二级缓存的缓冲器,它们的容量递增,但单位制造成本却递减。需要注意的是,无论是二级缓存、三级缓存还是内存都不能存储处理器

操作的原始指令,这些指令只能存储在CPU的一级指令缓存中,而余下的二级缓存、三级缓存和内存仅用于存储CPU所需数据。intelCPU的L2缓存是一整块的,多核多线程的话会出

现几个cpu抢一块L2缓存,ADM的CPU是把L2缓存分成相同大小的部分到CPU上,各有优劣。

内存(RAM)是系统存储主力,通常都是从硬盘读取数据临时存储以备cpu调用,但是断电后数据将不会保存。

EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多,

闪存在便携式电子设备中通常作为存储媒介。

CMOS与BIOS电池:CMOS是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,即使电脑是在关机状态没有加

电,时间也仍然可以保持时间的更新,当电脑加电时加载bios会进入cmos查找哪一个时启动磁盘,一块电池能使用五年以上,当电池没电时相关的配置和时间都会丢失。

六、磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU

每个磁头可以读取一段换新区域,称为磁道

把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

每个磁道划成若干扇区,扇区典型的值是512字节

数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间

平均寻道时间是指当用户发出指令要寻找一个文件时,磁盘磁头开始移动到存储那个文件位置所需要的时间,从指令发出寻址命令到找到目标文件的时间称为寻址时间

平均延迟时间当找到文件的时候,需要磁道转一圈在读取这个数据这个读取时间就是平均延迟时间。

虚拟内存与MMU许多计算机都有虚拟内存机制会让磁盘的某块地方划分为虚拟内存,一般大于内存的1.5倍,让计算机能运行大于内存的应用程序,会把没用的应用程序存放到虚拟内存里面等待处理,为了保障计算机的运行只能牺牲计算机的运行速度

所以会很卡。在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)。

七、磁带

在同等的价格中磁带要比其他的存储设备要低很多且拥有更大的容量,但是读写速度很慢时100s,当机房中出现天灾人祸时,磁盘的可移动性很强,常被用来做数据备份。

八、设备驱动与控制器

控制器是对硬件发起控制命令,负责给系统提供接口,厂商会给设备加上相应驱动来给操作系统来识别

控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

九、总线与南桥和北桥

总线连接各个硬件设备的线路

北桥(PCI桥)专门连接高速设备

南桥(ISA桥)专门连接慢速设备

十、操作系统的启动流程

windows操作系统

1.计算机加电

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数,选择启动设备

4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

5.根据分区信息读入bootloader启动装载模块,启动操作系统

6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

linux操作系统

1.计算机加电

2.BIOS自检

3.系统引导libo/grub

4.启动内核

5.初始化系统

6.执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置,以读写方式挂载根文件系统及其它文件系统,到此系统算是基本运行起来了,后面需要进行运行级别的确定及相应服务的启动。rc.sysinit所做的事情(不同的Linux发行版,该文件可能有些差异)如下:

7.获取网络环境与主机类型。首先会读取网络环境设置文件"/etc/sysconfig/network",获取主机名称与默认网关等网络环境。

8.测试与载入内存设备/proc及usb设备/sys。除了/proc外,系统会主动检测是否有usb设备,并主动加载usb驱动,尝试载入usb文件系统。

9.决定是否启动SELinux。

10.接口设备的检测与即插即用(pnp)参数的测试。

11.用户自定义模块的加载。用户可以再"/etc/sysconfig/modules/*.modules"加入自定义的模块,此时会加载到系统中。

12.加载核心的相关设置。按"/etc/sysctl.conf"这个文件的设置值配置功能。

13.设置系统时间(clock)。

14.设置终端的控制台的字形。

15.设置raid及LVM等硬盘功能。

16.以方式查看检验磁盘文件系统。

17.进行磁盘配额quota的转换。

18.重新以读取模式载入系统磁盘。

19.启动quota功能。

20.启动系统随机数设备(产生随机数功能)。

21.清除启动过程中的临时文件。

22.将启动信息加载到"/var/log/dmesg"文件中。

十一、应用程序启动流程

当运行应用程序,程序会找到硬盘中相应的启动文件生成进程存储到内存里,然后根据程序运行通过操作系统进行输入输出指令再由CPU完成启动应用。

时间: 2024-10-06 01:04:34

计算机基础从入门到放弃的相关文章

Linux从入门到放弃、零基础入门Linux(第四篇):在虚拟机vmware中安装centos7.7

如果是新手,建议安装带图形化界面的centos,这里以安装centos7.7的64位为例 一.下载系统镜像 镜像文件下载链接https://wiki.centos.org/Download 阿里云官网:https://mirrors.aliyun.com 现更新为:https://opsx.alibaba.com/mirror 清华软件镜像:https://mirrors.tuna.tsinghua.edu.cn/ 都可以, 下载centos7.7的64位版本镜像文件种子,然后用下载软件下载即可

iOS 即时通讯,从入门到 “放弃”?

原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. 注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读. 言归正传,首先我们来总

平面设计 计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

脱壳基础知识入门

现在加解密发展己形成2个分支了,一个就是传统的算法,另一个就是加密壳.越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那 么容易,这就要求解密者必须要有一定的数学功底和密码学知识,而这些在短时间内是不容易掌握的.除了密码学的应用,越来越多的软件加壳了,因此要求解密者 必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛.壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹.另外,论坛现在两极 分化比较严重,高手讨论的脱壳技术新手看不懂,很多人想学脱壳,但

运维工程师从入门到放弃必备书籍

By:Linxu  http://www.walker0909.com/ <鸟哥的私房菜>(基础版/服务器版) <构建之法--现代软件工程> <RabbitMQ实战高效部署分布式消息队列> <程序员必读软件架构> <OpenStack开源云 王者归来> <ELKstack权威指南> <Nginx高性能Web服务器详解> <Docker容器与容器云> <Zabbix企业级分布式监控系统> <奔跑

php从入门到放弃系列-04.php页面间值传递和保持

php从入门到放弃系列-04.php页面间值传递和保持 一.目录结构 二.两次页面间传递值 在两次页面之间传递少量数据,可以使用get提交,也可以使用post提交,二者的区别恕不赘述. 1.get提交 使用get提交来传递数据,在链接地址中修改发送到服务器的 URL 如下所示http://www.cnblogs.com/MarkRao/p/php01.html?gName=mark&gAge=26 ,当然也可以在表单中设置method="get",php中接收get提交过来的数

自学编程开发,从入门到放弃是种什么体验

文/上嵌科技(简书作者) 原文链接:http://www.jianshu.com/p/537ef1046cec 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 最近有几本书很火,看看你肯定会有感觉. 几本心痛的书 C/C++,Java这些开发语言,在大学计算机专业.理工类专业大多学习,Android,iOS也有不少同学买书或下载视频学习,但是最后都是没有结果. 一方面程序员成为最有"钱途"岗位,需求量见涨,另一方面很多计算机专业,理工类专业的同学,在

php从入门到放弃系列-03.php函数和面向对象

php从入门到放弃系列-03.php函数和面向对象 一.函数 php真正的威力源自它的函数,内置了1000个函数,可以参考PHP 参考手册. 自定义函数: 1 function functionName() 2 { 3 要执行的代码; 4 } 函数命名的准则: 函数的名称应该提示出它的功能 函数名称以字母或下划线开头(不能以数字开头) 二.面向对象 1.类基础语法: 1 <?php 2 class Site { 3 /* 成员变量 */ 4 var $url; 5 var $title; 6 7

电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut