绿色版的Linux.NET——“Jws.Mono”(续)

前一篇文章中,我们简略的介绍了jws.mono的安装使用,以及我们如何自己动手做一个jws.mono出来。

在文章发表之后的几天里,我一直觉得有点不妥之处,直到后来猛然的意识到:我们自己动手做的jws.mono虽然可以见到info页面,但实际上却是无法挂载任何的.NET站点的。因此这也有必要写下这篇的续篇来对前面的疏漏进行填补。

马上进入本节主题,在本节中我们主要讲述:

  (1)、分析jws.mono的组成及相关组件的作用

  (2)、此mono非彼mono:bin目录详解



1、jws.mono组成及介绍

总的来说,jws.mono包含了两个部分,jexus以及提供它运行环境的mono。下面是“jws.mono.tar.gz”解压之后的组成(注:本篇文章针对的是前一篇中下载获得的jws.mono,其他的可能结构不一样):

直接开始分析吧,如上图所示,jws.mono的根目录包含了四个目录,它们的作用分别是:

  bin:包含Mono编译器的可执行文件目录

  

  etc:包含.NET默认配置文件的目录(machine.config等)

  jexus:顾名思义,放jexus的目录

  lib:里面包含了.NET的程序集、我们编译mono和libgdiplus所得到的so库文件

目录以及结构大概就是这样,各位读者分别点击进入相关的目录之后定会眼前一种熟悉的感觉。

2、bin目录详解

点击进入到bin目录:

各位读者如果对比自己手上编译得出的mono/bin目录,这里的bin目录就显得轻量多了,是的,此处的bin目录是经过裁剪,仅仅包含了提供.NET运行所需的核心组件,并没有其他更多的东西。出了mono-sgen,其余均有脚本组成,而dmcs、gmcs以及mcs分别供给FramWork版本为4.0、2.0(3.5)以及4.5的程序的程序调用。

使用VIM打开其中一个脚本文件:

这里面仅包含了一条命令,命令的作用是调用同级目录下的mono,并指定它的framework版本。

回到文件目录中,我们再仔细观察一下文件“mono”的大小(有兴趣的读者可以看看自己编译的Linux.NET中可执行文件“mono”的大小,相差甚大),大小只有1KB,显然这个叫“mono”的文件绝不会是编译器“mono”,只是一个同名的文件而已。
我在前文中曾说过,出了mono-sgen以外,其余的均是脚本文件,因此我们仍然可以继续用Vim打开它:

到了这里,我们已经一目了然了,这个“mono”文件的作用其实就是先设置并载入与Linux.NET运行相关的资源文件(程序集文件、machine.config等),然后把处理交给了“mono-sgen”处理(提示:mono-sgen里面包含了mono的JIT以及Sgen垃圾回收等组件,好东西)。

这一个文件很重要,我们所有的.NET程序的运行都要经过这一个文件,因此如果这个文件里面的参数(目录之类的)有任何的差错,都会导致我们的.NET程序无法编译运行。

再留意“--runtime”这里,在此处,无论你使用的是那个版本的framework库,其实在jws.mono运行时都是使用framework 4.0(事实上目前流行的CLR主要有2.0和4.0两个版本,而在mono中CLR 4.0是可以兼容CLR 2.0的库,MS.NET则不行)。



回到起点,开篇的时候,我提到的那个问题,各位读者现在知道是什么原因造成的了吗?

绿色版的Linux.NET——“Jws.Mono”(续)

时间: 2024-11-02 20:30:05

绿色版的Linux.NET——“Jws.Mono”(续)的相关文章

绿色版的Linux.NET——“Jws.Mono”

Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情.特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳.另外一方面,由于Linux.NET的环境搭建涉及到比较多Linux的操作知识,这无疑增加了它的学习使用成本,提高了学习的门槛,这也令不少习惯于Windows中开发ASP.NET的开发者对其望而生畏. 降低Linux.NET的学习难度,需要从环境部署开始着手,为此,Jexus的作者宇内给我们制作了一款绿色版的

jws.mono脚本安装详解

