免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 820 | 回复: 0
打印 上一主题 下一主题

linux -windows (1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-21 18:12 |只看该作者 |倒序浏览
虽然大多数linux爱好者都不怎么使用windows,但是不少人还是习惯了某些windows下的软件,而不愿意从开源仓库中寻找替代品。当然,你可以用拥有wine的GNU/Linux系统解决这个问题。但是还有令人感觉不如意的地方:每次想要启动这些程序时,你不得不输入
        cd ~/.wine/drive_c/Program\ Files\My\ Windows\ App; wine My\ Windows\ App.exe
      
      请注意,是每次。用shell脚本也不是什么很好的主意。有没有什么办法,能在xterm下直接通过My\ Windows\ App.exe来运行这些程序?幸运的是,linux内核特性
binfmt_misc
就够帮助你达成这个愿望。
      当你运行你的linux发布版本的stock kernel后,便拥有这个特性。如果没有,或者说你希望使用你自定制的核心,那么请确定,无论是内置还是作为模块,你都要选择CONFIG_BINFMT_MISC (Executable file formats -> Kernel support for MISC binaries)。在后一种情况下,请确定binfmt_misc模块在启动时是自动加载的(在Debian和Debian系的系统中可以运行echo binfmt_misc >> /etc/modules) 。之后通过命令
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
挂载bifmt_misc,或者拷贝下面的字符到你的/etc/fstab文件中,以确保在每一次启动时它都自动挂载:
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
      现在,你必须告诉binfmt_misc,通过调用/usr/bin/wine来执行win16或win32应用程序。请注意,wine的路径必须是全路径,否则不能工作:
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
      接下来就要让这个设置永久性得起作用。如果你使用的是gentoo,将前面的这个命令复制到你的/etc/rc.d/rc.local 或 /etc/conf.d/local.start文件中。如果你使用的是基于Debian的发行版,就要复制下面的命令到/etc/init.d/wine:
#!/bin/sh
test -e proc/sys/fs/binfmt_misc/register || exit 0
case "$1" in
  start)
    echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
    ;;
  stop)
    echo 0 > /proc/sys/fs/binfmt_misc/status
    ;;
  *)
    echo "Usage: $0 {start|stop}" >&2
    exit 3
    ;;
esac
      然后,通过
chmod 755 /etc/init.d/wine
让文件能够被用户执行。再通过
update-rc.d wine start 99 2 3 4 5 . stop 10 0 1 6 .
让它在启动过程中开始起作用。
      最后一步,确认你的windows二进制程序能够被执行,当然还是通过这个命令
chmod 755 ./My\ Windows\ App.exe
接下来,你就能和运行linux程序一样来运行它了。当然,为了方便,你还可以建立一个符号连接到你的任何一个PATH路径下,例如/usr/local/bin。
      用同样的办法,binfmt_misc能够运行基于java和python编写的程序,如果想得到更多信息的话,请参考任何一个版本较新的内核文件包中的Documentation/binmft_misc.txt。
      这个技术也许在应用上还存在一些安全性问题------例如本地提权------因此,请让值得信任的用户在更新过的系统中使用。更好的办法,是让你的/proc文件系统通过nosuid属性挂载。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48025/showart_387123.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP