Lesson05 PoEdu培训第一课 计算机科学篇(5) 伟大的操作系统
文章类别: 培训笔记 2 评论

Lesson05 PoEdu培训第一课 计算机科学篇(5) 伟大的操作系统

文章类别: 培训笔记 2 评论

伟大的操作系统

操作系统

    1. 克服硬件的差异

让我们能更好的驾驭我们的软件,

我们只需要关注与操作系统的通讯和关系,

而不用再分别对不同硬件进行处理.

    2. 提供统一的应用程序接口

提供了一套标准化的东西, 也就是API.

软件最终是通过操作硬件来达到功能的.

通过操作系统提供的接口, 我们不在需要了解各种硬件参数和品牌,

方便, 快捷.

软件的运行环境指的是什么?

    包括软件环境和硬件环境.

软件环境: 我们的操作系统

硬件环境: CPU/内存...等硬件的支持和各种硬件参数等.

本地编译

Source Code --编译--> Native Code

我们写出的源代码, 也就是有特定语法的文本文件.

经过 编译器编译操作, 编译成我们系统相应的本地代码.

这种在当前目标平台下,编译出来的程序,只能放到当前平台下,才可以运行.

交叉编译

交叉编译是一个和本地编译相对应的概念。

交叉编译, 就是:

在一种平台上编译, 编译出来的程序, 可以放到别的平台上运行

编译的环境, 和运行的环境, 不一样.

点我查看交叉编译的扩展阅读

Windows的应用程序能不能在Linux下运行?

能? 不能?

这真是一个问题.

    我个人的看法, 如何理解"应用程序" 和 "运行"这个词的意思.

    第一.
    在Linux上装一个Wine, 可以运行Windows的EXE文件.
    但是这就能够说是能运行吗?
    说不能, 因为它依赖了Wine, 不是原生支持.
    说能, Wine就相当于操作系统的一个角色, 操作系统本身就是一个大的软件.
    
    第二.
    Windows上写的C代码编译出来一个EXE,
    在Linux上同样的代码编译出来一个Linux的可执行程序,
    这样"一次编写, 处处编译"的方式, 
    算不算Windows的应用程序在Linux下运行?

    第三.
    交叉编译出来的程序如何来进行定义呢?
    比如Windows上编译出了Linux平台的程序, 那这个程序属于Windows应用程序吗?

以上基本上属于我自己的执念, 到目前为止是想不明白了....

理论上来说, windows的程序是不能运行到linux上的

因为两个操作系统的API并不一样.

当然, 利用宏来判断操作系统这种编程技巧来实现的一次编码,处处编译放到这里,

就有转牛角尖/吵架的嫌疑了, 目前这个问题不在深究, 我没有答案.....

Java虚拟机的原理

    Java虚拟机的原理就是在操作系统之上, 又加了一层.
    说白了就相当于一个专门为Java语言运行的小操作系统.
    号称跨平台, 其实是伪跨平台.

BIOS

    作用: 
    1. 启动计算机后进行硬件检测.
    2. 引导硬盘上的操作系统.

如有错误,请提出指正!谢谢.

回复 / Cancel Reply
  1. 博客还行 啊

    回复
  2. 基本上你纠结的是,题意不明确的问题,并非技术本质上的问题。

    回复