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  //注意=号之后必须有空格

colinux的更多相关文章

  1. Setting up Ubuntu in CoLinux–changing local/keyboard to be English

    Today i installed the CoLinux with Ubuntu package, but the default locale setting of the system is G ...

  2. colinux安装指南

    1.colinux的安装 首先下载colinux安装文件,去http://www.colinux.org/下载默认安装,目录选择G:\colinux(根据自己需要选择,建议放在分区根目录下).选择不下 ...

  3. Linux学习内容

    Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...

  4. Linux 知识框架

    Linux要点 一.Linux的基本要求 1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件包的常用安装方法 4 ...

  5. Linux的学习路线图

    一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件包的常用安装方法 4. 学习添加外 ...

  6. vmware中的bridge、nat、host-only的区别

    概述: VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模 ...

  7. bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)-VMware下三种网络配置方式

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

  8. 001-window下运行linux

    一.概述 前提:有条件的情况下,自行安装 在windows上模拟linux环境,主要有三种方法: 1.VMware等虚拟机,缺点:占用系统资源多,运行速度慢. 2.Cygwin等模拟环境,用windo ...

  9. Linux ELF格式分析

    http://www.cnblogs.com/hzl6255/p/3312262.html ELF, Executable and Linking Format, 是一种用于可执行文件.目标文件.共享 ...

随机推荐

  1. JS 部分常见循环、分支、嵌套练习

    图形题思路:1.确定图形一共几行,即为外层的循环次数2.确定每行有几种元素,代表有几个内层循环3.确定每种元素的个数,即为每个内层循环的次数   通常,找出每种元素个数,与行号的关系式,即为当前内层循 ...

  2. linux 下启动程序的时候会显示坏的解释器,或者没有那个文件

    又一次开发的时候在windowns上编写完的程序放到linux下运行的时候,比如:./start.sh的时候显示:"坏的解释器,没有那个文件"错误, 原因是windowns下写的s ...

  3. php代码效率小常识

    1, 尽量不要使用@来进行抑制错误,效率很低 2,能使用单引号时不要使用双引号 3,echo的效率比print要高,同时echo可以输出多个变量 4,使用include,require时候最好使用绝对 ...

  4. linux 内核的rt_mutex (realtime互斥体)

    linux 内核有实时互斥体(锁),名为rt_mutex即realtime mutex.说到realtime一定离不开priority(优先级).所谓实时,就是根据优先级的不同对任务作出不同速度的响应 ...

  5. kafka java使用

    首先添加maven依赖 Kafka <dependency> <groupId>org.apache.kafka</groupId> <artifactId& ...

  6. lock invoke 死锁事例

    代码如下: using System; using System.Collections.Generic; using System.Windows.Forms; using System.Threa ...

  7. javascript 表达式和运算符 (二)

    表达式是一种JS短语,可使JS解释器用来产生一个值. 一.表达式 表达式分类 1.原始表达式 常量.直接量 (3.14,"test"); 关键字 (null,this,true): ...

  8. ES6相关新特性介绍

    你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...

  9. 【JAVAWEB学习笔记】23_Listener和邮箱服务器

    监听器Listener 学习目标 案例-使用监听器完成定时生日祝福 一.监听器Listener javaEE包括13门规范 在课程中主要学习 servlet技术 和 jsp技术 其中 servlet规 ...

  10. Hibernate map enum type

    1. Bean @Entity @Table(name = "entities") public class Entities { public enum entityType { ...