I keep seeing "bootstrapping" mentioned in discussions of application development. It seems both widespread and important, but I've yet to come across even a poor explanation of what bootstrapping actually is; rather, it seems as though everyone is just supposed to know what it means. I don't, though. Near as I can figure, it has something to do with initialization tasks required of an application upon launch, but I could be completely wrong about that. Can anyone help me to understand this idea?


当前回答

“Bootstrapping”来源于“靠自己的力量把自己拉起来”这个词。这些你可以从维基百科上得到。

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

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

其他回答

亚历克斯,这和你的电脑启动时做的差不多。('Booting' a computer实际上来自于单词bootstrapping)

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

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

为了完整起见,它也是统计学中一个相当重要的(相对较新的)方法,它使用重采样/模拟从样本中推断总体属性。它在维基百科上有一篇关于自我引导(统计)的长篇文章。

除了它在软件开发中的应用(例如kdgregory给出的答案)和Dirk Eddelbuettel所讨论的在统计学中的应用之外,在强化学习的上下文中,Bootstrapping还有另一个对开发人员有用的含义。

来自萨顿和巴托:

Widrow, Gupta, and Maitra (1973) modified the Least-Mean-Square (LMS) algorithm of Widrow and Hoff (1960) to produce a reinforcement learning rule that could learn from success and failure signals instead of from training examples. They called this form of learning “selective bootstrap adaptation” and described it as “learning with a critic” instead of “learning with a teacher.” They analyzed this rule and showed how it could learn to play blackjack. This was an isolated foray into reinforcement learning by Widrow, whose contributions to supervised learning were much more influential.

这本书描述了各种强化算法,其中目标值是基于先前的近似作为bootstrap方法:

最后,我们注意到 DP[动态规划]方法的最后一个特殊性质。所有这些都更新了估计 基于对继承者价值的估计的状态值 州。也就是说,他们在其他数据的基础上更新估计 估计。我们把这叫做引导。许多钢筋 学习方法执行引导,即使是那些没有引导的方法 要求,正如DP要求,一个完整和准确的模型 环境。

请注意,这不同于维基百科页面上提到的自举聚合和智能爆炸。

“Bootstrapping”来源于“靠自己的力量把自己拉起来”这个词。这些你可以从维基百科上得到。

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

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

在一些web框架中有一个引导的例子。你调用index.php (bootstrapper),然后它加载框架的助手、模型、配置,然后加载控制器并将控制权传递给它。

正如您所看到的,这是一个启动大进程的简单文件。