Documentation目录下binfmt_misc文档的翻译

Kernel Support for miscellaneous (your favourite) Binary Formats v1.1

内核对五花八门的二进制格式的支持

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

This Kernel feature allows you to invoke almost (for restrictions see below)

every program by simply typing its name in the shell.

该内核允许你调用几乎任何一个程序,你仅仅需要在shell中键入他的名字。

This includes for example compiled Java(TM), Python or Emacs programs.

这包括例如被编译之后的java,python或者是emacs程序。

To achieve this you must tell binfmt_misc which interpreter has to be invoked

with which binary. Binfmt_misc recognises the binary-type by matching some bytes

at the beginning of the file with a magic byte sequence (masking out specified

bits) you have supplied. Binfmt_misc can also recognise a filename extension

aka ‘.com‘ or ‘.exe‘.

为了达到这个目的,你必须告诉binfmt_misc你需要调用哪一个二进制格式的解释器。Binfmt_misc

程序通过匹配文件开始的一些二进制序列(以一些特殊的二进制位来标识)来识别是哪一种二进制

类型。Binfmt_misc也能够识别一个文件的扩展名例如‘.com‘或者是‘.exe‘.

First you must mount binfmt_misc:

mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

首先你需要挂载binfmt_misc

mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

To actually register a new binary type, you have to set up a string looking like

:name:type:offset:magic:mask:interpreter: (where you can choose the ‘:‘ upon

your needs) and echo it to /proc/sys/fs/binfmt_misc/register.

为了能够真正的注册一个新的二进制类型,你应该设置一个字符串看上去像:name:type:offset

:magic:mask:interpreter:(你可以根据你的需要选择‘:‘)并且将他广播到/proc/sys/fs/binfmt_misc/resgister中

Here is what the fields mean:

下面是这些参数的意思:

- ‘name‘ is an identifier string. A new /proc file will be created with this

name below /proc/sys/fs/binfmt_misc

- ‘name‘是定义字符串.一个新的/proc文件将在/proc/sys/fs/binfmt_misc下以他的名字被创建

- ‘type‘ is the type of recognition. Give ‘M‘ for magic and ‘E‘ for extension.

- ‘type‘ 是识别的类型。‘M‘代表着二进制序列和‘E‘是扩展

- ‘offset‘ is the offset of the magic/mask in the file, counted in bytes. This

defaults to 0 if you omit it (i.e. you write ‘:name:type::magic...‘)

- ‘offset‘是在文件中二进制学列的偏移量,以位计数。如果你这样写‘:name:type::magic...‘,

那么它默认是0。

- ‘magic‘ is the byte sequence binfmt_misc is matching for. The magic string

may contain hex-encoded characters like \x0a or \xA4. In a shell environment

you will have to write \\x0a to prevent the shell from eating your \.

If you chose filename extension matching, this is the extension to be

recognised (without the ‘.‘, the \x0a specials are not allowed). Extension

matching is case sensitive!

- ‘magic‘是binfmt_misc要匹配的位序列。这个位序列可能包含16进制编码的字符例如\x0a

或者是 \xA4.在一个shell环境中,你必须写\\x0a来避免shell吞掉你的\。如果你选择

使用文件扩展名开匹配的话,下面是一些小规则(不能有‘.‘,\x0a是不允许的).并且扩展名

匹配是大小写敏感的。

- ‘mask‘ is an (optional, defaults to all 0xff) mask. You can mask out some

bits from matching by supplying a string like magic and as long as magic.

The mask is anded with the byte sequence of the file.

- ‘mask‘是一个标识(可选的,默认所有的都是0xff)。通过提供一个类似于magic或者是和magic

一样长的字符串来从正在匹配的文件中标识出一些位。

- ‘interpreter‘ is the program that should be invoked with the binary as first

argument (specify the full path)

- ‘interpreter‘ 应该是被二进制文件首先被调用的参数(特别是全路径)。

There are some restrictions:

同时还有一些显示:

- the whole register string may not exceed 255 characters                  整体的寄存器字符串不应该超过255个字符

- the magic must reside in the first 128 bytes of the file, i.e.           位序列一定要放在文件的前128位上,例如offset+size(magic)一定要少于128

offset+size(magic) has to be less than 128

- the interpreter string may not exceed 127 characters                     解释器字符串不能超过127个字符

To use binfmt_misc you have to mount it first. You can mount it with

