首页 > 其他分享 >11月7日总结

11月7日总结

时间:2023-11-14 12:55:34浏览次数:34  
标签:11 总结 操作系统 文件 应用程序 API 动态链接库 SDK

从源代码到可运行的操作系统(前置知识)
API 与 SDK

以 C 语言编写的操作系统为背景进行介绍,EOS 是由 C 语言编写的

操作系统和应用程序之间一个重要的纽带就是应用程序接口(简称 API)。操作系统通过开放 API 为应 > 用程序提供服务,应用程序通过使用这些 API 实现其功能。在操作系统或应用程序运行时,API 可能只是
一个简单的调用和被调用的关系。但是在编写操作系统的源代码时,必须要解决如何才能开放 API 的问题;
在编写应用程序的源代码时,又必须要解决如何才能使用 API 的问题。

SDK 是 Software Development Kit 的缩写,翻译成中文就是“软件开发工具包”。操作系统通过向开发者提供 SDK 来开放其 API,开发者在为操作系统编写应用程序时,通过使用 SDK 来调用 API。所以,如果要为操作系统开发应用程序,就需要首先获得操作系统的 SDK。

SDK:一般采用文件的形式并结合特定的编程语言向开发者提供操作系统的 API。有些 SDK 还会提供相关的文档、编程范例和工具软件等。SDK 为了向开发者提供操作系统的 API,往往会包含头文件、导入库文件和动态链接库文件。

头文件

以特定编程语言(C、C++等)编写的文本文件,通常使用.H 做为后缀名。头文件的主要作用是导出操作系统使用的一些数据类型(例如操作系统中使用的结构体类型)和 API 函数的声明。

导入库文件

是根据操作系统需要导出的 API 函数而生成的特定格式的二进制文件。

导入库文件在 Linux 中的后缀名是.A,在 Windows 中的后缀名是.LIB。导入库文件的主要作用是告诉应用程序的可执行文件,其调用的 API 函数在操作系统中的地址。导入库文件一般会被放在 SDK 中的 Lib(Library)

动态链接库文件

包含了操作系统导出的 API 函数的可执行代码的二进制文件。例如 Windows 导出的 API 函数主要保存在 kernel32.dll、user32.dll 和 gdi32.dll 三个文件中。动态链接库文件在 Linux 中的后缀名是.SO,在 Windows 中的后缀名是.DLL。动态链接库文件的格式一般与可执行文件是相同的,只是不能直接执行。应用程序的可执行文件在执行时必须依赖这些动态链接库文件,因为其调用的系统 API 函数的可执行代码都保存在这些文件中。动态链接库文件一般会被放在 SDK 中的 Bin(Binary)文件夹中。Windows 提供的 SDK 中之所以没有包含动态链接库文件,是因为在 Windows 的系统目录中已经存在这些文件了。

EOS 操作系统内核从源代码变为可以在虚拟机上运行的过程

标签:11,总结,操作系统,文件,应用程序,API,动态链接库,SDK
From: https://www.cnblogs.com/lmyy/p/17831360.html

相关文章

  • 11月10日总结
    最近在群里,有个小伙伴问了这么一道很有趣的问题:CSS能否实现,容器再某个高度下是某种表现,一旦超出某个高度,则额外展示另外一些内容为了简化实际效果,我们看这么一张示意效果图:可以看到,当容器高度没有超过某一个值时,没有箭头图标。反之,箭头图标出现。这个效果在很多场景都会出现......
  • 202311141210——《一些修改表字段的sql语句》
    ALTERTABLEuserADDCOLUMNtelCHAR(11)AFTERwechat;#添加列ALTERtablecustomermodifycolumnpasswordvarchar(200);#修改列类型ALTERTABLEuserALTERCOLUMNstatusSETDEFAULT1;#设置默认值ALTERTABLEuserMODIFYcolumnemp_idTIMESTAMPDEFAULTNULL......
  • 11.14算法
    题目岛屿数量给你一个由 '1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","1","0"],["1","1"......
  • win11安装WSL2并配置Ubuntu环境
    win11安装WSL2并配置Ubuntu环境WSL是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。1    开启windows的WSL与虚拟平台支持1.1    开启虚拟化......
  • 当前不会命中断点 未加载该文档 解决方法总结
    1.工具->选项->调试->常规 2.项目属性页 3.项目属性页 4.项目属性页 ......
  • tmdb 无法连接 修改host可解决 (2023/11/14)
    tinyMediaManager的刮削服务总是失败,根本原因在于tmdb网站的DNS地址无法解析。解决方法:手动修改DNS。作者:PH34Rhttps://www.bilibili.com/read/cv18215732/?spm_id_from=333.999.collection.opus.click出处:bilibili通过 https://dnschecker.org/ 查询上述三个地址,选择在......
  • nfls 11.14
    这回感觉每个题都可做,但是每个题目貌似又是都不可以做,思路到中间然后就断了,下午补题然后再看吧。T1这个题目可以推出来的性质有:我们填入的\(b\)数组一定是若干个质数的一次方的乘积组成。当我们确定了\(b_n\)时,我们这个\(b\)序列也就唯一固定。但是最后一位怎么决策......
  • 对几种语言的数据结构的总结
    一:Java中的数据结构Java中有以下几种数据结构:线性结构:数组、链表、哈希表、队列、栈。非线性结构:堆、树(二叉树、B树、B+树、红黑树)、图。二:C语言中的数据结构C语言中常用的数据结构包括:线性结构:数组、链表、栈、队列、线性表。树形结构:二叉树、堆、哈夫曼树、红黑树。图形结构:图......
  • 如何正确使用外汇110网查平台?一键Get识别黑平台
    在外汇110网中,平台信息众多,投资者该如何通过这些信息识别黑平台?如何使用外汇110网识别黑平台? 投资者在审核平台时,可以通过在外汇110网搜索交易商名称或官网查询交易商,点击即可进入交易商信息界面。在交易商界面投资者可以重点关注以下信息:成立时间。成立时间的长短可以侧面反......
  • 11月13数组以及数组常用发法
    目录1.数组2.数据的常用方法1.length方法2.push方法3.pop方法4.unshift方法5.shift方法6.slice方法7.reverse方法8.join方法9.concat方法10.sort方法特殊情况解决特殊情况的方法11.forEach方法12.splice方法null13.map方法还有用for循环取值1.数组数组的作用:使用单独的变量名来......