就在最近两天,最新版本的jws.mono上线了,这个版本除了提供与之前版本拥有的功能外,还额外提供了一个“自动化”的安装脚本,通过执行该脚本,jws.mono将自动快速的安装到指定的目录,同时,通过改变脚本执行参数,我们还可以实现对旧版本jws.mono的升级.此外,由这个版本开始,jws.mono还提供了供Red Hat流Linux使用的initd脚本——jwsd,借助这个jwsd,我们可以以“server jwsd xxx”的方式很容易的对Jexus进行操作(此功能需要使用脚本安装方式方可提

使用FlashFXP V3.8烈火汉化绿色版软件连接Linux

使用FlashFXP V3.8烈火汉化绿色版软件连接Linux 单击右上角的小闪电图标: 特别注意:出于安全考虑,FTP默认禁止使用root账号登陆Linux主机,必须使用除root用户以外的其他用户,如xiaoqiang.wangcai 出现以下图标状态,代表连接成功,默认定位到用户的家/home/wang文件夹,使用传送指令,传输amp软件到Linux主机中 登陆Linux服务器,进入/home/wang目录,如下图所示: 代表上传成功!

为知笔记linux绿色版的快速调用

Linux版本的为知笔记有两种安装方式,一种是通过编译源码进行安装,这个经过本技术小白的多次尝试,均以失败告终.另一种方式就是直接运行官方给的绿色版可执行文件.下面介绍一下在linux环境中快速调用绿色版为知笔记的方法. 下载官网给的可执行文件 WizNote...64.AppImage 右击属性中将这个文件设置成可执行.可以确认一下,双击时应该可以打开未知笔记了. 修改用户的环境变量文件~/.bashrc,添加调用为知笔记命令的alias,代码如下: # add shotcut to Wizn

wine on ubuntu linux, and source insight 绿色版的安装

1.安装一些必要组件 winetricks msxml3 gdiplus riched20 riched30 vcrun6 vcrun2005sp1 wenquanyi 2.拷贝字体 下载网盘中的字体,解压,移至~/.wine/dosdevices/c:/windows/Fonts目录 cp Fonts/* ~/.wine/dosdevices/c:/windows/Fonts 3.修改注册表 wine regedit 打开wine注册表: [HKEY_LOCAL_MACHINE\Softwar

激活jws.mono的图像处理

不得不说,jws.mono真的给我们带来了很大的便利,它免除了我们编译Linux.NET所带来的烦恼,节省了我们的时间.但是金无足赤人无完人,虽然jws.mono已经大致能够提供与我们自行编译相同的效果,不过它仍然有一点不足,那就是我们无法使用与图形处理相关的工作(System.Drawing).造成这点不足的原因就是在于,我们的jws.mono没有内置与常见图像处理相关的库,澄清一点,这里所指的库是类似于"libpng库"."libjpeg库"."gd库

[软件推荐]快速文件复制工具(Limit Copy) V4.0 绿色版

快速文件复制工具(Limit Copy)绿色版是一款智能变频超快复制绿色软件. 快速文件复制工具(Limit Copy)功能比较完善,除了文件复制还可以智能变频,直接把要复制的文件拖入窗口即可,无需手动添加. 快速文件复制工具(Limit Copy)软件特色 1.断点续传 上次复制完了一部分的文件可以继续接着复制,续传前会校验已文件复制片段是否是指定源文件的一部分,如果你确定是一部分可以直接点击跳过校验,省去等待校验结果的时间. 2.智能变频 根据读写速度和独有算法智能计算并预测出目标驱动器未来

远程控制软件Teamviewer13绿色版出来了

Teamviewer13是2017年底发布的最新版本的远程控制软件,teamviewer作为90%用户选择使用的远程软件,操作简单快速,提高工作效率.大家选择teamviewer的理由:1. 节省金钱和时间:提供支持与协助,并与他人互动合作: 彼此交换信息:为您节省差旅时间和费用. 借助TeamViewer,一切所需都近在眼前.2. 专注于自身工作,无需费时准备:TeamViewer只需数秒即可在任何设备上投入使用.远程解决问题或召集客户和同事,无需繁杂的步骤或冗长的准备3. 安全且强大:Tea

bitcomet绿色版

BitComet中文名称比特彗星,是一款集BT/HTTP/ftp为一体的免费下载器,BitComet(比特彗星)不仅有急速的下载速度,让你体验飞快下载,无停顿的感觉.持久的长效种子让你的种子不过期,不害怕资源被丢失.还有磁盘缓存功能让你的硬盘不怕老化,和边看边下功能更是完美体验,不再浪费时间. 所需工具:bitcomet绿色版 官方介绍 BitComet(比特彗星)是一个完全免费的BitTorrent(BT)下载管理软件,也称BT下载客户端,同时也是一个集BT/HTTP/FTP为一体的下载管理器