但是linux也支持其他不同的可执行程序格式, 各个可执行程序的执行方式不尽相同, 因此linux内核每种被注册的可执行程序格式都用linux_bin_fmt来存储, 其中记录了可执行程序的加载和执行函数...同时我们需要一种方法来保存可执行程序的信息, 比如可执行文件的路径, 运行的参数和环境变量等信息,即linux_bin_prm结构
struct linux_bin_prm结构描述一个可执行程序
linux_binprm...linux支持其他不同格式的可执行程序, 在这种方式下, linux能运行其他操作系统所编译的程序, 如MS-DOS程序, 活BSD Unix的COFF可执行格式, 因此linux内核用struct...程序的加载do_execve_common和do_execveat_common
早期linux-2.4中直接由do_execve实现程序的加载和运行
linux-3.18引入execveat之前...do_execve调用do_execve_common来完成程序的加载和运行
linux-3.19~至今引入execveat之后do_execve调用do_execveat_common来完成程序的加载和运行