25 August 2019

News Flash

ओपन सोर्स – गुंतागुंतीचे नियोजन

तांत्रिक आरेखनामुळे तंत्रज्ञांना ओपन सोर्स सॉफ्टवेअरमध्ये आपले ऐच्छिक योगदान देणे सोयीचे होते.

|| अमृतांशू नेरुरकर

तांत्रिक आरेखनामुळे तंत्रज्ञांना ओपन सोर्स सॉफ्टवेअरमध्ये आपले ऐच्छिक योगदान देणे सोयीचे होते. त्यामुळे प्रकल्पाची व्यवस्थापकीय क्लिष्टता एका बाजूने कमी होत असली तरीही इतर काही बाबी अनुत्तरितच राहतात..

सॉफ्टवेअर ही एक विलक्षण गुंतागुंतीची आणि क्लिष्ट अशी गोष्ट आहे. लिनक्सच्या नव्या आवृत्तीत त्याच्या कर्नलमध्ये (ऑपरेटिंग प्रणालीचा मध्यवर्ती भाग) सोर्स कोडच्या अडीच कोटींहून अधिक ओळी आहेत (ज्याला संगणकीय भाषेत ‘लाइन्स ऑफ कोड’ असे म्हणतात.) आणि साठ हजारांवर छोटय़ा-मोठय़ा प्रोग्राम्सच्या फाइल्स आहेत ज्यावरून सॉफ्टवेअर व्यवस्थापनाच्या क्लिष्टतेचा अंदाज येऊ  शकेल. ओपन सोर्स प्रकल्पांच्या काही विशेष गुणधर्मामुळे ही गुंतागुंत अजूनच वाढते.

एक तर ओपन सोर्स प्रकल्पात योगदान देणारे तंत्रज्ञ भौगोलिकदृष्टय़ा विखुरलेले असतात, त्यामुळे ते प्रत्यक्षात एकमेकांना भेटणे शक्य नसते. त्याचबरोबर त्यांच्या काम करण्याच्या वेळादेखील भिन्न असू शकतात. योगदान ऐच्छिक स्वरूपाचे असल्याने प्रत्येक जण त्याच्या पसंतीनुसार हवे तेव्हा आणि सॉफ्टवेअरच्या हव्या त्या भागावर काम करण्यास स्वतंत्र असतो. त्याचबरोबर प्रकल्पातून कधीही आपल्या मर्जीनुसार बाहेर पडण्याची, तसेच सोर्स कोड खुला असल्याने त्याचा वापर करून एक स्वतंत्र प्रकल्प सुरू करण्याचीदेखील मुभा समुदायातल्या प्रत्येक तंत्रज्ञाला असते. यामुळे केवळ प्रकल्पाचे नेतृत्व किंवा व्यवस्थापन समिती अशा गुंतागुंतीचे नियोजन करून प्रकल्प एकसंध ठेवण्यासाठी पुरी पडू शकत नाही.

सॉफ्टवेअरचे तांत्रिक आरेखन ओपन सोर्स प्रकल्पातल्या क्लिष्टतेचे व्यवस्थापन करण्यात अत्यंत महत्त्वाची भूमिका बजावते. ओपन सोर्स सॉफ्टवेअर निर्माण करताना ‘मॉडय़ुलरायझेशन’ किंवा विभाजनीकरणाच्या संकल्पनेचा पुष्कळ उपयोग केला जातो. मॉडय़ुलरायझेशन म्हणजे एका सॉफ्टवेअर आज्ञावलीचे छोटय़ा व स्वतंत्र भागांमध्ये विभाजन करणे. छोटय़ा आकारामुळे सॉफ्टवेअरच्या विविध भागांचे व्यवस्थापन करणे सोयीचे जाते तर स्वतंत्र व्याप्तीमुळे या भागांचे परस्परावलंबित्व कमी होते, ज्यामुळे तंत्रज्ञ सॉफ्टवेअरच्या विविध भागांवर समांतरपणे काम करू शकतात. संगणकीय भाषेत याला ‘लूज कपलिंग’ असेही म्हटले जाते.

लिनक्स कर्नलच्या आरेखनासाठी सुरुवातीला टॉरवल्ड्सने मोठय़ा आकाराच्या, अखंड व एकात्मिक स्वरूपाच्या मोनोलिथिक कर्नलचा वापर केला होता. लघू आकाराच्या मायक्रो कर्नलकडे संगणक तंत्रज्ञांचा वाढत कल असूनही टॉरवल्ड्सने लिनक्सच्या निर्मितीत मायक्रो कर्नलची विभाजणीकरणाची पद्धत स्वीकारली नाही. लिनक्सचा वापर हा मुख्यत्वेकरून शैक्षणिक व संशोधन कामापुरताच मर्यादित राहील अशी टॉरवल्ड्सची अटकळ होती. त्यामुळे व्यवस्थापनाच्या दृष्टीने मोनोलिथिक कर्नल हाताळणे सोयीचे जाईल, असे त्याला वाटत होते. लिनक्सच्या पहिल्या अधिकृत आवृत्तीत (लिनक्स १.०) मोनोलिथिक कर्नलचाच वापर झाला होता.

