计算机
计算机是具有数据处理与逻辑运算的机器。
它有输入单元,输出单元,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. LeetCode456:132模式(单调栈)

    解题思路:根据题意,我们首先首先要找到所有的极大值点,同时记录当前极大值点的左边的最小值.遍历所有点,看是否能够满足132条件.虽然记录极大值点的地方可以优化,减小比较的次数,但是由于我们不知道极大值 ...

  2. 开源数据血缘和元数据管理框架DataHub的血缘摄取 V0.12.1版本

    DataHUb的安装很简单:你有绿色上网就soeasy 前置条件,你已经运行好DataHub整个Docker-Compse服务 打开地址:http://host:9002/ 输入账号DataHub 密 ...

  3. redis添加缓存配置类

    redis添加缓存配置类 package com.atguigu.servicebase.config; import com.fasterxml.jackson.annotation.JsonAut ...

  4. Rust实现线段树和懒标记

    参考各家代码,用Rust实现了线段树和懒标记. 由于使用了泛型,很多操作都要用闭包自定义实现. 看代码. // 线段树定义 pub struct SegmentTree<T: Clone> ...

  5. 介绍一个prometheus监控数据生成工具

    prometheus-data-generator Prometheus数据模拟工具旨在通过配置文件模拟Prometheus数据,用于测试和开发目的.该工具允许您生成用于测试和开发的合成数据. 配置 ...

  6. vivo 海量微服务架构最新实践

    作者:来自 vivo 互联网中间件团队 本文根据罗亮老师在"2023 vivo开发者大会"现场演讲内容整理而成.公众号回复[2023 VDC]获取互联网技术分会场议题相关资料. v ...

  7. OpenCV计算机视觉学习(15)——浅谈图像处理的饱和运算和取模运算

    如果需要其他图像处理的文章及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractic ...

  8. Taro架构构析(2):Taro 设计思想及架构

    从之前微信公众号的开发经验来说,以及腾讯开放平台的接入 等经验来看,一直对腾讯的开放文档 有心理阴影. 微信小程序从文件组织上看,一个小程序页面或组件,需要同时包含 4 个文件:脚本逻辑.样式.模板以 ...

  9. 开心档之MySQL 创建数据表

    MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (col ...

  10. Solon2 的 Bean 生命周期

    Solon 框架的 Bean 是被容器托管的,所以它的生命周期只限定在容器内部: 时机点 说明 补充 AopContext::new() 是在应用初始化时执行 ::new() AopContext:: ...