约翰·吉尔摩:天鹅座成长史

2020-07-19 11:18:30

Toad.com的约翰·吉尔莫·格努于美国东部标准时间2020年5月23日06:39:25在gmail.com>;的泰勒·亚当斯<;Coppero1237写道:>;>;是因为给GCC添加后台是免费的,C已经广为人知,而C已经足够了?Skeeve.com的阿诺德写道:>;天鹅座解决方案公司(Hi John!)。跟这件事有很大关系。他们专门将GCC移植到嵌入式系统中使用的不同处理器上,并提供支持。首先要做的是。当弄清楚发生了什么以及什么会成为普遍现象时,重要的是要看看资金流向了哪里。经济学会告诉你一些其他方式学不到的关于系统的东西。第二,在嵌入式市场包括32位处理器之前,GCC在其中默默无闻。32位在嵌入式市场的占有率还不到1%,只占几千美元的市场份额,比如激光打印机(Adobe/AppleLaserWriter)和网络交换机(3Com/Cisco/等)。天鹅座最终得到了许多这样的公司作为支持客户,因为他们很想为每一代新一代硬件平台通过不同的编译器来移植他们的代码。但我们对绝大多数嵌入式市场的可见性为零。我们去那里是因为即使是我们的小众市场也是巨大的,是本地编译器市场的许多倍,客户也更加多样化。早些时候,GCC有一个轻微的优势,因为它是免费的(比如啤酒和语音),并且有一个由维护员组成的电子邮件社区,所以很多人都开始了到不同体系结构的端口。其中只有几个是生产质量的,但它们每个都提供了至少一个起点,并吸引了感兴趣的用户,他们可能会付钱让我们实现它们。Cygnus能够为每个新架构提供生产编译器,价格远远低于其他为嵌入式系统构建编译器的公司。我认为这更多地与我们的定价策略有关,而不是修改编译器的实际成本。我们的主要竞争对手是六家小的、肥胖的、懒惰的公司,它们对交叉编译器的每个座位收费1万美元,对芯片制造商的最新芯片移植收取100万美元甚至更多的费用。天鹅座向芯片制造商收取50万美元的全新架构费用,每座收取0美元,这导致我们在最初的3到5年里吃掉了竞争对手的午餐。然后我们雇了一个更懂定价的人,把我们自己的端口价格提高到市场承受能力的更大比例,以便在赢得交易的同时获得更好的利润。我们为SPARC建造了第一批64位端口和工具,当时SPARC-64还是个秘密,后来又为其他体系结构建造了。(Sun&39;Shardware Diagnostics Group资助了我们的工作。他们需要能够编译他们的芯片和系统测试,在Sun的编译器团队可以为客户交付64位编译器之前整整一年。)为了使GCC成为一个标准的、有生产价值的编译器所做的很多工作与代码生成几乎没有什么关系。例如,许多客户非常希望在DOS和Windows以及各种UNIX机器上托管交叉编译器,所以我们最终聘请了djgpp的天才DJ Delorie,并将其制成支持商业质量的产品。(我们还聘请了让GCC在旧的MacOS开发环境中运行的人(Stan Shebs)和免费Amiga应用程序的资深开发人员和发行商之一(Fred Fish)。)我们必须极大地改进编译器和工具的测试基础设施。我们设计并构建了DejaGnu(Rob Svoye的工作),并且随着每个错误报告的出现,我们添加了一个日益严肃的免费C和C++编译器测试套件。我们的构建过程足够自动化,我们可以比较不同主机系统为同一目标平台生成的代码。(可复制构建团队现在正试图为整个Linux分发代码库这样做。)。DejaGnu实际上在具有不同目标架构的多个目标平台上运行我们的测试套件,通过串行端口下载二进制文件并跳转到它们,然后比较测试输出,以便我们可以修复任何与目标相关的差异。我们聘请了全职作家(最初是Roland Pesch,他早年曾是一名认真的程序员)来编写真正的手册和其他文档。我们编写了一个基于电子邮件的错误跟踪系统(PRMS),也是第一个在互联网上运行的版本控制系统(Remote CVS)。我们的客户都使用不同的对象文件格式,所以我们在汇编器、链接器、大小、nm和ar以及其他工具(例如,我们创建了objdump和objcopy)中编写了新的格式独立性代码(BFD库)。最终,史蒂夫·张伯伦写给我们和GNU一个全新的链接器,它具有构建嵌入式系统二进制文件所需的灵活性,并将代码和数据放在硬件需要它的任何地方。我们学会了如何雇佣和管理远程员工,这意味着我们能够从全国和世界各地聘请才华横溢的GCC和工具黑客,他们抓住机会,将他们心爱的爱好变成了泡影。