我一直看到在应用程序开发的讨论中提到的"bootstrapping".它似乎既广泛又重要,但我还没有看到一个关于实际引导的错误解释; 相反,似乎每个人都应该知道这意味着什么.不过,我没有.我可以说,它与启动时应用程序所需的初始化任务有关,但我可能完全错了.任何人都可以帮我理解这个想法吗?
"Bootstrapping"来自于"通过自己的引导来提升自己"这个术语.你可以从维基百科那里得到多少.
在计算中,引导加载程序是机器启动时运行的第一段代码,负责加载操作系统的其余部分.在现代计算机中,它存储在ROM中,但我记得PDP-11上的引导过程,您可以通过前面板开关戳位以将特定磁盘段加载到内存中,然后运行它.不用说,引导加载程序通常非常小.
"Bootstrapping"也被用作使用自身构建系统的术语 - 或者更准确地说,是一个先前版本.例如,ANTLR版本3是使用ANTLR版本2中开发的解析器编写的.
引导的一个例子是在一些Web框架中.您调用index.php(引导程序),然后加载框架帮助程序,模型,配置,然后加载控制器并将控制权传递给它.
如您所见,它是一个启动大型进程的简单文件.
请参阅关于bootstrapping的维基百科文章.
有一节和链接解释了它在计算中的含义.它在该领域有四种不同的用途.
以下是一些引用,但有关更深入的解释和其他含义,请参阅上面的链接.
"...是一种简单的计算机程序激活更复杂的程序系统的技术."
"术语bootstrapping的另一种用法是使用编译器自行编译,首先用现有语言编写新编程语言编译器的一小部分,以编译用新语言编写的新编译器的更多程序."
术语"引导"通常适用于系统依赖于自身启动的情况,即鸡和蛋的问题.
例如:
你如何编译用C编写的C编译器?
如果尚未运行操作系统,如何启动操作系统初始化过程?
如何启动分布式(点对点)系统,客户端依赖于当前已知的对等体来查找系统中的新对等体?
在这种情况下,自举是指通常在外部实体的帮助下打破循环依赖的方式,例如
您可以使用另一个C编译器来编译(引导)您自己的编译器,然后您可以使用它来重新编译自己
您可以使用单独的代码来设置初始过程,而不依赖于操作系统提供的任何功能
您使用硬编码的初始对等列表或提供对等列表的硬编码跟踪器URL
等等
在应用程序开发的上下文中,在谈论模块化和/或可自动更新的软件时,通常会出现"引导".
用户只需下载并启动一个小的"引导程序"可执用户需要的应用程序的一部分.此外,引导程序组件能够在每次启动时查找更新并安装它们.
亚历克斯,这几乎是你的电脑在启动时所做的事情.('引导'计算机实际上来自bootstrapping这个词)
最初,BIOS中的小程序运行.它包含足够的机器代码来加载和运行更大,更复杂的程序.
第二个程序可能类似于NTLDR(在Windows中)或LILO(在Linux中),然后执行并能够加载,然后运行其余的操作系统.
为了完整性,它在统计中也是一种相当重要(且相对较新)的方法,它使用重采样/模拟来从样本中推断出种群属性.它有关于bootstrapping(统计)的长篇维基百科文章.