zoukankan      html  css  js  c++  java
  • 啥是操作系统?

    0.什么是计算机?

    电脑 computer

    硬件部分,什么cpu 内存 磁盘  声卡 网卡

    软件部分,各种应用软件就算把

    按照我之前读到过的一句话理解,其实计算机就是一个机器,主要有三个基本能力 输入+ 计算+ 输出

    不用把计算机想的多复杂多复杂,原型就是小时候玩的计算器吗不是,只不过在此之上不断迭代才赋予了计算机更多能力。

    那么计算机的关注点也很显然: 输入输出的IO能力,CPU计算能力,以及存储能力  也是覆盖了绝大多数的性能问题

    1.什么是操作系统?

    操作系统是管理硬件和软件的一种应用程序

    笨想,计算机这玩意就是一堆硬件机器来干活,能听懂的指令就是0101的,别说外行人用计算机了,就算是程序员也不能天天输入0101的指令来操作计算机啊,在底层基础上封装一层如何?

    再有,就算我们真的可以直接通过0101指令来操作计算机,那处理器调度分配,进程管理,内存磁盘管理,各种计算机底层衔接操作,我们不能全都自己来做吧,稍有失误操作不当怎么办? 系统不得天天崩

    这一想操作系统就应运而生了,也是必然的结果

    操作系统就相当于我们操作计算机的管家,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现,把关注点更多放在软件应用上。

    计算机上会运行着许多应用程序,它们都需要对内存和 CPU 进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。

    2.操作系统的主要功能?
    进程管理:解决处理器的调度,分配,回收等

    内存管理:内存分配回收,页面置换

    设备管理:对设备进行分配,为用户提供设备使用界面

    文件管理:管理文件存储空间

    提供用户接口:为用户提供了访问应用程序和硬件的接口调用

    3.Linux系统下的应用能否直接在Windows运行?

    答案是不能。

    Linux 系统和 Windows 系统的格式不同,格式就是协议. Linux 下的可执行程序文件格式是 elf。而 Windows 可执行程序是 PE 格式

    还有一点是因为 Linux 系统和 Windows 系统的 API 不同,这个 API 指的就是操作系统的 API,Linux 中的 API 被称为系统调用,是通过 int 0x80 这个软中断实现的。

    而 Windows 中的 API 是放在动态链接库文件中的,也就是 Windows 开发人员所说的 DLL ,这是一个库,里面包含代码和数据。Linux 中的可执行程序获得系统资源的方法和 Windows 不一样,所以显然是不能在 Windows 中运行的。

    4.什么是用户态和内核态?

    出于对系统底层安全考虑划分,普通用户应用操作底层得来回切换

    用户态态cpu可以操作 — 用户态

    只有内核态cpu可以操作 —内核态

    详情见  虚拟内存与Linux层级结构

  • 相关阅读:
    Java-死锁
    Java使用Redis
    MySQL如何开启慢查询
    VGG
    如何使用Soft-NMS实现目标检测并提升准确率
    非极大值抑制(NMS)
    迁移学习与fine-tuning有什么区别
    Keras-在预训练好网络模型上进行fine-tune
    Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结
    Kotlin——初级篇(五):操作符与操作符重载一
  • 原文地址:https://www.cnblogs.com/ttaall/p/14681774.html
Copyright © 2011-2022 走看看