实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

20135313吴子怡.北京电子科技学院

【第一部分】使用库函数API来获取用户标识号。库函数为getuid()

代码如下:

编译运行之后,将用户id号1000打印输出在屏幕上。

【第二部分】使用汇编方式触发系统调用来获取用户标识号。库函数依旧为getuid()

代码如下:

可以看出,打印出来的用户id和之前的一样都是1000.

【第三部分】系统调用的工作机制学习总结

我认为系统调用的工作机制就是系统调用经过封装包装成为一个封装例程,然后交由Libc库,被Libc库引用保留,然后Libc库再将其提供给API去用。用户通过API间接地使用系统调用各种功能。即是说,系统调用是通过库函数封装的内核态的功能操作。

它的三层皮是:API、中断向量、中断服务程序。

【第四部分】附录

学习过程笔记详见:http://www.cnblogs.com/paperfish/p/5283727.html

==========================================================

作者:吴子怡

学号:20135313

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

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

Linux内核实验作业四相关推荐

  1. Linux内核实验作业七

    实验作业:Linux内核如何装载和启动一个可执行程序 20135313吴子怡.北京电子科技学院 [第一部分]理解编译链接的过程和ELF可执行文件格式 1.编译链接的过程 2.ELF可执行文件格式 一个 ...

  2. linux内核提取ret2usr,Linux内核实验作业七

    实验作业:Linux内核如何装载和启动一个可执行程序 20135313吴子怡.北京电子科技学院 [第一部分]理解编译链接的过程和ELF可执行文件格式 1.编译链接的过程 2.ELF可执行文件格式 一个 ...

  3. Linux内核实验作业六

    实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...

  4. linux内核态real cred,Linux内核实验报告——实验5.doc

    Linux内核实验报告 实验题目:新系统调用设计实验 实验目的: 系统调用是内核提供给用户应用程序使用的内核函数名,这些函数提供了内核为用户 应用程序所提供的系统服务功能.这些函数在用户应用程序中的书 ...

  5. linux内核分析期末,Linux内核分析作业

    Linux内核分析课程期末大作业 一.程序的主要设计思路及实现方式 在Linux内核中,存在一个全局变量:init_task.该变量即是Linux第一个启动的用户空间进程init对应的task_str ...

  6. Linux内核分析作业第二周

    操作系统是如何工作的 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.函数调用堆栈 1.计算机工作三 ...

  7. Linux内核实验孟宁,《linux内核分析》实验二:时间片轮转多道程序运行原理

    一.概述 本文通过分析一个简单的时间片轮转多道程序的内核 mykernel,来理解操作系统是如何工作的. mykernel 是孟宁老师的一个开源项目,借助 Linux 内核部分源代码模拟存储程序计算机 ...

  8. Linux内核探讨-- 第四章

    本文是个人分析<Linux内核设计与实现>而写的总结,欢迎转载,请注明出处: http://blog.csdn.net/dlutbrucezhang/article/details/122 ...

  9. linux内核实验平台搭建,搭建自己的Linux实验系统(一)

    当你对操作系统已经有了基本的把握:而且对Linux也有了初步的了解,可是,如果你是一个程序员,你肯定还是会觉得惴惴不安:Linux到底是怎么回事? 求知和求实是程序员的天性,我们当然有义务满足自己的天 ...

最新文章

  1. 11 个 Linux 终端命令,没用过的快去试试吧!
  2. 三个点在同一个半圆的概率_【国际数学竞赛】列方程求概率
  3. 理解MySQL——复制(Replication)
  4. 计算机动漫设计VR主要学什么,动漫设计专业学什么 要学什么软件
  5. sql 除以_使用SQL分析游戏运营情况
  6. MATLAB软件禁用利好,Matlab被禁用?一款国产软件站了出来说:我就是中国的Matlab...
  7. ERROR: Cannot uninstall ‘PyYAML‘. 安装 fvcore
  8. matlab数学实验结课作业答案,matlab数学实验第一次答案
  9. java web项目中的根路径踩坑
  10. java 读取使用keytool生产的keystore文件
  11. 【渝粤教育】国家开放大学2018年春季 0631-21T动物常见病防治 参考试题
  12. system函数 fork函数
  13. Newifi Y1S刷潘多拉(Pandora)固件
  14. unity算法-斜抛运动(变种)
  15. Hive exited with status 1
  16. 守望空城,一位摄影师镜头下的武汉
  17. 算法中快慢指针的应用(Java)
  18. 海尔简爱s11怎么进入bios_海尔简爱s11系统应用商店没有登录界面怎么办?
  19. 蓝桥杯 并查集汇总学习 及其代码
  20. 打开APP validate fail

热门文章

  1. Xcode5下使用纯代码构建简单的HelloWorld程序
  2. 右键 Dos在这里 删除
  3. 推荐一款 最方便的 阅读blog的软件---SharpReader!
  4. java-mybatis环境搭建
  5. 5.Xilinx RapidIO核例子工程源码分析
  6. NOIP2017游记
  7. hdu 4622 Reincarnation SAM模板题
  8. ADO.NET 中的表达式
  9. Android开发之Serializable 和 Parcelable的区别(源代码分享)
  10. Binder跨进程通信原理(三):Binder IPC实现原理