colinux

 

Colinux是什么?
2004年,由一名21岁的以色列学生与几名日本的自由程序员合作开发出了一个名为“Cooperative Linux”即“CoLinux”的Linux程序,该程

序可使Linux的内核以交互的方式在基于微软的Windows操作系统上运行。
以色列的分析家们对这个程序大加赞赏,认为其将会改变整个软件世界的运行机制。但在国内,还很少有人对“CoLinux”进行详细的研究。
Cygwin是GNU的开发人员为了能将UNIX系统下一些强大应用移植到Windows环境下而开发的一套中间移植工具)Cygwin已经被证明是一套强大且

可靠的UNIX仿真工具;"CoLinux"呢,或许它的最大功能在于可直接在Windows环境下运行Linux的二进制代码而不用如同Cygwin那样要先行把

这些代码进行编译。
请记住Colinux不是Linux!

Colinux的由来
以色列国防军向来以为世界的无线技术诱发了整整一代的软件天才而闻名,而现在他显然又在孕育下一代能够改变整个世界的技术工程:在

Windows2000/XP上运行Linux的能力。  
      21岁的Dan Aloni是以色列国防军电脑部的毕业生,他开发了一个名叫“协作型Linux”(简称CoLinux)的Linux程序。它能使Linux的

内核以交互的方式运行在一部单机的另一个操作系统上。例如,它能够使用户在Windows上无缝的运行Linux而无需安装第三方的虚拟机软件

,这种做法无疑是一种经济而又高效的运行模式。
  在以色列,要求能在同一台计算机上并行的运行Linux和Windows的呼声越来越高。不需要为每一套操作系统分别设置一台独立的机器能

为企业节省大笔的资金。以色列开源论坛的成员Shahar Shemesh介绍说。他认为这个开发成果是“突破微软垄断态势的重要武器。”
  “随着Linux在企业中的日渐盛行,Aloni的开发成果是极富创新意识的。现在的问题就在于微软如何回应这个突破性进展的时候了。”
Colinux与竞品比较
在windows上模拟linux环境,目前主要有三种方法:
1.VMware, VirtualBox等虚拟机,缺点:占用系统资源多,运行速度慢,Vmware是商业版,VirtualBox的NAT仅能端口转化是致命的缺点
2.Cygwin等模拟环境,用windows下的程序模拟实现linux下的功能,缺点:与实际linux环境有差异,并且功能模拟不完全,容易出现冲突
   3.colinux 通过使用一种特殊的驱动程序,使得模拟环境可以运行在ring0特权模式下,与windows交替使用CPU,这样运行模拟环境就像

运行本地系统一样,速度非常快,稳定性好。
Colinux下载与安装
官方网站:http://www.colinux.org/

Colinux基本配置参数
kernel=vmlinux 
cobd0="base.vdi" 
cobd1="swap.vdi" 
cofs0="D:/share"
root=/dev/cobd0 
ro 
initrd=initrd.gz 
mem=128 
eth0=slirp,,tcp:22:22/tcp:8080:8080
eth1=tuntap,"tap-colinux“
cocon=120x25
Colinux支持三种方式启动
1.命令行方式
colinux-daemon.exe mem=1024 eth0=slirp kernel="vmlinux" cobd0="D:/ubuntu1204.ext3.4g.img" root=/dev/cobd0  ro --no-log

initrd="initrd.gz" eth1=tuntap,"tap-colinux" cocon=120x25 -t NT
2.批处理方式
set COLINUX_CONSOLE_FONT=Courier New:14
set COLINUX_CONSOLE_EXIT_ON_DETACH=1
colinux-daemon.exe @ubuntu124.conf
3.服务方式
colinux-daemon.exe -t nt @ubuntu124.conf --install-service "colinux"
Colinux虚拟镜像
单位换算 1G=1073741824  4G=4294967296

创建虚拟内存 fsutil file createnew swap.vdi 1073741824

