Python学习第一天----计算机基础

一、学习计算机基础的目的

再高级的编程语言都是运行在操作系统之上的,而操作系统又是运行在硬件基础之上。所以在开始学习编程之前需要深刻的了解并熟知计算机的基础知识。包括硬件基础及操作系统基础。

二、计算机硬件发展史

计算机的定义:是现代用于高速计算的一种电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。

发展史:

原型或者说灵感起源于中国

1946年2月14日情人节这天,世界上第一台电子计算机“电子数字积分计算机ENIAC”在美国宾夕法尼亚大学问世。

电子管时代---晶体管时代---集成电路时代---大规模超大规模集成电路

三、计算机的组成

硬件系统的组成:运算器,控制器,存储器,输入设备,输出设备

硬件系统---操作系统---应用软件

操作系统其实也是一个系统软件,用来控制和协调计算机及外部设备,应用软件就是例如QQ、魔兽世界等此类软件。

四、计算机硬件介绍

CPU、存储器、视频监视器、键盘控制器、Usb控制器、硬盘控制器、及显示器、键盘、鼠标、、硬盘、声卡、显卡等等都属于计算机硬件。

1.CPU

CPU负责计算,内存及硬盘负责存储信息,鼠标键盘用来给计算机输入指令,显示器用于输出运算信息。

CPU从内存中取指令--》解码--》执行,然后再循环往复执行此操作,每个CPU都有自己的一套指令集,不同架构的CPU运行不了不支持此指令集的程序。

关于寄存器的概念:

寄存器分类:通用寄存器(用于保存变量和临时结果)、程序计数器(记录程序执行的位置)、堆栈指针(先进后出,和队列正好相反)、程序状态字寄存器(很重要的一个寄存器,包含了CPU优先级、CPU模式、还有其他控制位)

CPU有两种模式:用户态和内核态,当内核态时,cpu可以执行所有指令,也就意味着它可以调度硬件,但是在用户态下只能执行部分指令集,也就是说不能够调度硬件。用户态和内核态之前的切换通过“系统调用”来实现。

多线程和多核芯片:CPU中有L1、L2、L3各种缓存,缓存的制作材质与CPU的材质相同,所以cpu访问缓存时没有延迟。为了增强CPU的性能,intel公司提出了多线程的概念,进程是资源单位而线程才是CPU的执行单位。

2.存储器

理想的存储器当然是速度快容量大价格便宜,但目前的技术发展的水平来看是不可能的。

存储器大概有以下几种:寄存器、高速缓存、内存、硬盘、磁带,从前到后基本上是速度越来越慢,容量越来越大,体积也越来越大。L1缓存即寄存器在32位系统中大小为32*32,在64位系统中为64*64,与CPU的速度一样快。高速缓存就是L2,当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中,如果是,则称为高速缓存命中,否则称为高速缓存未命中,这时候就要去内存中读取数据。

主存:即内存,是RAM,断电丢失。ROM是非易失性随机访问存储,EEPROM是电可擦除ROM是非易失性的。CMOS:易失性,可存储时间及日期,其他一些硬件的配置参数,启动磁盘等信息,通常有一块电池供电,位于主板上。

硬盘:判断硬盘的两个指标,一个是转速,一个是容量。8个bit=1Bytes,1024Bytes=1KB,1024K=1MB,1024MB=1GB,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。硬盘是由许多盘片堆叠而成的,中间有盘柱,还有机械手臂,每个盘片都有一个磁头。一个扇区的值为512个字节,在Linux系统中,数据以Block块进行存储。八个扇区形成了一个块,即4KB。数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间 ,寻道时间就是机械手臂找到数据所在的磁道的时间,延迟时间就是磁头在磁道上找到所需数据的平均时间。

虚拟内存:根据现实情况,计算机的内存在某些时候很显然是不能满足大程序的运行的要求的,比如物理内存大小是2G,而这时有一个8G的程序需要运行,那么计算机这时候就需要通过存储器管理单元MMU找到硬盘中对应的一块地方并将其划分为虚拟内存。Linux系统下的swap分区其实就是虚拟内存

上下文切换:从一个程序切换到另一个程序上去运行,可以提升系统的性能。

磁带:容量大,常用于大型数据库系统备份

I/O设备:包括设备控制器和设备自身,每一个插硬件的地方都有一个设备控制器。

总线:如图

北桥连接的都是诸如:高速缓存、CPU、内存等高速设备

南桥连接的都是诸如:硬盘、显卡、USB设备、声卡等低速设备

五、计算机启动过程

第一步:通电

第二步:运行BIOS,检测CPU、内存、硬盘等

第三步:读取CMOS中的信息,包括硬件配置信息及系统启动盘选择

第四步:读取启动盘的第0磁道的第一个扇区,也就是MBR(主引导记录),共512个字节,前446个              字节为引导信息,中间64个字节为分区信息,后2个字节为标志位

第五步:根据MBR读入相应的启动模块从而启动操作系统

第六步:这时候操作系统再询问BIOS,获取配置信息和硬件信息,并检测其驱动程序的存在,如果             没有会提示安装,如果都有驱动程序,操作系统便将它们调入内存运行,然后创建相应进             程,运行图形化用户界面。至此,计算机启动完成。

附:linux启动过程

