FreeBSD GPL-लाइसेंस प्राप्त GCC का उपयोग क्यों करता है?


11

फ्रीबीएसडी जीसीसी को अपने डिफ़ॉल्ट कंपाइलर के रूप में क्यों इस्तेमाल करता है?

मैं इस धारणा के अधीन हूं कि FreeBSD दर्शन का एक मुख्य स्तंभ किसी भी GNU सॉफ्टवेयर और विशेष रूप से, GPL कोड का उपयोग नहीं करना है।

फिर भी जीसीसी जो कि GNU और GPL दोनों है, FreeBSD के साथ बंडल हो जाता है।

क्यों?

जवाबों:


13

FreeBSD 10 , GCC के बजाय 32- और 64-बिट इंटेल x86 सिस्टम के लिए BSD- लाइसेंस प्राप्त क्लैंग कंपाइलर का उपयोग करेगा । सभी सीपीयू प्लेटफार्मों पर एक थोक स्विच को रोकने की एकमात्र चीज फ्रीबीएसडी रिलीज पर डेवलपर समय और ब्याज है।

FreeBSD 9 के लिए - जो कि इस सवाल के पहली बार सामने आने के बाद रिलीज़ होने वाली थी - क्लैंग को डिफॉल्ट कंपाइलर बनाने के बारे में बात हुई थी , लेकिन इसके साथ पर्याप्त समस्याएं थीं कि उन्होंने जीसीसी के साथ क्लैंग को शिप करने का फैसला किया, और डीसीसी को छोड़ दिया। इस रिलीज के लिए।

क्योंकि FreeBSD ने सालों पहले एक गैर-जीपीएल संकलक के पास जाने की कोशिश नहीं की, या शायद अपना खुद का भी निर्माण किया, इसका कारण सरल है: यह कठिन है।

कोई भी अंडरग्रेजुएट सीएस छात्र एक कंपाइलर लिख सकता है - यह एक कोर्स की आवश्यकता भी हो सकती है - लेकिन एक अच्छा कंपाइलर लिखना कठिन है। एक अच्छा संकलक लिखना तब भी कठिन होता है जब उसे C या C ++ जैसी भाषा के लिए होना चाहिए। कार्य तब भी कठिन हो जाता है जब आप उचित निर्णय लेते हैं कि नए संकलक को कम से कम जीसीसी के प्रदर्शन और क्षमता के लिए दृष्टिकोण की आवश्यकता है , जिसके पीछे कुछ दशकों का विकास है।

उसी के कारण, GCC 4.2 अभी भी FreeBSD 9 पर डिफ़ॉल्ट कंपाइलर है।

GCC 3.4, 4.4, 4.6, 4.7 और 4.8 FreeBSD 9 पोर्ट्स ट्री में हैं, वैसे, और जीसीसी के कुछ संस्करण आने वाले कई वर्षों तक पोर्ट्स में बने रहने की संभावना है। वहाँ बहुत सारे सॉफ्टवेयर पैकेज हैं - जिनमें से कई FreeBSD पोर्ट्स में हैं - जो केवल GCC के साथ बनते हैं।


1
संकलक को न केवल प्रदर्शन के करीब होना चाहिए, बल्कि भाषा एक्सटेंशन का भी समर्थन करना होगा। डेवलपर्स अक्सर किसी कारण के लिए उन का उपयोग करते हैं (या कोई नहीं ;-))
जोहान्स

8

यह आवश्यकता से बाहर है। हाल तक तक, बीएसडी-लाइसेंस प्राप्त सी कंपाइलर शायद कुछ ही थे या समरूपता के साथ नहीं आए थे gcc

से FreeBSD परियोजना लक्ष्य :

हमारे सोर्स ट्री में वह कोड जो GNU जनरल पब्लिक लाइसेंस (GPL) या लाइब्रेरी जनरल पब्लिक लाइसेंस (LGPL) के अंतर्गत आता है, थोड़े और स्ट्रिंग्स के साथ जुड़ा हुआ है, हालांकि कम से कम सामान्य विपरीत के बजाय लागू पहुंच के किनारे। अतिरिक्त जटिलताओं के कारण जो हम जीपीएल सॉफ्टवेयर के व्यावसायिक उपयोग में विकसित हो सकते हैं, हालांकि, अधिक आराम से बीएसडी कॉपीराइट के तहत जमा किए गए सॉफ़्टवेयर को प्राथमिकता दें जब ऐसा करना एक उचित विकल्प हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.