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?


当前回答

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

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

其他回答

在应用程序开发的上下文中,“引导”通常在讨论模块化和/或自动更新软件时出现。

而不是用户下载整个应用程序,包括他不需要的功能,并重新下载和手动更新它,只要有更新,用户只下载和启动一个小的“引导”可执行文件,它反过来下载和安装用户需要的应用程序的那些部分。此外,引导组件能够在每次启动时查找更新并安装它们。

参见维基百科关于引导的文章。

有一个部分和链接解释了它在计算中的含义。它在这个领域有四种不同的用途。

这里有一些引用,但要更深入的解释和其他含义,请参考上面的链接。

"...是一种技术,通过一种简单的计算机程序激活一个更复杂的程序系统。” “自举一词的另一种用法是使用编译器来编译自己,首先用现有语言编写一种新编程语言的编译器的一小部分,然后用新语言编写更多的新编译器程序。”

术语“自举”通常适用于系统依赖自身启动的情况,有点像鸡和蛋的问题。

例如:

如何编译用C编写的C编译器? 如果操作系统还没有运行,如何启动操作系统初始化进程? 如何启动一个分布式(点对点)系统,在这个系统中,客户端依赖于它们当前已知的对等点来查找系统中的新对等点?

在这种情况下,bootstrapping指的是一种打破循环依赖关系的方法,通常借助外部实体的帮助。

您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己 您使用一段单独的代码来设置初始进程,而不依赖于操作系统提供的任何函数 您使用硬编码的初始对等体列表或提供对等体列表的硬编码跟踪器URL

etc.

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

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

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

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

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

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

推荐文章