当前位置:  开发笔记 > 编程语言 > 正文

什么是自举?

如何解决《什么是自举?》经验,为你挑选了7个好方法。

我一直看到在应用程序开发的讨论中提到的"bootstrapping".它似乎既广泛又重要,但我还没有看到一个关于实际引导的错误解释; 相反,似乎每个人都应该知道这意味着什么.不过,我没有.我可以说,它与启动时应用程序所需的初始化任务有关,但我可能完全错了.任何人都可以帮我理解这个想法吗?



1> 小智..:

"Bootstrapping"来自于"通过自己的引导来提升自己"这个术语.你可以从维基百科那里得到多少.

在计算中,引导加载程序是机器启动时运行的第一段代码,负责加载操作系统的其余部分.在现代计算机中,它存储在ROM中,但我记得PDP-11上的引导过程,您可以通过前面板开关戳位以将特定磁盘段加载到内存中,然后运行它.不用说,引导加载程序通常非常小.

"Bootstrapping"也被用作使用自身构建系统的术语 - 或者更准确地说,是一个先前版本.例如,ANTLR版本3是使用ANTLR版本2中开发的解析器编写的.


哇,我几乎忘记了PDP上的前面板开关.谢谢给的回忆!!
如果我错了,请纠正我.虽然这个答案解释了引导可能的技术细节,但它在问题的上下文中从未回答过原始问题.
@jayscript - 你会如何选择回答这个问题?这是一种惯用的表达方式,习惯用法通常被使用它们的社会群体很好地理解,而且在它之外是不可理解的.我试图通过例子回答,我认为这是尝试翻译成语的少数方法之一.
@kdgregory当我来这里寻找答案时,我无法回答这个问题.我推测bootstrapping这个词本身就是几个与松散相关的不同技术概念的隐喻,这可能是混乱的根源.
PDP 11?!我没有意识到我们这里有老人.:P

2> ryeguy..:

引导的一个例子是在一些Web框架中.您调用index.php(引导程序),然后加载框架帮助程序,模型,配置,然后加载控制器并将控制权传递给它.

如您所见,它是一个启动大型进程的简单文件.


在Web开发方面(这是原始问题的背景),我认为这是最好的答案.
@Kallaste,很好,但这是我寻找的答案,而且,基于原始问题("应用程序开发")的上下文,它似乎是已经指出的最合适的答案.

3> HeDinges..:

请参阅关于bootstrapping的维基百科文章.

有一节和链接解释了它在计算中的含义.它在该领域有四种不同的用途.

以下是一些引用,但有关更深入的解释和其他含义,请参阅上面的链接.

"...是一种简单的计算机程序激活更复杂的程序系统的技术."

"术语bootstrapping的另一种用法是使用编译器自行编译,首先用现有语言编写新编程语言编译器的一小部分,以编译用新语言编写的新编译器的更多程序."


您可以引用或解释,以便读者不必遍历多个网站来获得答案吗?
"软件行业:合法销售不合格商品的独特业务,并为其升级收费."

4> Ivan Poliako..:

术语"引导"通常适用于系统依赖于自身启动的情况,即鸡和蛋的问题.

例如:

你如何编译用C编写的C编译器?

如果尚未运行操作系统,如何启动操作系统初始化过程?

如何启动分布式(点对点)系统,客户端依赖于当前已知的对等体来查找系统中的新对等体?

在这种情况下,自举是指通常在外部实体的帮助下打破循环依赖的方式,例如

您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己

您可以使用单独的代码来设置初始过程,而不依赖于操作系统提供的任何功能

您使用硬编码的初始对等列表或提供对等列表的硬编码跟踪器URL

等等


这真的是问题的核心.在其他两个答案的地方,完全错过了.

5> Michael Borg..:

在应用程序开发的上下文中,在谈论模块化和/或可自动更新的软件时,通常会出现"引导".

用户只需下载并启动一个小的"引导程序"可执用户需要的应用程序的一部分.此外,引导程序组件能够在每次启动时查找更新并安装它们.


我从未听说过在特定情况下使用的术语"引导".

6> davewasthere..:

亚历克斯,这几乎是你的电脑在启动时所做的事情.('引导'计算机实际上来自bootstrapping这个词)

最初,BIOS中的小程序运行.它包含足够的机器代码来加载和运行更大,更复杂的程序.

第二个程序可能类似于NTLDR(在Windows中)或LILO(在Linux中),然后执行并能够加载,然后运行其余的操作系统.


虽然我阅读了所有的答案(扩展了这个术语并且我投票了一些),但这个简单的"引导"又称"引导"比较给了我阅读所有其他连接点的最佳动机.Srsly,这就像向一个5岁的孩子解释一个复杂的话题,他们得到了它.谢谢.

7> Dirk Eddelbu..:

为了完整性,它在统计中也是一种相当重要(且相对较新)的方法,它使用重采样/模拟来从样本中推断出种群属性.它有关于bootstrapping(统计)的长篇维基百科文章.


这就是为什么我说'相对':Efron的初始文章来自20世纪80年代早期,而不是说20世纪60年代的稳健性文献的开头.
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有