复习:计算机只认识二进制
所以,@想一想@:大家是用01010100001……和电脑一起玩么?
如果你的电脑是自己攒的,硬件组装完成之后的第一件事就是:安装windows。
windows就是一种操作系统(Operation System):
图标 |
说明 |
特点 |
|
windows |
图形化界面(GUI),以窗口(window)为核心,主要用于PC(Personal Computer) |
|
Linux |
命令行(演示)、主要用于服务器、开源免费 |
|
苹果 |
MacOS(用于PC)和iOS(移动端) |
|
Android |
用于移动端设备(手机和平板) |
|
Chrome |
试图用一个浏览器代替操作系统:配合Chrome笔记本发行 |
补充知识:
更多详见:弯道才能超车:操作系统那些年
@想一想@:为什么在手机上安装APP的时候,要区分Anroid版还是iOS版?
G(Graphic)UI vs cmd
其他,苹果也是靠UI颜值(华丽流畅)俘获用户
一人一机 => 多人一机(PC) => 一人一机(手机)
网卡:有线 vs 无线
互联网时代到来:网络连接是计算机的一个功能 => 计算机是网络的一个终端
注意:权限≠安全(举例:权限是门,安全是锁)
曾经的争论:Linux 比 windows 更安全吗?
尘埃落定:
安装操作系统的时候,一般也就安装好了驱动程序。(一般操作系统自带常用驱动程序)
驱动(程序)是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口(?),操作系统只有通过这个接口,才能控制硬件设备的工作。
演示:此电脑 - 管理 - 设备管理器 - 某硬件 - 右键:更新驱动程序
所谓设备,典型的就包括:鼠标键盘/声卡/网卡/摄像头……
理解:
普通用户,日常接触最多的,还是文件管理。理解:
其中,文件可以被分为两种:
演示:打开cmd窗口
盘符转换:直接F:(不要忘记后面的冒号)
目录操作:
文件操作:
I/O(Input/Output):很多编程语言会用IO来代表文件操作。这是因为以CPU和内存,或者当前运行时(简单理解为当前在CPU和内存中运行的程序)为参照物,文件的读写就是输入输出的过程。
流(stream):在对文件进行读写的时候,我们有时候会说“文件流”,有时候我们还会听到“数据流”的说法,啥意思?
文件的本质是一个有序的(ordered)命名的(named)字节(byte)组合,对文件的读取和写入,就像给池塘抽水灌水一样,会形成和水流一样的数据流(stream)。除了文件读写会形成“流”,网络数据交换也可以是“流”,甚至内存里面的大段数据移动,也可以是“流”……
序列化(serilize):简单的理解,内存中存放数据(对象)的格式/方式,和外存(硬盘/网络)中存放数据(文件)的方式是不一样的。如果我们需要将内存中的对象用硬盘保存(或网络传输),就需要将其序列化,即转换成文件的字节流格式。反之,将以文件格式的数据还原成内存中的对象,就被称之为反序列化(deserialize)。
内存(外存也一样)是一块一块的,每一块都有它的地址。(联想:宿舍/街区/仓库)
归根结底,我们的程序,总是通过地址找到内存,然后再读取到其中的数据。
内容还可以是另一个内存的地址。
内存的地址又被称之为指针(pointer),或者引用(reference)。
没有操作系统的时候,程序直接使用内存的物理(真正的)地址。
@想一想@:这样做的问题在哪里?
引入操作系统之后,
现代编程语言更进一步,通过编译/解释器、垃圾回收等机制,让开发人员根本(至少99.99%的时候)不用操心内存的使用。
多快好省!前端后端,线上线下,名师精讲
更多了解 加: