• 操作系统与编程语言


    操作系统

    操作系统是什么

    1. 我们无法直接与硬件进行交流,所以需要找一个管家传达命令,这个管家就是操作系统。(所以电脑中会莫名少掉一些内存)
    2. 其实就是为了方便,人为的去规定一些操作和硬件相对应

    操作系统做了什么

    1. 接受外部的指令转化成0/1发给CPU
    2. 翻译你写的字符,把对文件的操作从繁(控制高低压电平)到简(为所欲为、一个个指令,接口)
    3. 把一些对硬件的复杂操作简化封装成一个个接口:
      • 双击代表打开
      • ctrl+s代表保存等

    文件是什么?

    我们桌面上所看到的文件只是操作系统提供给你的接口,比如同样的文件,Linux和windows就是采用不同的方式去操作文件

    为什么要有操作系统

    如果要控制计算机,必须要有操作系统,简化操作,规定一些操作所代表的二进制数,以前战乱年代需要写,现在只需要安装

    操作系统有什么用

    因为以后开发的都是应用程序,而应用程序是无法操作硬件的,而需要操作硬件,都是调用操作系统的接口

    计算机的组成

    1. 应用程序:便利生活,具体:干活,完成一个个任务,和操作系统,人交互

    2. 操作系统:接受外部指令,控制硬件(主要CPU)。从繁(控制高低电平)到简(一个个指令,接口),和应用程序,人,硬件交互,承上启下的作用

    3. 硬件:存储数据、输入数据、输出数据 ==》操作数据,最终的目的就是存储数据,和操作系统进行交互

    应用程序的启动和操作系统的启动

    重新分析打开QQ的过程,CPU只认识二进制数,我们不可能直接给CPU下达指令,是操作系统帮我们解析了双击的指令

    复盘QQ的启动

    1. 双击
    2. 发送指令给操作系统
    3. 操作系统把这条指令转化成0和1发给CPU
    4. CPU把这条指令发给内存 ??为什么不发给外存
    5. 内存从硬盘中调取QQ程序的数据
    6. QQ读入内存,启动QQ ??启动QQ不需要用到操作系统吗

    4、5、6 不涉及操作系统

    操作系统启动的流程

    计算机分为两大类:硬件和软件

    操作系统也属于软件

    所以启动操作系统也就是启动软件,但启动软件又必须经过操作系统

    ROM+CMOS充当临时操作系统

    按下开机键,发送指令给ROM,ROM临时代替操作系统的作用,控制CPU,再去找到CMOS中操作系统的路径(写死的,启动盘),找到后像打开软件一样打开操作系统

    编程语言分类

    机器语言

    0000

    计算机不会学习我们的语言,所以我们学习它的语言,直接和硬件交互

    最早,0/1就是编程语言---机器语言

    优点:执行代码效率非常快

    缺点:开发效率非常低

    汇编语言

    A

    通过写英文字符的形式代替了写0和1,但是他还是直接和硬件交互

    操作系统 集成 操作 应用操作的0和1

    翻译软件集合字符串的0和1

    优点(相对于机器语言):开发效率高

    缺点(相对于机器语言):执行效率低(有一个翻译的过程)

    高级语言

    print("abccd")

    让人们可以直接用人能够理解的语言和语法风格编写程序

    同声传译(解释型)

    Python,说一句翻译一句,翻译的内容不保存

    优点(相对于编译型):开发效率高

    缺点(相对于编译型):执行效率低(Python的底层是C,是通过C实现的)

    谷歌翻译(编译型)

    c,一次性翻译

    把写好的代码一次性丢进去,编译出一个结果,结果可以保存,便于下一次使用

    优点(相对于解释型):执行效率高(直接翻译成机器语言)

    缺点(相对于解释型):开发效率低(写完所有的代码才能看自己的是否正确)

    执行效率和开发效率必定要有所取舍,不可能都很高

    木桶效应(羊群效应)

    为什么用Python

    现在很少去写单机游戏,更多的是去写网络游戏

    因为以前的网络速度受限,玩不了一些大型的网络游戏

    即便是电脑的处理速度再快,也会受限于网速

    网速就是最短的那一根模板,也就网络造就了这一切

    就像CS游戏,电脑运行的再快,网速不够,画面还是会卡顿,打到了别人也不少血

    PS:瓶颈效应,网络延迟让代码的执行效率变得毫无意义。这根短板就是网速,所以编程语言的发展也是在不断的提升开发效率,降低执行效率。
  • 相关阅读:
    我的友情链接
    我的友情链接
    以太坊:根据例子学习Solidity
    以太坊:安装Solidity编译器
    以太坊:入门智能合约
    以太坊:Solidity手册
    Web3 :Tech Stack Overview
    Web3 – The Decentralized Web
    去中心化金融项目汇总 Defi
    跨链技术汇总
  • 原文地址:https://www.cnblogs.com/lucky75/p/10883357.html
Copyright © 2020-2023  润新知