本文章需要对计算机网络启动有一定的了解

最早出现的是etherboot,这是一个开源的软件,可以帮助计算机从网络启动,功能非常的简单

1. 发送dhcp请求

2. 获取一个文件,通常文件就是linux的kernel。

Intel发现这种从网络启动有很重要的地位,所以就开发了一个工具PXE(preboot execute environment)。 这也算是网络启动计算机的一个标准吧。正常来说pxe程序都是存放在网卡中的。

PXE比etherboot中强的部分就是引入了一个NBP(network bootstrap program)的概念。所有的NBP文件都是可执行的,也可以有对应的配置文件。这样以来,如果网卡中自带的PXE无法满足用户的需求的话,就可以先使用dhcp从网络下载NBP,再通过NBP的配置文件来控制计算机的下一步执行流程(配置文件其它就是一个NBP可执行的脚本,相应的NBP会有自己的文档详细描述脚本的写作方法)。所以计算机从网络启动就可以有很大的灵活性,从而满足不用开发人员的需求。

PXE可以支持的协议主要有dhcp和tftp。


PXE功能已经很强大,可以满足大部分人的需求。但是它也存在不足:

1. PXE是闭源的,大家如果想学习的话是很难的。

2. PXE的传输协议只有tftp,tftp很简单,但是性能不容乐观,如果少量的几台机器使用的话不成问题,机器的数量一多,就会出现time out这样的问题。


所以etherboot那些人就重新开发了一个软件叫做gPXE,完全实现的PXE所有的功能,当然也做出了很多的增强,特别是支持了DNS,HTTP, iSCSI,这对于大型机群的管理人员来说就有很大的意义了,http更加的快速和稳定。


现在使用的最多的iPXE, 这个i没有任何的意思,因为官网是的说明是“It doesn't.”。大家认为iPXE和gPXE是一个东东就可以了。


如果想有个详细的了解的话,可以看看这个页面中的视频 https://sites.google.com/site/richardgroux/infrastructure-1/Network/pxe-boot/what-is-gpxe-1。 视频中的几个大牛就是etherboot/gPXE/iPXE的作者。


Logo

更多推荐