首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux程序是怎样执行

/a.out 在shell终端上运行可执行程序的标准流程: 启动终端仿真器应用程序 输入可执行文件所在的相对路径或者绝对路径 如果该可执行程序需要输入参数的话,还需要输入参数 比如,我们在终端上输入...ps 在此处,我们可以人为ls为可执行程序的名称,--version 是该程序需要的参数。...可执行文件所需的参数 可执行文件所在的环境变量 在该函数中,最终就是运行可执行程序,这一步操作,是在kernel中操作的。...如果二进制处理程序支持给定的可执行文件格式,它将开始准备可执行二进制文件的前期工作。...elf_phdata) goto out; 程序解释器指定在可执行文件的.interp部分(在大多数情况下,对于x86_64,链接器为– /lib64/ld-linux-x86-64.so.2)

4.9K50

goland编译golang生成linux执行程序

所以我们常用的goland编译配置的,都是Windows环境,生成也的EXE执行程序 但我们很多部署服务器都是linux,所以要部署的时候,需要生成linux环境下的执行程序 网上有说,修改配置后再编译...,如: set CGO_ENABLED=0 set GOOS=linux set GOARCH=amd64 但,生成完,需要把配置改回来后,才能再用。...且如果你的环境配置有特殊化, 如工具的本地项目Path,这时,直接用go build 命令是编译不了的 后面终于让我找到一个goland的配置生成linux执行程序的方法。...其实也很简单,只要复制一份Windows下的编译配置,再补上一些参数即可 1、 去掉 Run after build  2、在Environment 上写入参数: GOARCH=amd64;GOOS=linux

3K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux程序是如何被执行

程序的文件路径拷贝到堆栈中。 8. 将环境变量拷贝到堆栈中。 9. 将程序参数拷贝到堆栈中。 10. 调用exec_binprm方法继续执行程序。...return retval; } EXPORT_SYMBOL(search_binary_handler); 该方法遍历linux中可识别的可执行文件格式,找到对应的文件格式,并调用其load_binary...linux下可执行文件的格式一般为elf,所以我们直接看其load_binary方法: // fs/binfmt_elf.c static int load_elf_binary(struct linux_binprm...elf_entry指向的代码 // 如果该程序有interpreter,则是执行interpreter中的入口地址 // 如果没有,则是执行程序自己的入口地址...好了,到这里,整个程序的内核部分的执行流程就讲完了,结合本文开始提到的那篇文章 Linux下c语言中的main函数是如何被调用的,有关linux程序执行就全部讲清楚了。

3.1K20

linux装载和启动可执行程序的过程