जरी सुरुवातीच्या काळात टॉरवल्ड्सने मोनोलिथिक कर्नल वापरण्याच्या आपल्या निर्णयाचे जाहीरपणे समर्थन केले होते तरी जसजसा लिनक्स प्रकल्पाचा आकार व व्याप्ती वाढत गेली व त्यात हजारो संगणक तंत्रज्ञ आपले योगदान द्यायला लागले तेव्हा आपला निर्णय तांत्रिकदृष्टय़ा चुकीचा आहे याची टॉरवल्ड्सला जाणीव व्हायला लागली. आपला निर्णय आपल्याच प्रकल्पाच्या वाढीच्या विरोधात जाईल याची जाण झाल्यावर मात्र टॉरवल्ड्सने आपला मोनोलिथिक कर्नलचा हेका सोडून कर्नलचे छोटय़ा व स्वतंत्र भागांमध्ये विभाजन करण्याचा आपला मनसुबा जाहीर केला. लिनक्सच्या दुसऱ्या अधिकृत आवृत्तीमध्ये (लिनक्स २.०) अखेरीस कर्नलच्या विभाजणीकरणाचे काम पूर्ण करण्यात आले. सॉफ्टवेअरच्या तांत्रिक आरेखनाची ओपन सोर्स प्रकल्पांच्या व्यवस्थापनातली कळीची भूमिका या उदाहरणातून स्पष्ट होईल.

तांत्रिक आरेखनामुळे जगभरातल्या तंत्रज्ञांना ओपन सोर्स सॉफ्टवेअरमध्ये आपले ऐच्छिक योगदान देणे सोयीचे होत असल्यामुळे प्रकल्पाची व्यवस्थापकीय क्लिष्टता एका बाजूने कमी होत असली तरीही इतर काही बाबी अनुत्तरितच राहतात. सोर्स कोड खुला असल्याने व सॉफ्टवेअरची लायसन्सिंग पद्धती सोर्स कोडच्या वितरणाचे पूर्ण समर्थन करत असल्यामुळे, कोणाही तंत्रज्ञाने प्रकल्पापासून वेगळे होऊन व खुल्या सोर्स कोडचा वापर करून एक नवा प्रकल्प (‘फोर्क’) सुरू  करण्याची, तसेच सॉफ्टवेअरची लायसन्सिंग पद्धतीच बदलायची शक्यता नाकारता येत नाही.

प्रोप्रायटरी सॉफ्टवेअर व्यवस्थेत अशी क्लिष्टता फारशी उद्भवत नाही. कारण सॉफ्टवेअरची लायसन्सिंग पद्धतीच अशा पद्धतीच्या वर्तणुकीला अटकाव करते. त्याचबरोबर प्रोप्रायटरी सॉफ्टवेअरची निर्मिती कंपनीच्या आत होत असल्याने कंपनीच्या धोरणानुसार अशा नियमबा वागणाऱ्या व्यक्तीवर त्वरित कारवाईदेखील करता येते. ओपन सोर्स व्यवस्थेत अशी कारवाई करणे अधिकृतपणे अशक्य असले तरीही समुदायानेच निर्मिलेले काही उपाय अप्रत्यक्षपणे अशा वर्तनावर अंकुश आणतात.

विविध ओपन सोर्स प्रकल्पांत दोन उपाय मुख्यत्वेकरून वापरले गेले आहेत. एक म्हणजे सार्वजनिक निर्भर्त्सना, ज्याला ओपन सोर्स परिभाषेमध्ये ‘फ्लेमिंग’ (Flaming) असे म्हटले जाते. यात समुदायातील तंत्रज्ञांकडून नियम तोडणाऱ्या व्यक्तीचा जाहीरपणे (इंटरनेट, ई-मेल लिस्ट किंवा ऑनलाइन चर्चामंचांवर) धिक्कार करण्यात येतो. व्यक्तीच्या स्वाभिमानाला धक्का पोहोचत असल्याने या उपायामुळे नियमबाह्य़ वर्तनावर काही प्रमाणात र्निबध आणता येतात.

जर फ्लेमिंग फारसे प्रभावी ठरले नाही तर काही ओपन सोर्स प्रकल्पांत याहून अधिक तीव्र व टोकाचा पर्याय समुदायाकडून वापरण्यात येतो, जो म्हणजे नियम तोडणाऱ्या व्यक्तीला, व्यक्तींच्या समूहाला किंवा अगदी एखाद्या कंपनीला प्रकल्पातून संपूर्णपणे बहिष्कृत करणे. ओपन सोर्स परिभाषेमध्ये याला ‘शनिंग’ (Shunning) असे म्हणतात.

