操作系统

操作系统是什么

  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:瓶颈效应,网络延迟让代码的执行效率变得毫无意义。这根短板就是网速,所以编程语言的发展也是在不断的提升开发效率,降低执行效率。

day02 操作系统与编程语言的更多相关文章

  1. day002 计算机基础之 操作系统和编程语言的分类

    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp今天主要针对计算机基础中的操作系统和编程语言的分类进行了讲解. 操作系统 &nbsp ...

  2. day02 -操作系统及python入门

    操作系统 1.什么是操作系统? 操作系统位于计算机硬件和应用软件之间. 是一个协调.控制.管理计算机硬件资源和软件资源的控制程序. 2.为何要有操作系统? ①·控制硬件 ②·把对硬件的复杂的操作封装成 ...

  3. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

    来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器. ...

  4. HTML5定稿了,终于有一种编程语言开发的程序可以在Android和IOS两种设备上运行了

    2007 年 W3C (万维网联盟)立项 HTML5,直至 2014 年 10 月底,这个长达八年的规范终于正式封稿. 过去这些年,HTML5 颠覆了 PC 互联网的格局,优化了移动互联网的体验,接下 ...

  5. x01.calc: 编程语言

    想写终极程序,大都去写操作系统或编程语言了.编程语言可以极其复杂如C,也可以极简,只处理加减乘除如 calc. 1. 词法分析 %{ #include <stdio.h> #include ...

  6. Python操作系统

    一 为什么要有操作系统 (两本书:现代操作系统.操作系统原理,学好python以后再去研究吧~~) 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输 ...

  7. 老男孩Python全栈第2期+课件笔记【高清完整92天整套视频教程】

    点击了解更多Python课程>>> 老男孩Python全栈第2期+课件笔记[高清完整92天整套视频教程] 课程目录 ├─day01-python 全栈开发-基础篇 │ 01 pyth ...

  8. WCF基础

    初入职场,开始接触C#,开始接触WCF,那么从头开始学习吧,边学边补充. SOA Service-Oriented Architecture,面向服务架构,粗粒度.开放式.松耦合的服务结构,将应用程序 ...

  9. Android中通信协议

    一.TCP/IP协议(传输层协议) 1.Socket与ServerSocket Socket是应用层与TCP/IP协议簇通讯的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计就是门 ...

随机推荐

  1. 【转】Oracle基础结构认知—初识oracle 礼记八目 2017-12-12 21:19:30

    Oracle服务器(oracle server)由实例和数据库组成.其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS), ...

  2. VMware WorkStation 用 VMTools 官方下载地址

    每次安装 VMTools 都不成功,谷歌到了这个地址,特地分享. 先打开这个网址, 选择你的 VMware WorkStation 对应的版本号: http://softwareupdate.vmwa ...

  3. BZOJ 1305: [CQOI2009]dance跳舞 网络最大流_二分答案_建模

    Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会 ...

  4. "SetDestination" can only be called on an active agent that has been placed on a NavMesh. 解决办法

    1.设置了 navmesh之后 要bake 也就是烘焙之后 才有效果 2.在unity 中 window->navigation     4.基本上问题应该得以解决:    

  5. [tyvj 1071] LCIS

    题目描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了. 小沐沐说,对于两个串A,B,如果它们 ...

  6. j2ee消息中间件

    http://blog.csdn.net/apanious/article/details/51014396

  7. linux_ubuntu 连接xftp

    一.修改静态ip 打开网络配置文件 :vim /etc/network/interfaces 1.添加以下配置: 注意:ubuntu 网卡名为 ens33 .多数liunx系统的网卡名为eth0. 可 ...

  8. Docker学习总结(14)——从代码到上线, 云端Docker化持续交付实践

    2016云栖大会·北京峰会于8月9号在国家会议中心拉开帷幕,在云栖社区开发者技术专场中,来自阿里云技术专家罗晶(瑶靖)为在场的听众带来<从代码到上线,云端Docker化持续交付实践>精彩分 ...

  9. B - Networking

    B - Networking 思路:并查集板子. #include<cstdio> #include<cstring> #include<iostream> #in ...

  10. Android开发之——编码规范

    1. 前言 这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范.该文档仅供参考,只要形成一个统一的风格,见量知其意就可. 2. 源文件基础 2.1 ...