博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux内核分析——第四周学习笔记
阅读量:5330 次
发布时间:2019-06-14

本文共 744 字,大约阅读时间需要 2 分钟。

扒开系统调用的三层皮【上】

言:以下笔记除了一些讲解视频中的概念记录,图示、图示中的补充文字、总结、分析、小结部分均是个人理解。如有错误观点,请多指教!

补充:【系统调用的参数传递方法】视频中讲解简单带过最后几行。最后问题的答案在上图总结部分。ppt内容附下图。

遇到的问题:

在上图笔记三中,我听视频讲解后将那些抽象的论述性语言通过自己画的图示理清了我对系统调用、API、Libc库、封装例程的关系,本来是明白了这些东西之间的封装、提供、对应的关系的。可是后来看到第三个视频(就是使用库函数API来获取系统当前时间的知道视频)以后,讲师全程提到的time()是系统调用、是API、是库函数。我听完就……%¥#@了,我不明白,既然我们说,API只是一个函数定义,说的通俗一点就是:系统调用经过封装包装成为一个封装例程,然后交由Libc库,被Libc库引用保留,然后Libc库再将这个封装好的团子提供给API去用。用户其实就是只和API打交道,通过API间接地使用系统调用各种功能。【此处均是个人理解,希望老师指点】如果我的理解是对的话,那么我们在这个time.c的实践中看到的time(),我们到底要将其称作什么呢?如果按照视频中老师的解说,它既是系统调用,又是API,那么岂不是就将二者等同吗?我认为既然前面概述视频中已经和我们灌输了二者是不同的,二者之间存在一个封装引用的先后顺序这样的大致概念,就必须要给出一个准确的描述。所以我们到底要说它是什么呢QAQ。我已经晕了。我也不知道我在纠结什么牛角尖,希望老师能在课上讲解一下!

PS.实验操作会在提交到MOOC网站的博客中写。

转载于:https://www.cnblogs.com/paperfish/p/5283727.html

你可能感兴趣的文章
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
Maven之setting.xml配置文件详解
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
HDU 2063 过山车
查看>>
高精度1--加法
查看>>