手动挂载虚拟内存
mknod /dev/cobd1 b 117 1
swapoff /dev/cobd1 
mkswap /dev/cobd1 
swapon /dev/cobd1
自动挂载虚拟内存
在/etc/fstab中加入
/dev/cobd1 none swap sw 0 0
Colinux网络配置
1. 端口转发
跟Android模拟器类似,但比Android模拟器功能更强大 默认IP为10.0.2.15
2. NAT地址码转换
rm /etc/udev/rules.d/70-persistent-net.rules
rm -rf /lib/modules/*-co-*
vi /etc/network/interfaces
auto eth1iface eth1 inet static
address 192.168.0.22
network 192.168.0.0
netmask 255.255.255.0
3. 桥接
Colinux文件共享
文件系统,用于将宿主机 VFS(虚拟文件系统)和 Linux的 VFS进行绑定。这样就可以将宿主机中的文件夹 mount(挂载)到 Linux的文件系统

中,如此一来,宿主机和 Linux可以同时对该文件夹中的内容进行读写操作,方便了 Windows与 Linux之间的文件交换。  
文件共享的配置如下:
在启动 coLinux的配置参数中添加如下内容:  
cofs0=“E:/share”  
重新启动 coLinux后,在控制台中执行如下命令,就会将 Windows中的“E:/share”文件夹挂载到 Fedora系统中的 /home/share文件夹下。

  mount -t cofs cofs0 -o uid=dax,gid=dax /home/share  
如此以来 Windows 和 Linux都可以完全访问该文件夹中的内容,详细参数可参考 coLinux自带的帮助文件 cofs.txt。Linux系统中所需要用

到的软件,可以用 Windows中的软件下载,保存到“E:/share”文件夹中,然后在 Linux系统中直接进行安装。也可把需要使用 Linux环境

进行编译的代码放到“E:/share”文件夹下,可在 Windows系统中用熟悉的编辑工具编辑源代码,而在 Linux系统中编译,编译的结果可以

使用 Windows下的工具进行下载调试等。
#vim /etc/fstab
mount windows system's shared  folder
#cofs0:/ /home/share cofs defaults 0 0

Colinux文件共享
1. 通过cofs方式
cofsXX=host-pathname
mount -t cofs 0 /mnt/windows
 mount -t cofs cofs0 -o uid=dax,gid=dax /mnt/windows
mount -t cofs cofs0:Share -o uid=dax,gid=dax,dmask=0775,fmask=0664 /mnt/windows
cofs0:Share      /mnt/windows            cofs    defaults          0 0
2. 通过samba
apt-get install samba
vim /etc/samba/smb.conf
[root]comment=share's folder for windows
path=/opt
writable=yes
browseable=yes
create mask=0777
directory mask=0777
smbpasswd -a root
service smbd reload
service smbd restart
3. 通过ssh
Colinux根文件镜像扩容
# 4G = 4*1024*1024*1024 = 4294967296
fsutil file createnew ubuntu904.4g.ext3.img 4294967296
#在ubuntu1204.conf中加入cobd2="ubuntu904.4g.ext3.img“
#增加挂载点, 建立一个任意名的文件夹即可
mkdir /fs
#格式化文件系统,(比较费时间一点)
mkfs.ext3 /dev/cobd2
#挂载新建的文件系统,或是直接增加到 /ets/fstab 里面进行启动时自动挂载
mount /dev/cobd2 /fs 
#查看一下,已经完成了df
#复制先前的所有文件到新的设备中,这个过程就更漫长了
cp -ax / /fs 
#复制设备点if [ -d /dev/.udev ]; then cp -a /dev/* /fs/dev/; fi
检查一下新的文件中的 /fs/etc/fstab 中挂载的文件系统 只包含 /dev/cobd… 开头的,  使用df检查一下磁盘使用情况,确保没有异常

后进行下一步
#依次运行如下命令  
sync  
cd /  
umount /dev/cobd2  
shutdown -h now

Colinux安装Linux
//采用这种方式安装ubuntu12.04c:\coLinux\colinux-daemon.exe mem=512 eth0=slirp kernel="c:\coLinux\vmlinux" cobd0=root.fs

cobd1=swap.fs ro initrd=initrd.gz cobd2=ubuntu-12.04-server-i386.iso cocon=120x25
//安装步骤
Alt+F2, enter tty2
//mount cd
mkdir   /cdrom
mount   /dev/cobd2  /cdrom
//enable swap
mkswap  /dev/cobd1
swapon  /dev/cobd1
//install e2fsprogsu
dpkg -i /cdrom/pool/main/e/eglibc/libc6-udeb_2.11.3-3_i386.udebu
dpkg -i /cdrom/pool/main/e/e2fsprogs/e2fsprogs-udeb_1.41.12-4stable1_i386.udeb
//format
/dev/cobd0
mkfs.ext4   /dev/cobd0
Alt+F1 return tty1

 

配置:

ubuntu1210.bat

 

set COLINUX_CONSOLE_FONT=Courier New:14
set COLINUX_CONSOLE_EXIT_ON_DETACH=1

colinux-daemon.exe --no-log @ubuntu1210.conf

::colinux-daemon.exe -t nt --no-log @ubuntu1210.conf --install-service "colinux"

 

ubuntu1210.conf

 

kernel=vmlinux
#cobd1="D:/coLinux/ubuntu/swap.fs"
#cobd2="D:/coLinux/ubuntu/opt.fs"

cobd0="D:/coLinux/ubuntu/ubuntu1210.fs"

cofs0="D:\coLinux\data"
#cofs1="C:/cygwin/data"

root=/dev/cobd0
rw
rootfstype=ext4
barrier=off
initrd=initrd.gz
mem=512
eth0=slirp
#eth0=slirp,,tcp:22:22/tcp:8080:8080/tcp:80:80/tcp:177:177/udp:177:177
#eth0=slirp,,tcp:22:22/tcp:3306:3306/tcp:1984:1984/tcp:11211:11211

# Tuntap as private network between guest and host on second linux device
eth1=tuntap,"tap-colinux"
#,00:ff:e3:49:dc:64

cocon=120x25

#colinux-daemon.exe mem=1024 eth0=slirp kernel="vmlinux" cobd0="D:/ubuntu1204.ext3.4g.img" root=/dev/cobd0  ro --no-log initrd="initrd.gz" eth1=tuntap,"tap-colinux" cocon=120x25 -t NT --install-service linux

#sc create linux binPath= c:/colinux/quick.bat start= auto  //注意=号之后必须有空格

posted @ 2013-07-02 17:24  wang_tale  阅读(2036)  评论(0编辑  收藏  举报