"mount -t binfmt_misc none /proc/sys/fs/binfmt_misc" command, or you can add

a line "none  /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0" to your

/etc/fstab so it auto mounts on boot.

为了能够使用binfmt_misc你必须先去挂载她。你可以使用命令"mount -t binfmt_misc

none /proc/sys/fs/binfmt_misc"来挂载她,或者是你可以在/etc/fstab中添加一行

"none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0",这样他就会自动在

启动的时候挂载。

You may want to add the binary formats in one of your /etc/rc scripts during

boot-up. Read the manual of your init program to figure out how to do this

right.

你可能想要在启动的时候在你的一个/etc/rc脚本文件中添加一个二进制格式。阅读你的启动

程序手册来弄清楚如何正确的做这些事情。

Think about the order of adding entries! Later added entries are matched first!

请思考一些添加的顺序,后添加的会先被匹配。

A few examples (assumed you are in /proc/sys/fs/binfmt_misc):

几个小例子(假设你在/proc/sys/fs/binfmt_misc中)

- enable support for em86 (like binfmt_em86, for Alpha AXP only):

echo ‘:i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:‘ > register

echo ‘:i486:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:‘ > register

启动对em86的支持(类似于binfmt_em86,仅仅对Alpha AXP适用)

echo ‘:i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:‘ > register

echo ‘:i486:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff:/bin/em86:‘ > register

- enable support for packed DOS applications (pre-configured dosemu hdimages):

echo ‘:DEXE:M::\x0eDEX::/usr/bin/dosexec:‘ > register

启动对DOS应用程序的支持

echo ‘:DEXE:M::\x0eDEX::/usr/bin/dosexec:‘ > register

- enable support for Windows executables using wine:

echo ‘:DOSWin:M::MZ::/usr/local/bin/wine:‘ > register

启动使用wine对windows可执行程序的支持

echo ‘:DOSWin:M::MZ::/usr/local/bin/wine:‘ > register

For java support see Documentation/java.txt

对于java支持,请查看Documentation/java.txt文件

You can enable/disable binfmt_misc or one binary type by echoing 0 (to disable)

or 1 (to enable) to /proc/sys/fs/binfmt_misc/status or /proc/.../the_name.

Catting the file tells you the current status of binfmt_misc/the entry.

你可以通过向/proc/sys/fs/binfmt_misc/status 或者是 /proc/.../the_name广播0(关闭)

或者是1(启动)来启动/关闭binfmt_misc或者是一个二进制类型。查看文件能够告诉你binfmt_misc

/the entry的当前状态。

You can remove one entry or all entries by echoing -1 to /proc/.../the_name

or /proc/sys/fs/binfmt_misc/status.

你可以通过向/proc/.../the_name或者是/proc/sys/fs/binfmt_misc/status广播-1来移除

一个记录或者是所有的记录。

HINTS:

提示:

======

If you want to pass special arguments to your interpreter, you can

write a wrapper script for it. See Documentation/java.txt for an

example.

如果你想要向你的解释器传送特殊的参数,你可以向他写一个脚本文件。例如

你可以查看Documentation/java.txt文件。

Your interpreter should NOT look in the PATH for the filename; the

kernel passes it the full filename to use.  Using the PATH can cause

unexpected behaviour and be a security hazard.

你的解释器不应该查看文件名字的路径。(这句话不是很明白)内核会将文件全名

传送给她使用。使用PATH可能会导致不可预料的问题并且会成为一个安全危险。

There is a web page about binfmt_misc at

http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html

这里有一个有关binfmt_misc的网页:

http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html

Richard G黱ther <[email protected]en.de>

时间: 2024-10-18 04:04:57

Documentation目录下binfmt_misc文档的翻译的相关文章

Vlang官网文档(中文翻译)-vlang中文文档--v0.1.0_20180625

PS:主要为自己学习,,,,看的时候顺便翻译的,,,渣翻(非全人工)勿喷. 介绍 V是一种用于构建可维护软件的静态类型编译编程语言. 它与Go相似,也受到Oberon.Rust.Swift的影响. V是一种非常简单的语言,阅读这份文档大概只需要半小时的时间,读完之后,您将学习到V的全部内容. 尽管很简单,但是它为开发人员提供了很多功能,你能用其它编程语言做的任何事情,都可以用V做到. Hello World fn main() { println('hello world') } 函数用 fn

