本地代码与托管代码

Posted wintertone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本地代码与托管代码相关的知识,希望对你有一定的参考价值。

最开始写代码,都是经过编译后生成汇编码,直接在cpu上执行。 因为不同的硬件架构和操作系统,会导致不同的cpu支持的指令可能不同,也就是说不通类型的cpu所能执行的代码就是我们说所的本地代码,也叫本机代码或者native代码。这给程序的移植性带来很很大的麻烦,我们在一台机器上运行的好好的代码,如果拿到另一个硬件架构不同的机器上去的话,有可能运行不起来。C,C++写的代码等都是本地代码。但是,本地代码的好处就是效率比较快,因为它少了一个转换的过程。

后来,形成了另一种编程模式,例如:java。 就是采用一种虚拟机的机制, 屏蔽掉底层硬件和操作系统的不同,写的代码经过编译后形成一种中间语言代码,例如java的class字节码。  这种中间码直接在虚拟机里面执行,虚拟机负责将中间码转换成其所在平台上能执行的本地机器码。 在微软的.net 平台下面的编程模型也是这样的,不管是什么语言,写的代码经过相应的编译器编译以后,会生成中间码,然后.net framwork 里面的虚拟机读入这种中间码,产生本地机器上的本地码。 微软把这种产生中间码的语言所写的代码称为托管代码,意思就是说,这种代码是受.net framework 管理的,不能直接访问内存等硬件, 需要通过.net framework 来访问。


https://blog.csdn.net/playboy_lei/article/details/50318313

https://www.cnblogs.com/muzhiye/archive/2012/02/23/2365556.html

以上是关于本地代码与托管代码的主要内容,如果未能解决你的问题,请参考以下文章

Git的本地结构与远程中心

如何使用Git将本地项目推送至代码托管平台?GiteeGitLabGitHub

C# 托管和非托管混合编程

使用 git 托管代码

是否可以完全用托管的 .NET 语言编写 JIT 编译器(本地代码)

用Visual studio可以开发非托管代码(即本地代码)吗?即不是将源码编译为IL,而是直接编译成为汇编。