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

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

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

遇到的问题:

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

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

Linux内核分析——第四周学习笔记的更多相关文章

  1. linux内核分析第四周学习笔记

    linux内核分析第四周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  2. 20135320赵瀚青LINUX内核分析第四周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周的内容主要是讲解系 ...

  3. Linux内核分析——第四周学习笔记20135308

    第四周 扒开系统调用的“三层皮” 一.内核.用户态和中断 (一)如何区分用户态.内核态 1.一般现在的CPU有几种不同的指令执行级别 ①在高级别的状态下,代码可以执行特权指令,访问任意的物理地址,这种 ...

  4. LINUX内核分析第四周学习总结——扒开系统调用的“三层皮”

    LINUX内核分析第四周学习总结--扒开系统调用的"三层皮" 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC ...

  5. Linux内核分析第二周学习笔记

    linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  6. linux内核分析第一周学习笔记

    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  7. Linux内核分析第四周学习总结——系统调用的工作机制

    Linux内核分析第四周学习总结--系统调用的工作机制 内核态 执行级别高,可以执行特权指令,访问任意物理地址,在intel X86 CPU的权限分级为0级. 用户态 执行级别低,只能访问0x0000 ...

  8. LINUX内核分析第四周学习总结——扒开应用系统的三层皮(上)【转】

    转自:http://www.cnblogs.com/lalacindy/p/5276874.html 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://moo ...

  9. Linux内核分析第四周学习总结

    朱国庆+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 扒开系统调用的三层皮 ...

随机推荐

  1. BZOJ5369:[PKUSC2018]最大前缀和(状压DP)

    Description 小C是一个算法竞赛爱好者,有一天小C遇到了一个非常难的问题:求一个序列的最大子段和. 但是小C并不会做这个题,于是小C决定把序列随机打乱,然后取序列的最大前缀和作为答案. 小C ...

  2. weex+vue2.x 踩坑实录(不定期更新)

    执行 npm start 显示空白页面 这个是开始使用weex就出现的一个大坑,说实话对新手真的很不友好. 1.打开控制台显示:Cannot assign to read only property ...

  3. jenkins不能取到svn最新版本问题的解决

    jenkins总是不能取到最新的SVN版本: 网上有说修改系统时间来解决的,尝试后发现无效: 在源地址末尾添加@HEAD可以解决这个问题.

  4. Centos7 安装Nodejs

    使用EPEL安装 EPEL(Extra Packages for Enterprise Linux)企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供 ...

  5. jqgrid 设置冻结列

    有时,jqgrid表格的列非常多,而表格的宽度值是固定的,我们需要在表格底部出现滚动条,并且固定前面几个列作为数据参照项,如何实现? 需要用的jqgrid冻结列,步骤如下: 1)设置需要冻结的列属性, ...

  6. CAN总线几种正常的“异常”波形

    CAN总线几种正常的“异常”波形 [复制链接]       电梯直达 楼主    hubaba 发表于 2016-3-28 14:00 | 只看该作者  摘要 工程师们通常使用示波器观察CAN总线的信 ...

  7. 安装Docker的三种方式

    本人在安装docker时之前一直采用的是系统自带的docker软件包安装,导致下载的docker不是最新版本,因此会有很多docker命令无法使用,例如network等等,现将安装docker的方式总 ...

  8. 福慧双修&探险 BZOJ4398&BZOJ2407

    分析: 双倍经验(数据范围不同). 我们考虑,我们必定是从1走一条边到节点i,之后从i到j跑最短路,之后再从j到1走另一条边的情况下,不会重复,并且是答案.那么我们考虑预处理出pre[i]表示从1走到 ...

  9. 大数据入门第二十一天——scala入门(一)并发编程Actor

    注:我们现在学的Scala Actor是scala 2.10.x版本及以前版本的Actor. Scala在2.11.x版本中将Akka加入其中,作为其默认的Actor,老版本的Actor已经废弃 一. ...

  10. Node.js 下载路径/微软产品下载路径

    https://nodejs.org/en/ https://www.microsoft.com/en-us/download //微软官方下载地址,可以下载VS2015  SQL 等 微软产品