QJsonDocument实现Qt下JSON文档读写

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QJsonDocument实现Qt下JSON文档读写     本文地址:http://techieliang.com/2017/12/718/ 文章目录 1. 介绍  1.1. 错误分类  1.2. Json内容读写  1.3. 数据类型 2. 读写操作  2.1. json范例 3. 创建 4. 解析 5. 其他 1. 介绍 Qt提供了一系列类以供进行Json 文档的读写,分别为: QJs

Word文档怎么翻译?翻译word文档简单步骤讲解

将文档进行翻译是我们经常遇到的事情,市面上也出现了很多翻译文档的工具,但是使用起来总觉得不是那么好用,一款易上手的工具对我们来说是非常重要的,今天的课堂就是小编给大家分享使用工具将word文档进行翻译的三个小技巧,一起来了解下吧! 文档翻译工具一:在线转换器 1.进入PDF在线转换器页面,在菜单栏中找到文档处理,在弹出的子栏目中找到word在线翻译: 2.通过点击选择文件将需要进行翻译的文件上传至指定区域即可,在自定义转换设置中可以根据自己的需要选择翻译的语种: 3.点击开始翻译,当进度条显示转

VC++环境下多文档模板应用程序开发(带源码)

我们以前见到的关于VC++环境下利用APP Wizard 自动生成的MDI的应用程序只支持打开同一文档类型的多个文件,但是不能够同时打开不同种类型的文档.网上的这种公开资料比较少,我在知网上查阅了相关的资料.下面我根据这些资料做一下总结(辛辛苦苦一个一个字码出来的). 下面设计一个能够处理两种文档类型的应用程序:第一种文档类型:TXT文档,第二种文档类型:Bub的文档类型. 第一种的文档类型TXT,是利用APP Wizard自动生成的,只不过是在设置的时候将文档类型设置为TXT类型,并且使生成的

PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)

标记 用途 描述 @abstract   抽象类的变量和方法 @access public, private or protected 文档的访问.使用权限. @access private 表明这个文档是被保护的. @author 张三 <[email protected]> 文档作者 @copyright 名称 时间 文档版权信息 @deprecated version 文档中被废除的方法 @deprec   同 @deprecated @example /path/to/example

PHPDoc PHP注释的标准文档(翻译自Wiki)

文档注释,无非"//"和"/**/"两种 ,自己写代码,就那么点,适当写几句就好了:但是一个人总有融入团队的一天,团队的交流不是那几句注释和一张嘴能解决的,还需要通用的注释标准. PHPDoc是PHP文档注释的一个标准,可以帮助我们在注释文档时有规范,查看别人的代码时更方便.下面的表格是我翻译的WIKI上的PHPDoc,个人英文水平有限,可以参照原文. 文档翻译自:http://en.wikipedia.org/wiki/Phpdoc 标记 用途 描述 @abstr

Java递归读取文件夹下所有文档

/** * 递归读取文件夹下所有文档 * @author Administrator * */ public class FileLoop{ private static List<File> fileList = new ArrayList<File>(); public static void main(String[] args) { List<File> list = fileReadLoop("c:/dir"); for(int i=0;

Detailed Error Information: Module IIS Web Core Notification 未知 Handler 尚未确定 Error Code 0x80070032 配置错误 无法读取配置节“spring”,因为它缺少节声明 配置文件 \\?\d:\用户目录\我的文档\visual studio 2015\Projects\LiS

Detailed Error Information: Module    IIS Web Core Notification    未知 Handler    尚未确定 Error Code    0x80070032 配置错误    无法读取配置节“spring”,因为它缺少节声明 配置文件    \\?\d:\用户目录\我的文档\visual studio 2015\Projects\LiShu\LiShu.WebApp\web.config 没有加载sping 的dll文件

pdf文档在线翻译的简单方法有哪些?

pdf文档在线翻译的简单方法有哪些?当pdf文件需要在线翻译的时候我们可以将准备好的pdf文件进行在线翻译,下面就让小编给大家简单介绍一下. 步骤一:我们可以直接进入到迅捷PDF在线转换器在线网站中进行翻译即可,但是进入到在线网站我们需要在浏览器上进行搜索进入: 步骤二:进入之后可以在导航栏中找到文档处理中的PDF在线翻译:步骤三:我们可以直接进行自定义选择,自定义一下设置转换,然后进行文件的选择:步骤四:上传文件的时候直接将pdf文件点击上传到界面中或者是直接选择文件进行上传即可:步骤五:等文