文档章节

Linux系统调用

itfanr
 itfanr
发布于 2015/06/08 20:45
字数 285
阅读 18
收藏 0
点赞 0
评论 0

linux中是通过执行int $0x80来执行系统调用的,这条汇编指令产生向量为128的编程异常。

进程需要指定需要调用哪个系统调用,这需要传递系统调用号。​

系统调用需要输入输出参数,例如:

  • 实际的值
  • 用户态进程地址空间的变量的地址
  • 包含指向用户态函数的指针的数据结构的地址

system call是所有系统调用的入口点,每个系统调用至少有一个参数,即由eax传递的系统调用号。

一个应用程序调用fork()封装例程,那么在执行int $0x80之前就把eax寄存器的值置为2,即__NR_fork()

这个寄存器的设置是由libc库封装例程进行 进入system call后,立马将eax压栈

寄存器的限制: (1)每个参数的长度不能超过寄存器的长度,即32位 (2)在系统调用号(eax)之外,参数的个数不能超过6个( ebs ecs edx esi edi ebp )多余6个的话,需要用指针。

本文转载自:http://mooc.study.163.com/learn/USTC-1000029000?tid=1000037000#/learn/content?type=detail&id=1000...

共有 人打赏支持
itfanr
粉丝 114
博文 446
码字总数 161777
作品 1
济南
程序员
嵌入式Linux学习基础规划篇

嵌入式的学习是需要日积月累的,是通过一点一滴的积累才能成为大神。下面来介绍一下嵌入式linux学习基础规划,目标是达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质...

创客学院 ⋅ 04/10 ⋅ 0

构建容器之为什么要理解用户空间和内核空间问题

原文:Architecting Containers Part 1: Why Understanding User Space vs. Kernel Space Matters 你是不是被指定开发一个基于容器的应用程序基础框架?如果是这样,你很可能需要理解容器可以...

weixin_38975685 ⋅ 04/08 ⋅ 0

金山WPS发布了Linux WPS Office

近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实现跨系...

六库科技 ⋅ 06/17 ⋅ 0

Proxy-Go 全平台 SDK v4.9 来啦!

Proxy-Go 全平台 SDK是proxy使用gombile实现了一份go代码编译为android和ios平台下面可以直接调用的sdk类库, 另外还为linux和windows提供sdk支持,基于这些类库,APP开发者可以轻松的开发出各...

狂奔的蜗牛. ⋅ 06/12 ⋅ 0

Proxy-Go 全平台 SDK 迎来 v4.8 更新!

Proxy-Go 全平台 SDK是proxy使用gombile实现了一份go代码编译为android和ios平台下面可以直接调用的sdk类库, 另外还为linux和windows提供sdk支持,基于这些类库,APP开发者可以轻松的开发出各...

狂奔的蜗牛. ⋅ 05/04 ⋅ 2

Linux 目录结构:/lib 分析

我们在之前的文章中已经分析了其他重要系统目录,比如 、、、 等。可以根据自己的兴趣进入下列链接了解更多信息。本文中,让我们来看看 目录都有些什么。 目录结构分析:/bin 文件夹 目录结构...

作者: Surendra Anne ⋅ 04/26 ⋅ 0

nasm示例一:调用syscall打印Hello World

NASM是基于英特尔 x86 架构的汇编与反汇编工具。 syscall是x8664架构中专门做系统调用的指令,可参考syscall 1、示例 foo.nasm内容 编译 运行结果 2、代码解释 2.1、syscall x86平台syscall...

张依帅 ⋅ 06/09 ⋅ 0

Linux程序培训课程,带你养成良好的Linux使用习惯

开始Linux的学习之后,请不要用Windows的工作方式来思考问题,因为它们之间确实有很大的不同,比如它们之间的内存管理机制、进程运行机制等都有很大不同,因此抛开Windows的那种思维,用全新...

长沙千锋 ⋅ 05/11 ⋅ 0

linux tracing和profiling概论

  在工作中经常用到各种跟踪调试工具, strace, ltrace, kprobes, tracepoints, uprobes, ftrace, perf, 和 eBPF。他们之间到底啥关系?本文从总体上进行概述,如果有错误欢迎指正。 1.1....

binarydady ⋅ 05/01 ⋅ 0

Linux内核学习笔记(四)进程管理

进程简介 进程(Process)是Unix操作系统最基本的抽象概念之一。进程是正在执行的程序,同时也是操作系统进行资源管理的最小单位,进程需要管理打开的文件、挂起的信号、内核内部数据、处理器...

damontive ⋅ 05/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 20分钟前 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 45分钟前 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如...

honeymose ⋅ 昨天 ⋅ 0

myeclipse10 快速搭建spring boot开发环境(入门)

1.创建一个maven的web项目 注意上面标红的部分记得选上 2.创建的maven目录结构,有缺失的目录可以自己建立目录补充 补充后 这时候一个maven的web项目创建完成 3.配置pom.xml配置文件 <proje...

小海bug ⋅ 昨天 ⋅ 0

nginx.conf

=========================================================================== nginx.conf =========================================================================== user nobody; #......

A__17 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部