免费注册 查看新帖 |

Chinaunix

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

最近在写一个东西:在windows上跑原生linux程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-03 14:07 |只看该作者 |倒序浏览
不是cygwin,cygwin的做法是把程序源代码编译称PE格式
也不是coLinux,coLinux是类似win7上的“xp模式“这样东西,还是有虚拟的
我做的这个是跑的原生的程序
基本上就是把写一个驱动,把int 80中断打通
在中断处理函数里把栈上保存的返回地址改成用户态的一个handler函数,然后iretd后
就会转到这个函数里执行
把各种参数包装包装后,再转入cygwin1.dll,就能正常工作了
这是第一阶段做的事情,长期打算是把cygwin1.dll里的内容都搬到内核里去,做完后
就用不着cygwin帮忙里
目前已经能运行bash,gcc也可以工作,不过脚本还跑不起来。等脚本能跑后,就可以照
着LFS等文档建一个“特殊”等发行版出来
这事跟毛先生的兼容内核有些类似,不过是正好反过来的
不知道各位有没有兴趣一起来玩

评分

参与人数 1可用积分 +2 收起 理由
lenky0401 + 2 值得学习讨论

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2011-09-03 15:50 |只看该作者
sysenter支持吗?

论坛徽章:
0
3 [报告]
发表于 2011-09-03 16:13 |只看该作者
本帖最后由 AD8018 于 2011-09-03 16:14 编辑

colinux, andlinux, 不是早就有人搞了吗?

论坛徽章:
0
4 [报告]
发表于 2011-09-03 16:26 |只看该作者
colinux, andlinux, 不是早就有人搞了吗?
AD8018 发表于 2011-09-03 16:13



    原贴第二句话

论坛徽章:
0
5 [报告]
发表于 2011-09-03 17:14 |只看该作者
不是cygwin,cygwin的做法是把程序源代码编译称PE格式
也不是coLinux,coLinux是类似win7上的“xp模式“这 ...
gussing 发表于 2011-09-03 14:07



    cyg是编成pe,你这个是怎么搞?像ndiswrapper一样先弄个process再load elf?

论坛徽章:
0
6 [报告]
发表于 2011-09-04 00:45 |只看该作者
cyg是编成pe,你这个是怎么搞?像ndiswrapper一样先弄个process再load elf?
鸡丝拌面 发表于 2011-09-03 17:14



    没错,核心组件两个:内核态的int 80响应,用户态的elf loader

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
7 [报告]
发表于 2011-09-04 01:12 |只看该作者
和wine反过来?毛的龙井兼容内核反过来?

论坛徽章:
0
8 [报告]
发表于 2011-09-04 08:07 |只看该作者
不错, 看好楼主的这个东西

论坛徽章:
0
9 [报告]
发表于 2011-09-04 11:17 |只看该作者
代码我放在http://code.google.com/p/line-is-not-emulator/
另外我的博客上有详细介绍http://www.cnblogs.com/gussing/

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
10 [报告]
发表于 2011-09-04 16:33 |只看该作者
这个很有意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP