不同操作系统的API差异及FreeBSD Port 使用源代码

简介: 不同操作系统的API差异及FreeBSD Port 使用源代码

一、Windows操作系统克服了CPU以为的硬件差异


计算机的硬件并不仅仅是由CPU组成的,还包括用于存储程序指令的数据和内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外网设备


在Windows软件中,键盘输入、显示器输出等并不是直接向硬件发送指令。而是通过向Windows发送指令实现的。因此,程序员就不用注意内存和I/O地址的不同构成了。


Windows操作的是硬件而不是软件,软件通过操作Windows系统可以达到控制硬件的目的



二、不同操作系统的API差异性


接下来我们看一下操作系统的种类。同样机型的计算机,可安装的操作系统类型也会有多种选择。例如:AT兼容机除了可以安装Windows之外,还可以采用 Unix 系列的 Linux 以及 FreeBSD(也是一种Unix操作系统)等多个操作系统。当然,应用软件则必须根据不同的操作系统类型来专门开发。CPU的类型不同,所对应机器的语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也不同


应用程序向系统传递指令的途径称为 API(Application Programming Interface)。Windows 以及Linux操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的。所以,如何要将同样的应用程序移植到另外的操作系统,就必须要覆盖应用所用到的API部分


键盘输入、鼠标输入、显示器输出、文件输入和输出等同外围设备进行交互的功能,都是通过API提供的


这也就是为什么 Windows 应用程序不能直接移植到Linux 操作系统上的原因,API差异太大了


在同类型的操作系统下,不论硬件如何,API几乎相同。但是,由于不同种类CPU的机器语言不同,因此本地代码也不尽相同


三、FreeBSD Port 帮你轻松使用源代码


既然CPU在不同会导致本地代码不同,那为何不将源代码直接发送给程序呢?Unix系列的 FreeBSD 操作系统就使用了这种方式


Unix系列操作系统 FreeBSD中,存在一种名为 Ports 的机制。该机制能够结合当前运行环境的硬件环境来编译应用的源代码,进而得到可以运行的本地代码。如果目标应用的源代码在硬件上找不到,Ports就会自动使用 FTP 连接到相应站点下载代码


FreeBSD 的 Ports机制:



全球很多站点都提供使用于 FreeBSD的应用源代码。通过使用 Ports 可以利用的程序源代码,大约有16000种。根据不同的领域进行分类,可以随时使用


FreeBSD上应用的源代码,大部分使用C语言来标注的 ,C编译器 可以结合 FreeBSD的运行环境来生成合适的本地代码


FTP(File Transfer Protocol)是连接到互联网上的计算机之间的传送文件的协议  


目录
相关文章
|
4月前
|
分布式计算 API Linux
通义千问API:找出两篇文章的不同
本章我们将介绍如何利用大模型开发一个文档比对小工具,我们将用这个工具来给互联网上两篇内容相近但版本不同的文档找找茬,并且我们提供了一种批处理文档比对的方案
|
4月前
|
搜索推荐 Android开发 iOS开发
安卓和iOS:探索两大移动操作系统的差异与共通
【2月更文挑战第5天】移动操作系统是现代科技领域中最重要的组成部分之一。本文将深入探讨安卓和iOS这两大主流移动操作系统的差异与共通。通过对它们的核心特性、用户界面设计、应用生态系统以及开发者支持等方面的比较,我们可以更好地了解它们在技术上的优势和适用场景,为读者提供参考和决策依据。
|
4月前
|
算法 Linux API
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
102 0
|
Linux iOS开发 UED
Linux简介和比较:开源操作系统的优势与差异
Linux简介和比较:开源操作系统的优势与差异
536 0
|
Java API
Java调用淘宝API demo源代码
Java调用淘宝API demo源代码
103 0
|
3月前
|
安全 Java Android开发
Android 与 iOS:探索两大操作系统的差异与优势
本文将深入探讨安卓和iOS这两大主流移动操作系统的差异与优势。我们将分别从用户界面、应用生态系统、开发者支持以及性能与安全方面进行比较,帮助读者更好地了解并选择适合自己的操作系统。
72 0
|
2月前
|
Unix API 数据格式
云计算存储问题之API在不同操作系统上的实现如何解决
云计算存储问题之API在不同操作系统上的实现如何解决
|
3月前
|
API
个人微信api接口源代码
个人微信api接口源代码
|
3月前
|
Java API 开发工具
个人微信api接口java调用源代码
个人微信api接口java调用源代码
|
4月前
|
存储 机器学习/深度学习 算法
【操作系统】实验六 分析源代码
【操作系统】实验六 分析源代码
36 1