हा भौतिक बहिष्कार नसून सामाजिक आहे कारण यात त्या व्यक्ती किंवा संस्थेला प्रकल्पात योगदान देणारा समुदाय आपल्यापासून पूर्णत: विलग करतो. त्याचबरोबर ती व्यक्ती वा संस्था समुदायाकडून कसल्याही सहकार्याची अपेक्षा ठेवू शकत नाही. आपल्या स्वार्थी, बेजबाबदार आणि नियमबाह्य वर्तनाची ही खूप मोठी किंमत चुकवावी लागत असल्यामुळे अशा वर्तणुकीला बऱ्याच प्रमाणात लगाम बसू शकतो.

एसएसएच प्रकल्प हे शनिंगचे एक ठळक उदाहरण आहे. एसएसएच (SSH) प्रणाली ही वापरकर्त्यांचा ब्राऊझर आणि सव्‍‌र्हर यात देवाणघेवाण होणाऱ्या माहितीची गोपनीयता टिकवण्यासाठी तिला सांकेतिक भाषेत बदलण्याचे (एन्क्रिप्शन) काम करते. टाटु यॉनन या तंत्रज्ञाने नव्वदच्या दशकाच्या सुरुवातीला सुरू केलेल्या या ओपन सोर्स प्रकल्पाला अल्पावधीतच प्रचंड लोकप्रियता मिळाली व तंत्रज्ञांचा एक विस्तृत समुदाय या प्रणालीवर काम करू लागला. १९९४ सालच्या अखेपर्यंत एसएसएच प्रणालीची ओपन सोर्स लायसन्सिंग पद्धती असलेली पहिली अधिकृत आवृत्ती प्रसिद्ध झाली.

असे सगळे आदर्शवत चालू असताना यॉननच्या एका कृतीमुळे प्रकल्पात अस्थिरतेचे वातावरण तयार झाले. यॉननने १९९५च्या मध्यावर, स्वत:च्या नेतृत्वपदाचा गैरफायदा घेत, एसएसएच प्रणालीची लायसन्सिंग पद्धती, प्रकल्पात योगदान देणाऱ्या समुदायाला अंधारात ठेवून बदलली. नव्या लायसन्सिंग अटींप्रमाणे यापुढे एसएसएच प्रणालीचे व्यावसायिक वितरण करण्यावर त्याने र्निबध आणले होते. यापुढे जाऊन त्याने एसएसएच कम्युनिकेशन नावाची कंपनी स्थापन केली व भविष्यात एसएसएच प्रणालीला केवळ ही कंपनीच व्यावसायिकरीत्या विकू शकेल अशी सोय केली व त्याचबरोबर ‘एसएसएच’ या तीन अक्षरांवर या कंपनीद्वारे ट्रेडमार्क हक्क आणण्याचा प्रयत्न केला. त्यामुळे एसएसएच हे नाव यापुढे केवळ एसएसएच कम्युनिकेशन ही कंपनीच वापरू शकली असती.

या प्रकल्पात काम करणाऱ्या समुदायाचा हा थेट विश्वासघात होता. समुदायाचा आक्षेप प्रणालीच्या व्यावसायिक विक्रीतून यॉननने पैसे कमावण्यावर नव्हता, तर असे पैसे कमावण्याचा अधिकार फक्त स्वत:च्या कंपनीपुरता मर्यादित ठेवण्यावर होता. सॉफ्टवेअर व्यावसायिक पद्धतीने वितरण करण्याच्या समुदायाच्या स्वातंत्र्यावर यॉननने र्निबध आणले होते. लगेचच एसएसएच ओपन सोर्स प्रकल्पात काम करणाऱ्या तंत्रज्ञांनी, एसएसएचच्या संपूर्णत: ओपन सोर्स असलेल्या एका आवृत्तीचा वापर करून एक नवा ‘ओपनएसएसएच’ (OpenSSH) नामक प्रकल्प सुरू केला. एका फटक्यात एसएसएच प्रकल्पात काम करणाऱ्या संपूर्ण समुदायाने एसएसएच कम्युनिकेशन कंपनीला बहिष्कृत केले होते. यामुळे यॉनन ओपन सोर्स समुदायाकडून मिळणारा सहयोग तर गमावून बसलाच पण पुढील अनेक वर्षे कायदेशीर मार्गाचा अवलंब करूनदेखील तो ओपनएसएसएच प्रकल्पाची वाढ थांबवू शकला नाही.

असो. ओपन सोर्स प्रकल्पातील व्यवस्थापकीय गुंतागुंतीचे नियोजन करण्यात सॉफ्टवेअरसाठी वापरल्या गेलेल्या लायसन्सिंग पद्धतीचाही मोठा हातभार असतो, ज्याचे विश्लेषण आपण पुढील लेखात करू.

amrutaunshu@gmail.com

लेखक माहिती व तंत्रज्ञान क्षेत्रातील तज्ज्ञ आहेत.

First Published on October 22, 2018 12:05 am

Web Title: what is open source software 5