计算机基础知识有哪些

李盛老师

计算机基础知识

1,计算机组成原理

如果你不是做操作系统/驱动程序的,直接和硬件打交道的机会很少,因为操作系统已经把他们屏蔽掉了,提供了抽象的API给我们使用。

但是还必须理解冯诺依曼体系的结构,CPU和内存,硬盘,各种外设之间的关系,寄存器、缓存等知识。CPU有哪些指令,如何执行这些指令,如果实现数组,结构体,函数调用,这就涉及到汇编的知识。像原码,反码,补码,定点数、浮点数的表示和运算也是编程中必备的知识,几乎每种语言都要涉及。

现在很多语言都是在虚拟机上运行的,你只要是了解了计算机的组成原理,再去看哪些虚拟机,就会发现概念都是相通的。另外CPU中的缓存,缓存一致性协议,DMA的异步思想都会在应用层中有所体现。《编码》是一个更加科普性,但是也更加有趣的讲组成原理的书。

2,操作系统

操作系统是比较枯燥的, 站在应用层的角度,我认为重点是掌握操作系统对外提供的抽象,包括进程、线程,文件,虚拟内存,以及进程间的通信问题。几乎所有的编程语言都会涉及到对多进程或者多线程编程的支持, 特别是多线程的并发编程,所以必须得搞明白他们的本质是什么,线程都有哪些实现方式。得真正地体会到“进程是资源分配的最小单位,线程是调度的最小单位。” 这句话的含义。

几乎所有的编程语言都会涉及到锁和死锁,最好在最底层理解锁是怎么实现的。需要理解虚拟内存和物理内存直接的关系,分段和分页,文件系统的基本原理。对于进程的调度,页面分配/置换算法,磁盘的调度算法,I/O系统,我认为优先级比较低。

3,计算机网络

必须要理解的是这些:

什么分组交换。

TCP可靠性传输原理,TCP/IP的协议细节, 三次握手,四次挥手,TCP状态转换。

几个重要的协议DHCP,UDP, ARP, DNS。

能够说出一个客户端如何在接入网络以后,通过这些协议,跨域网络和服务器通信的。

和应用层结合非常紧密的Socket知识和网络安全(对称加密,非对称加密,Hash, 数字签名,以及集大成者Https)

至于网络层的路由选择算法,链路层的各种协议,我认为优先级比较低。

以上这些知识,在你学习Redis ,Ngnix, Tomcat, LVS等软件时将有极大的帮助。

4,数据库

这个和日常工作结合极其紧密,不用我再多说,包括最基本的SQL,各种范式,事务及其隔离级别,事务的实现方式,索引及其实现方式,B+树等等。

5,编译原理

你一辈子也许都不会去写一个编译器,但是很有可能会利用现成的工具去生成/操作一个抽象语法树(AST),甚至可以会写一个DSL(领域特定语言)。所以你得理解词法分析、语法分析、语义分析,中间代码生成,代码优化这个基本编译的过程。

6,分布式的理论知识

由于现在的系统慢慢地变成了分布式, 所以又扩展出了很多相关基础知识需要学习:

6.1,数据复制与一致性:

CAP理论, BASE原则,幂等性, 2PC, TCC,Paxos , Raft , Gossip

6.2,数据分片和路由:

Hash分片:Hash取模(实际中非常常见的算法), 虚拟桶(Redis使用),一致性Hash(memcached使用)

7,最后想说的是,不能带着特别功利的目的去学习这些基础,不能想着立刻、马上就应用到实战中,从中获益。更重要的理解掌握它们背后的思想!

计算机组成

(一) 计算机硬件

计算机硬件从外观上看, 由主机和外部设备组成。具体由运算器、控制器、存储器、输入设备、输出设备五个逻辑部件组成。

1. 中央处理器———CPU

CPU 由运算器和控制器组成, 是计算机系统中必备的核心部件。CPU 品质高低,直接决定计算机系统的档次, CPU 的最重要指标是主频和数据传送的位数。主频越高,运算速度越快。数据传送位数是同一时间能同时并行传送的二进制信息位数, 即常说的16 位机、32 位机、64 位机。

2. 存储器

存储器分为内存和外存, 内存可分为随机存取存储器(RAM) 和只读存储器(ROM)。外存包括硬盘、软盘、光盘、优盘、移动硬盘等。

3. 输入设备

输入设备的主要作用是将信息输入计算机。常见的输入设备有:键盘、鼠标、扫描仪、摄像头等。

4. 输出设备

输出设备的主要作用是将结果反馈给人。常见的输出设备有:显示器、打印机、投影仪、绘图仪、扬声器等。

(二) 计算机软件

软件是为方便使用计算机和提高效率而组织开发的程序, 可分为系统软件和应用软件两大类。

1. 系统软件

系统软件是控制、协调计算机及外部设备, 支持应用软件开发和运行的软件。系统软件主要分为操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。

(1) 操作系统:dos, Windows 系列, Linux。

(2) 语言处理系统:又称翻译程序。人和计算机交流信息使用的语言称为计算机语言, 通常分为机器语言、汇编语言和高级语言三类。常用的高级语言有C、VB、VC、Foxpro、Delphi 等。

(3) 数据库管理系统:对数据库进行加工、管理的系统软件。包括ACCESS、SQL、SERVER 等。

2. 应用软件

应用软件是为解决各类实际问题而设计的程序软件。包含办公软件、互联网软件、多媒体软件等。

计算机基础操作入门知识

一、重命名文件或者文件夹的方法

1、选中--右键--重命名

2、选中--f2--重命名

二、新建文件夹的方法

选中合适的位置---右键---新建文件夹--输入名字--回车

三、鼠标的常用操作

移动 拖拽 双击 单击 滚动

四、启动记事本

1、程序--所有程序--附件--记事本

2、右键--新建--文本文档--回车

注:推荐使用第二种

记事本的作用

用于简单的文字编辑

光标:表示文字要输入的地方

五、切换输入法

输入法之间的切换:Ctrl+Shift中英文之间的切换:shift大小写之间的切换:Caps Lock暂时切换大小写:按住shift+输入字母

六、输入符号

按住shift+符号对应的键盘

七、插入文字

把光标移动到对应的地方,直接输入文字八、删除1、退格键删除:删除光标前面的内容2、delete删除:删除光标后面的内容九、撤销操作Ctrl+Z十、打空格使用空格键十一、换行Enter键十二、选中文字按住鼠标左键、拖动鼠标到想要的位置

十三、保存文件

1、Ctrl+S

2、文件--保存

3、文件---另存为--选择合适的位置--确定

十四、退出记事

1、文件--退出

2、点×关闭

十五、调节字体格式--字体--调节大小、形状、字体---确定

十六、复制

1、选中--右键--复制

2、选中--ctrl+c

十七、剪切

1、选中--右键--剪切

2、选中--ctrl+x

十八、粘贴

1、选中合适位置---右键--粘贴

2、选中合适位置---ctrl+v注:复制后原来的文件保留,剪切后原来文件没有