计算机
计算机是具有数据处理与逻辑运算的机器。
它有输入单元,输出单元,CPU 内部的控制单元,逻辑处理单元以及内存组成。
 
输入单元如鼠标键盘等输入设备;
 
输出单元如打印机,显示屏,等输出设备;
 
CPU (中央处理器,Central Processing Unit),CPU 内部含有微小指令集,可分为精简指令集(RISC)和复杂指令集(CISC)。这些指令集可以解析指令码从而让 CPU 干活,这也就意味着我们所用的程序软件都需要经过微指令集才能完成程序的功能,比如听歌打游戏等等。
既然 CPU 需要工作,那就有工作速度,又叫频率,频率指的是 CPU 每秒的工作次数,如 3.0GHz 即表示每秒工作 3.0 * 10^9 次。
 
内存,用来存放数据的地方,CPU 工作所需要的数据都是从内存中来的。
 (CPU 的频率很高,导致以这样的频率从内存中读数据的话,内存是远远跟不上的,所以又将 CPU 的频率分为外频和倍频,CPU 与外部组件如内存进行数据传输/运算的就用外频,而倍频就是 CPU 内部用来加速工作性能的倍数,即倍频 = 频率 / 外频)
 
内存可分为动态随机访问内存(Dynamic Random Access Memory, DRAM)和静态随机访问内存(Synamic Random Access Memory, SRAM)。
DRAM,只有在通电时才记录并且使用,断电后数据就消失了,所以又叫挥发性内存;
SRAM 的由来是因为 CPU 通过北桥从内存中读数据,那么如果比较常用的数据被事先放置到 CPU 内部就不需要再去北桥读数据了,这就是缓存 cache 的概念。前面知道 DRAM 是实现不了与 CPU 频率相同的,所以用 SRAM 来保存这部分数据。
 
[***@*** ~]$ cat /sys/devices/system/cpu/cpu0/cache/index0/size
32K
[***@*** ~]$ cat /sys/devices/system/cpu/cpu0/cache/index1/size
32K
[***@*** ~]$ cat /sys/devices/system/cpu/cpu0/cache/index2/size
256K
[***@*** ~]$ cat /sys/devices/system/cpu/cpu0/cache/index3/size
35840K

index 0 和 index 1 表示第一层缓存的 数据缓存和指令缓存,index2 表示第二层缓存,index3 表示第三层缓存。

 
 
硬盘,由许多盘片,机械手臂,磁头与主轴马达所组成。数据被写入到具有磁性物质的盘片上,实际运行时,主轴马达让盘片转动,然后机械手臂可伸展让磁头读取盘面上的数据。
硬盘的存储量可根据公式: header * cylinder * sector * 512 bytes 计算,sector 指盘片上的扇区,它是由圆心以放射状方式分割出的磁盘的最小存储单位,每个扇区大小固定为 512 bytes。扇区组成一个圆就称为磁道 Track。在多硬盘上,所有盘面上的同一个磁道可以组成一个柱面 Cylinder。所以上面的公式就理解为 header 数量 * 每个 header 负责的柱面数量 * 每个柱面所含有的扇区数量 * 扇区的容量。
 <硬盘的详细介绍可看这里>
 
 
主板,主板上面集成了一堆芯片组,主要分为两个桥接器北桥和南桥,北桥负责连接速度较快的 CPU,内存,显卡等,南桥负责连接速度较慢的设备,如硬盘,网卡等。
 
 
操作系统
计算机组装好了,但是由于它只认识 0 和 1, 所以要让它工作就得写汇编语言,翻译成机器码给计算机执行。这种方式的缺点是程序不能移植,换到其它硬件上就不能用了;太过复杂,需要了解硬件的功能函数,才能对应的写程序代码;等等。
 
基于此,操作系统就诞生了,它是一组程序,负责管理计算机的所有活动以及驱动系统中的所有硬件。
 
它由操作系统内核和系统调用层两部分组成。
操作系统内核负责管理计算机的所有硬件,内核程序放置到内存当中的区块是受保护的,并且开机后就一直常驻在内存中。
内核的主要功能有:
  • 系统调用接口(system call interface)
  • 程序管理(Process control)
  • 内存管理
  • 文件系统管理
  • 设备驱动(Device driver)
系统调用层,是一组开发接口,通过它使得开发人员不需要考虑内核的相关功能,直接调用开发接口即可开发。比如,写 C 程序语言只需要参考 C 程序语言的语法即可实现驱动内核来工作。 
 
 
计算机开机执行的第一个程序是 BIOS(Basic Input Output System),BIOS 会加载 CMOS 中的参数,并尝试调用存储设备中的开机程序,再进入到操作系统中,从而完成开机。
BIOS 是一套程序,它被写死到主板中的内存芯片中,这个内存芯片在不通电的情况下也能将数据记录下来,这块芯片叫做只读存储器(ROM,Read Only Mermory)。
CMOS 是一个芯片,上面记录着主板上的重要参数,包括系统时间,CPU 电压与频率,各项设备的 I/O 地址与 IRQ 等。
<操作系统加载过程可看这里>
 
 
Liunx
类似于 Windows 系统,Liunx 也是一个操作系统。
它的优点有:系统稳定,免费或少许免费,安全性/漏洞快速修补,多任务/多用户,网络功能强大等等,使得 Liunx 很适合用来做服务器的操作系统。
Liunx 版本: Liunx kernel 版本 + Liunx distribution。 Liunx distribution = Kernel + Softwares + Tools。
 
 
(完)