罗军 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 基础知识 编译程序的过程 预处理...,每一个汇编语句几乎都对应一条机器指令 链接:gcc -o hello hello.o -m32 (可执行文件) 通过调用链接器ld来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件...动态链接则是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去 ELF格式 ?...在实际的可执行程序或者共享目标文件中,GOT表在名称为.got.plt的section中,PLT表在名称为.plt的section中。   ELF文件符号动态解析的过程 ?   ...load_elf_binary代码 load_elf_binary(struct linux_binprm *bprm) { …… if(elf_interpreter) //使用动态链接

3K40

程序执行的本质

程序执行的本质 程序执行的过程:代码区的指令不断执行,驱使动态数据区和静态数据区产生数据变化。 这一过程需要计算机的管控。下面我们着重介绍对代码区和动态数据区的管控。...对代码区和动态数据区的管控 其中eip永远指向代码区将要执行的下一条指令,它的管控方式有两种,一种是“顺序执行”,即程序执行完一条指令后自动指向下一条执行;另一种是跳转,也就是执行完一条跳转指令后跳转到指定的位置...初始情景: eip指向main函数的第一条指令,此时程序还没有运行,栈空间里还没有数据,ebp和esp指向的位置是程序加载时内核设置的(详情请看《Linux内核设计的艺术》一书)。...ESP寄存器存放当前线程的栈顶指针; EBP寄存器中保存当前线程的栈底指针; call main下面的一条指令地址EIP(也称返回地址)寄存器; 程序开始执行main函数第一条指令,eip自动指向下一条指令...第一条指令的执行,致使ebp的地址值被保存在栈中,保存的目的是本程序执行完毕后,ebp还能返回现在的位置,复原现在的栈。随着ebp地址值的压栈,esp自动向栈顶方向移动,它将永远指向栈顶。

81410

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...ls命令执行过程: 下面进行简单分析: 1、shell不断询问是否有键盘输入,用户以enter结束键盘输入后,shell程序以空格为分隔符,得到”ls”,”-l”,”*.c”,三个字符串。...4、ls程序执行后,会分析argc和argv,”-l”表示这是一个选项开关,表明用户想得到文件的详细信息,并把这个开关量保存,以便最后输出的时候选择信息的格式。...5、ls执行完既定的步骤后,退出并返回退出码,若成功则返回0,否则根据错误的不同返回不同的非零数字。 6、shell在得到成功退出码后,继续等待用户输入。

4.4K30

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...ls命令执行过程: 下面进行简单分析: 1、shell不断询问是否有键盘输入,用户以enter结束键盘输入后,shell程序以空格为分隔符,得到”ls”,”-l”,”*.c”,三个字符串。...4、ls程序执行后,会分析argc和argv,”-l”表示这是一个选项开关,表明用户想得到文件的详细信息,并把这个开关量保存,以便最后输出的时候选择信息的格式。...5、ls执行完既定的步骤后,退出并返回退出码,若成功则返回0,否则根据错误的不同返回不同的非零数字。 6、shell在得到成功退出码后,继续等待用户输入。

4.5K30

Linux中为什么执行自己的程序要在前面加.

Linux中,我们执行内置命令时,直接输入命令名称即可,如: $ mv a b #将a重命名为b 而在执行自己写好的程序时,却要带上....shell是如何运行程序的 在说明清楚问题之前,我们必须了解shell是如何运行程序的。首先我们必须要清楚的是,执行一条Linux命令,本质是在运行一个程序,如执行ls命令,它执行的是ls程序。...而一旦发现要执行程序文件是文本文件,且文本未指定解释程序,那么就会默认当成shell脚本来执行。...注意,Linux下的文件后缀不过是为了方便识别文件类型罢了,以.txt结尾,并不代表一定是文本。...2.6.32, BuildID[sha1]=8ae48f0f84912dec98511581c876aa042824efdb, not stripped 扩展一下 那么如果让我们自己的程序也能够像Linux

1.4K30

Android 程序执行Linux命令的解决方法及注意事项

一:问题描述   在已经root过的android设备下,app执行一个linux命令,app需要获取su权限,在某些android主板下会出现异常, Command: [su] Working Directory...) 12-02 10:00:08.687 W/System.err: ... 17 more 通过异常信息判断,Process localProcess = runtime.exec(“su”);执行这句代码...解决办法是执行如下命令,前提是android主板给予了执行chmod 06755命令的权限 chmod 06755 /system/xbin/su   如果执行以上命令,出现如下问题,请联系设备厂商...网上的解决办法是: root@android:/ $ su su: uid 10061 not allowed to su root@android:/ 总结 以上所述是小编给大家介绍的Android 程序执行...Linux命令的解决方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

1.6K10

python程序执行的原理

程序执行的原理: 1.程序执行之前,保存在硬盘中; 2.当要运行一个程序时: 操作系统首先会让cpu把程序复制到内存中; 然后cpu执行内存中的程序代码; 简而言之,程序执行,首先要加载到内存。...python程序执行的原理: python是一门解释性语言,不是编译性语言。解释性语言的特点是需要解释器进行逐行解释代码,没有编译阶段。...编译是指将代码转换成计算机可识别的二进制文件,然后将这些二进制文件链接成可执行文件。...(1)操作系统首先让cpu把python解释器的程序复制到内存中; (2)python解释器语法规则:从上向下让cpu翻译python程序中的代码; (3)cpu负责执行翻译完成的代码; Python解释器有哪些

40730

Linux读写执行(RWX)权限

执行权限(x) 表示该文件具有被系统执行的权限。...Window系统中查看一个文件是否为可执行文件,是通过扩展名(.exe、.bat 等),但在 Linux 系统中,文件是否能被执行,是通过看此文件是否具有 x 权限来决定的。...也就是说,只要文件拥有 x 权限,则此文件就是可执行文件。但是,文件到底能够正确运行,还要看文件中的代码是否正确。 对于文件来说,执行权限是最高权限。...把hh.c文件修改为可写可读可执行 chmod 777 hh.c 要修改某目录下所有的文件属性为可写可读可执行 目录 /tmp/sco修改为可写可读可执行 chmod 777 /tmp/sco...根据需要可以自由组合用户和组的权限 如:可写可读 rw- : 4+2+0 =6 可写可执行 rw- : 4+0+1 =5 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

4.6K10
领券