第一步--加载BIOS

当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。

第二步--读取MBR

众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。

系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0x7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

第三步--Boot Loader / Grup

Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。

系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的     操作系统。

第四步--加载内核

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK,booting the kernel”。

系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

第五步--用户层init依据inittab文件来设定运行等级

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:initdefault:”,这就表明Linux需要运行在等级5上。Linux的运行等级设定如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Window支持的多用户模式

6:重新引导系统,即重启

关于/etc/inittab文件的学问,其实还有很多。

第六步--init进程执行rc.sysinit

在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的。

启动第七步--启动内核模块

具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

启动第八步--执行不同运行级别的脚本程序(/etc/rc.d/rc $RUNLEVEL    #$RUNLEVEL为缺省的运行模式 )

根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

第九步--执行/etc/rc.d/rc.local

你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:

# This script will beexecuted *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。

第十步--执行/bin/login程序,进入登录状态

此时,系统已经进入到了等待用户输入username和password的时候了,你已经可以用自己的帐号登入系统了。

时间: 2024-10-07 06:10:12

Python学习第一天----计算机基础的相关文章

Day3: Python学习笔记之计算机基础——网络片

Day3: Python学习笔记之计算机基础--网络片 什么是互联网协议以及为何要有互联网协议? ?互联网协议本质上是为了方便连接两台计算机而指定的一系列统一的标准. osi五层模型 计算机之间要实现数据传输必须要经过以下五层协议: ? 模型 ,协议 ,硬件 ? 应用层, http协议.用户自定义协议 ? 传输层, TCP/UPD协议 ,四层交换机.四层路由器 ? 网络层, IP协议, 三层交换机.路由器 ? 数据链路层, 以太网.电信号分组, 网桥.以太网交换机.网卡 ? 物理层, 传递电信号

记录学习第一天--计算机基础概述

好的开端,坚实的基础.看的视频有点老,思绪有点乱,听得也有点懵,整理下写写,希望大师们给予指引.一:计算机基础1)计算机三大组成部分: 运算器:以二进制形式运行.开关连接为1,关闭为0. 存储器:存储数据,也存储指令. 控制器:接受控制指令,读取数据.获取控制指令的线叫控制总线.获取指令的线叫指令总线. cpu的频率和缓存:频率:一次频率完成一次事件.缓存:CPU和内存之间要折中处理,如cpu处理过快,但从内存提取指令过慢,就需要中间有个过度,那就是缓存.寄存器,既是CPU的工作台,是存放计算数

各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一些相关专业的书籍. 3.Python和Java.PHP.C.C#.C++等其他语言相比? Python:轻量级.易学.自由/开放源码软件.可移植性.支持面向对象.丰富的库.规范的代码. Java:优点:开源性,功能强大,库多 缺点:编译速

Python学习第一弹——Python环境搭建

一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用

第一章计算机基础

第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信. 人用程序通过编程语言解释器,指令操作系统,最终控制电脑硬件来做符合人们需求的过程 1.2 操作系统 操作系统用于协同或控制硬件之间进行工作,常见的操作系统有那些: windows linux centos [公司线上一般用] mac 1.3 解释器或编译器 编程语言的开发者写的一个工具,将用户写的代码转换成010101交给操作系统去执行

python 学习第一天

python 学习了好久,发现还是个小白,python还是不会用,从今天起每天学写一点小程序,做个打不死的小强. 相关知识:列表,字典 #!/usr/bin/env python people = { 'yong':{'phone':'123', 'addr':'Shang hai' }, 'bu':{'phone':'456', 'addr':'Wu han' }, 'yan':{'phone':'789', 'addr':'He nan' } } lables = {'phone':'pho

Python学习一:序列基础详解

作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:[email protected] 日期:2017-11-18 Python学习一:序列基础详解 一:序列介绍 Python中一些类型的变量,就像容器一样,收纳多个数据,序列就像一个有序的队伍,像整齐的万里长城,存储着各种各样的数据,他们按照一定的秩序排列在一起,很威武,很美观,所以说序列是有序的数据集合.序列包含的一

第一章 计算机基础知识

第一章 计算机基础知识 第一部分 概述 1.1946年2月15日,第一台计算机 ENIAC 2.物理原件(电子原件) 第一代:电子管.第二代:晶体管.第三代:中小规模集成电路.第四代:超大规模集成电路.第五代:超导材料.第六代:人工智能.#考试考到第四代. 3.计算机的分类 巨型机,大型机,中型机,小型机,微型机 现在的巨型机也是存在的 4.微处理器(CPU.中央处理器)由控制器.寄存器.运算器组成 第二部分 微机系统的组成 CPU>内存>外存 #速度 CPU和内存之间有一个CACHE,叫做高

python 学习第一章(python基础编程第二版)

第一章:基础知识 1.双斜线:实现整除的操作符 >>>1//2 0 就算是浮点数,双斜线也会执行整除 >>>1.0//2.0 0.0 2.幂(乘方)运算符:双星 >>>2**3 8 tip:可以用函数pow代替运算符,pow(2,3) 3.十六进制和八进制 十六进制:前面加0x,第一个是数字0 >>>0xAF 175 八进制:在3.0以上版本的python中加0o,首数字是0,第二个是字母o >>>0o10 8 4.