每天学五分钟 Liunx 000 | 计算机与 Liunx的更多相关文章

  1. 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange

    如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...

  2. 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画

    原文:零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形 ...

  3. 五分钟学Java:如何才能学好Java Web里这么多的技术

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

  4. 一门能让你五分钟学会的语言-Brainfuck

    看到标题,不出意外的话,你肯定开始骂我了:**标题党,什么编程语言五分钟就能学会? 其实我本来也是不相信的,但是学过了才知道这是真的. 1.Brainfuck 看到这个小标题,不要误会,我没有骂人. ...

  5. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  6. 《sed的流艺术之一》-linux命令五分钟系列之二十一

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

  7. C语言 · 上帝造题五分钟

    算法提高 上帝造题五分钟   时间限制:1.0s   内存限制:256.0MB      问题描述 第一分钟,上帝说:要有题.于是就有了L,Y,M,C 第二分钟,LYC说:要有向量.于是就有了长度为n ...

  8. 算法笔记_105:蓝桥杯练习 算法提高 上帝造题五分钟(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 第一分钟,上帝说:要有题.于是就有了L,Y,M,C 第二分钟,LYC说:要有向量.于是就有了长度为n写满随机整数的向量 第三分钟,YUHC ...

  9. 五分钟搞定Linux容器

    [TechTarget中国原创] Linux容器针对特定工作负载提供了全新的灵活性与可能性.存在很多解决方案,但是没有一个解决方案能够像systemd容器那样进行快速部署.给我五分钟,本文将介绍如何使 ...

  10. 五分钟搞定 HTTPS 配置,二哥手把手教

    01.关于 FreeSSL.cn FreeSSL.cn 是一个免费提供 HTTPS 证书申请.HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证 ...

随机推荐

  1. DataGrip给DateTime类型字段赋值当前系统默认时间

    CURRENT_TIMESTAMP alter table 表名 modify column update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP O ...

  2. 安卓之各组件的LayoutParams分析

    文章摘要 在Android开发中,LayoutParams是一个非常重要的概念,它用于描述View在其父容器中的布局行为.不同的ViewGroup有不同的LayoutParams子类,例如Linear ...

  3. 【UniApp】-uni-app-打包成网页

    前言 经过上一篇文章的介绍,已经将这个计算器的计算功能实现了,接下来就是我们项目当中的一个发包上线阶段,我模拟一下,目的就是为了给大家介绍一下,uni-app是如何打包成网页的. 除了可以打包成网页, ...

  4. 将微服务注册到nacos中

    将微服务注册到nacos中将微服务注册到nacos中 首先修改pom文件,引入nacos依赖,名为spring-cloud-starter-nacos-discovery <dependency ...

  5. tomcat中文乱码怎么解决

    需要修改Tomcat根目录下面的"logging.properties"文件,把所有的encoding=UTF-8的改成encodng=GBK,保存之后,重启Tomcat服务器,就 ...

  6. Java反序列化漏洞-CC6链分析

    CC6利用链分析 经过之前对CC1链和URLDNS链的分析,现在已经对反序列化利用链有了初步的认识,这次来分析一个最好用的CC利用链--CC6. 为什么CC6是最好用的CC利用链,因为CC6不限制jd ...

  7. Harbor私有镜像仓库搭建

    为什么选择Harbor 你可能会问既然我们已经有了 Docker 镜像仓库为什么还需要 Harbor 呢?嗯,Harbor 是 Docker 镜像仓库的企业级扩展,用途更广泛.这些新的企业级功能包括: ...

  8. 请注意,你的 Pulsar 集群可能有删除数据的风险

    在上一篇 Pulsar3.0新功能介绍中提到,在升级到 3.0 的过程中碰到一个致命的问题,就是升级之后 topic 被删除了. 正好最近社区也补充了相关细节,本次也接着这个机会再次复盘一下,毕竟这是 ...

  9. 面试官:请说一下Mysql事务实现原理

    在日常工作中,数据库是我们必须使用的,其中使用最多的也是大部分中小公司的选择是Mysql,跳槽面试中也是必问的,今天我们就说一下Mysql事务 MySQL中的事务实现原理主要涉及以下几个方面: ACI ...

  10. 使用 Python Poetry 进行依赖管理

    摘要:在本教程中,您探索了如何创建新的 Python Poetry 项目以及如何将 Poetry 添加到现有项目中. 本文分享自华为云社区<使用 Python Poetry 进行依赖管理> ...