युनिक्ससाठी वापरल्या गेलेल्या नावीन्यपूर्ण तांत्रिक व व्यवस्थापकीय संकल्पनांनी जगभरात विखुरलेल्या संगणक तंत्रज्ञांमध्ये सहयोगाची व समन्वयाची मुहूर्तमेढ रोवली. म्हणूनच नकळतपणे का होईना ओपन सोर्स व्यवस्थेचा अविभाज्य घटक असलेल्या सहयोगाच्या संकल्पनेला युनिक्सपासून सुरुवात झाली असं म्हणणं वावगं ठरणार नाही.

या बातमीसह सर्व प्रीमियम कंटेंट वाचण्यासाठी साइन-इन करा
Skip
या बातमीसह सर्व प्रीमियम कंटेंट वाचण्यासाठी साइन-इन करा

ओपन सोर्स सॉफ्टवेअर चळवळीचा खंदा पुरस्कर्ता व ख्यातनाम अमेरिकन संगणक तंत्रज्ञ एरिक रेमंडने त्याच्या ‘द आर्ट ऑफ युनिक्स प्रोग्रामिंग’ या जगप्रसिद्ध पुस्तकात युनिक्सबद्दल असं म्हटलंय की – “From supercomputers to personal computers to handheld computers and embedded network hardware, Unix has found use on a wider variety of machines than any other operating system can claim.”

युनिक्स ऑपरेटिंग प्रणालीची निर्मिती ही केन थॉम्पसन व डेनिस रिची यांच्या सर्जनशील ऊर्जेने झाली असली तरीही ती त्यांच्या फावल्या वेळातली निर्मिती होती व तिचा आवाका मर्यादित होता. निर्मितीनंतरच्या पहिल्या चार-पाच वर्षांत युनिक्सचा प्रसार तुलनेने संथगतीत होत होता. तेव्हा युनिक्सचा वापर हा बेल लॅब्सच्या काही विभागांपुरताच सीमित होता. पुढील २५ – ३० वर्षांमध्ये युनिक्स ही जगातली एक महत्त्वपूर्ण आणि मुख्य प्रवाहातील ऑपरेटिंग प्रणाली बनेल असं भाकीत थॉम्पसन, रिचीसकट बेल लॅब्समधला युनिक्सच्या निर्मितीस हातभार लावलेला कोणीही संगणक तंत्रज्ञ करू धजावला नसता.

असं जरी असलं तरी युनिक्स फोफावली. विविध प्रकारच्या व एकमेकांशी कोणत्याही प्रकारची सुसंगती (कम्पॅटिबिलिटी) नसणाऱ्या संगणकीय हार्डवेअर संचांवर वापरली गेलेली एक अग्रगण्य ऑपरेटिंग प्रणाली म्हणून आज युनिक्सला ओळखले जाते.

युनिक्सच्या गतिमान विकास व प्रसारामागची कारणं समजून घेण्यासाठी तिच्या निर्मितीकारांची तात्त्विक बैठक समजणं महत्त्वाचं आहे. अनेक ओपन सोर्स सॉफ्टवेअर प्रकल्पांची सुरुवात ही काही ठरावीक समविचारी संगणक तंत्रज्ञांकडून हाताशी उपलब्ध असलेल्या मर्यादित संसाधनांपासून झाली आहे. युनिक्स ऑपरेटिंग प्रणालीच्या आज्ञावली लिहितानासुद्धा थॉम्पसनच्या हाताशी असलेली साधने अत्यंत मर्यादित होती. केवळ चार आठवडे, पीडीपी – ७ हा मध्यम क्षमतेचा लघुसंगणक व तांत्रिक मनुष्यबळाचा अभाव अशा परिस्थितीत थॉम्पसनला आपली ऑपरेटिंग प्रणाली घडवायची होती.

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

प्रथमत: त्याने मल्टिक्स प्रकल्प व्यवस्थापनाच्या वेळेच्या भव्यदिव्य मानसिकतेला सोडचिट्ठी दिली. ज्या प्रणालीची निर्मिती करायचीय ती टप्प्याटप्प्याने व सुटसुटीतपणे होईल अशा पद्धतीने तिचं आरेखन केलं; ज्यात प्रत्येक टप्पा हा लघु आकाराचा असेल. यालाच थॉम्पसनने “Doctrine of smallness and simplicity” असं म्हटलंय. डेनिस रिचीने या पद्धतीचं वर्णन करताना एके ठिकाणी असं म्हटलं होतं की “The focus (during the development of Unix) was to build small neat things instead of grandiose ones”, जे युनिक्स निर्मितीमागची वैचारिक बैठक स्पष्ट करते. यामुळे कोणाही संगणक तंत्रज्ञाला आपल्या मर्यादित वेळ व शक्तीचा वापर करून प्रकल्पात सहभागी होणं शक्य होणार होतं.

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

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

थॉम्पसन व रिचीने दुसरा महत्त्वाचा बदल युनिक्सच्या व्यवस्थापनात केला. त्यांनी युनिक्स आज्ञावली संचातल्या प्रत्येक आज्ञावलीच्या योग्य देखभालीसाठी जबाबदाऱ्या निश्चित केल्या व प्रत्येक जबाबदार आज्ञावलीकाराच्या (प्रोग्राम ओनर) नावाची त्या त्या आज्ञावलीच्या मॅन्युअलमध्ये नोंद केली.

यामुळे प्रणाली व्यवस्थापनामध्ये सुसूत्रता आली, कारण कोणासही ऊठसूट कोणत्याही आज्ञावलीमध्ये बदल करण्यास यामुळे प्रतिबंध तयार झाला. आज्ञावलीमध्ये अंतिम बदल वा सुधारणा करण्याची सर्व जबाबदारी ही केवळ नेमून दिलेल्या आज्ञावलीकाराचीच होती. त्याचप्रमाणे कोणत्याही नव्या संगणक तंत्रज्ञाला, ज्यास युनिक्समध्ये योगदान द्यावयाचे आहे, त्यास त्या त्या आज्ञावलीकाराकडून मदत वा स्पष्टीकरण मिळवण्यासाठी तसेच नव्या सूचना देण्यासाठी पुष्कळ मदत झाली.

एकंदरीतच युनिक्ससाठी वापरल्या गेलेल्या नावीन्यपूर्ण तांत्रिक व व्यवस्थापकीय संकल्पनांनी जगभरात विखुरलेल्या संगणक तंत्रज्ञांमध्ये सहयोगाची व समन्वयाची मुहूर्तमेढ रोवली. म्हणूनच नकळतपणे का होईना ओपन सोर्स व्यवस्थेचा अविभाज्य घटक असलेल्या सहयोगाच्या संकल्पनेला युनिक्सपासून सुरुवात झाली असं म्हणणं वावगं ठरणार नाही.

पहिल्या चार वर्षांत (म्हणजेच १९७३ सालापर्यंत) युनिक्सचा प्रसार बेल लॅब्सपुरताच सीमित होता. जानेवारी १९७४ मध्ये प्रथमच युनिक्सची प्रतिष्ठापना बेल लॅब्सच्या दगडी भिंतींच्या बाहेर झाली. ती विश्वविख्यात संस्था होती अमेरिकेतल्या बर्कले येथील कॅलिफोर्निया विद्यापीठ व यास कारणीभूत ठरला तेथील संगणकशास्त्राचा प्राध्यापक रॉबर्ट फॅब्री ! हा कालखंड युनिक्ससाठी ऐन बहराचा होता. युनिक्सची वाढ झपाटय़ाने होत होती व त्यात बेल लॅब्सबाहेरील व्यक्ती, संस्था व समुदायांचादेखील सिंहाचा वाटा होता, ज्याचा ऊहापोह आपण पुढील लेखात करू.

 

 

ओपन सोर्स सॉफ्टवेअर चळवळीचा खंदा पुरस्कर्ता व ख्यातनाम अमेरिकन संगणक तंत्रज्ञ एरिक रेमंडने त्याच्या ‘द आर्ट ऑफ युनिक्स प्रोग्रामिंग’ या जगप्रसिद्ध पुस्तकात युनिक्सबद्दल असं म्हटलंय की – “From supercomputers to personal computers to handheld computers and embedded network hardware, Unix has found use on a wider variety of machines than any other operating system can claim.”

युनिक्स ऑपरेटिंग प्रणालीची निर्मिती ही केन थॉम्पसन व डेनिस रिची यांच्या सर्जनशील ऊर्जेने झाली असली तरीही ती त्यांच्या फावल्या वेळातली निर्मिती होती व तिचा आवाका मर्यादित होता. निर्मितीनंतरच्या पहिल्या चार-पाच वर्षांत युनिक्सचा प्रसार तुलनेने संथगतीत होत होता. तेव्हा युनिक्सचा वापर हा बेल लॅब्सच्या काही विभागांपुरताच सीमित होता. पुढील २५ – ३० वर्षांमध्ये युनिक्स ही जगातली एक महत्त्वपूर्ण आणि मुख्य प्रवाहातील ऑपरेटिंग प्रणाली बनेल असं भाकीत थॉम्पसन, रिचीसकट बेल लॅब्समधला युनिक्सच्या निर्मितीस हातभार लावलेला कोणीही संगणक तंत्रज्ञ करू धजावला नसता.

असं जरी असलं तरी युनिक्स फोफावली. विविध प्रकारच्या व एकमेकांशी कोणत्याही प्रकारची सुसंगती (कम्पॅटिबिलिटी) नसणाऱ्या संगणकीय हार्डवेअर संचांवर वापरली गेलेली एक अग्रगण्य ऑपरेटिंग प्रणाली म्हणून आज युनिक्सला ओळखले जाते.

युनिक्सच्या गतिमान विकास व प्रसारामागची कारणं समजून घेण्यासाठी तिच्या निर्मितीकारांची तात्त्विक बैठक समजणं महत्त्वाचं आहे. अनेक ओपन सोर्स सॉफ्टवेअर प्रकल्पांची सुरुवात ही काही ठरावीक समविचारी संगणक तंत्रज्ञांकडून हाताशी उपलब्ध असलेल्या मर्यादित संसाधनांपासून झाली आहे. युनिक्स ऑपरेटिंग प्रणालीच्या आज्ञावली लिहितानासुद्धा थॉम्पसनच्या हाताशी असलेली साधने अत्यंत मर्यादित होती. केवळ चार आठवडे, पीडीपी – ७ हा मध्यम क्षमतेचा लघुसंगणक व तांत्रिक मनुष्यबळाचा अभाव अशा परिस्थितीत थॉम्पसनला आपली ऑपरेटिंग प्रणाली घडवायची होती.

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

प्रथमत: त्याने मल्टिक्स प्रकल्प व्यवस्थापनाच्या वेळेच्या भव्यदिव्य मानसिकतेला सोडचिट्ठी दिली. ज्या प्रणालीची निर्मिती करायचीय ती टप्प्याटप्प्याने व सुटसुटीतपणे होईल अशा पद्धतीने तिचं आरेखन केलं; ज्यात प्रत्येक टप्पा हा लघु आकाराचा असेल. यालाच थॉम्पसनने “Doctrine of smallness and simplicity” असं म्हटलंय. डेनिस रिचीने या पद्धतीचं वर्णन करताना एके ठिकाणी असं म्हटलं होतं की “The focus (during the development of Unix) was to build small neat things instead of grandiose ones”, जे युनिक्स निर्मितीमागची वैचारिक बैठक स्पष्ट करते. यामुळे कोणाही संगणक तंत्रज्ञाला आपल्या मर्यादित वेळ व शक्तीचा वापर करून प्रकल्पात सहभागी होणं शक्य होणार होतं.

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

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

थॉम्पसन व रिचीने दुसरा महत्त्वाचा बदल युनिक्सच्या व्यवस्थापनात केला. त्यांनी युनिक्स आज्ञावली संचातल्या प्रत्येक आज्ञावलीच्या योग्य देखभालीसाठी जबाबदाऱ्या निश्चित केल्या व प्रत्येक जबाबदार आज्ञावलीकाराच्या (प्रोग्राम ओनर) नावाची त्या त्या आज्ञावलीच्या मॅन्युअलमध्ये नोंद केली.

यामुळे प्रणाली व्यवस्थापनामध्ये सुसूत्रता आली, कारण कोणासही ऊठसूट कोणत्याही आज्ञावलीमध्ये बदल करण्यास यामुळे प्रतिबंध तयार झाला. आज्ञावलीमध्ये अंतिम बदल वा सुधारणा करण्याची सर्व जबाबदारी ही केवळ नेमून दिलेल्या आज्ञावलीकाराचीच होती. त्याचप्रमाणे कोणत्याही नव्या संगणक तंत्रज्ञाला, ज्यास युनिक्समध्ये योगदान द्यावयाचे आहे, त्यास त्या त्या आज्ञावलीकाराकडून मदत वा स्पष्टीकरण मिळवण्यासाठी तसेच नव्या सूचना देण्यासाठी पुष्कळ मदत झाली.

एकंदरीतच युनिक्ससाठी वापरल्या गेलेल्या नावीन्यपूर्ण तांत्रिक व व्यवस्थापकीय संकल्पनांनी जगभरात विखुरलेल्या संगणक तंत्रज्ञांमध्ये सहयोगाची व समन्वयाची मुहूर्तमेढ रोवली. म्हणूनच नकळतपणे का होईना ओपन सोर्स व्यवस्थेचा अविभाज्य घटक असलेल्या सहयोगाच्या संकल्पनेला युनिक्सपासून सुरुवात झाली असं म्हणणं वावगं ठरणार नाही.

पहिल्या चार वर्षांत (म्हणजेच १९७३ सालापर्यंत) युनिक्सचा प्रसार बेल लॅब्सपुरताच सीमित होता. जानेवारी १९७४ मध्ये प्रथमच युनिक्सची प्रतिष्ठापना बेल लॅब्सच्या दगडी भिंतींच्या बाहेर झाली. ती विश्वविख्यात संस्था होती अमेरिकेतल्या बर्कले येथील कॅलिफोर्निया विद्यापीठ व यास कारणीभूत ठरला तेथील संगणकशास्त्राचा प्राध्यापक रॉबर्ट फॅब्री ! हा कालखंड युनिक्ससाठी ऐन बहराचा होता. युनिक्सची वाढ झपाटय़ाने होत होती व त्यात बेल लॅब्सबाहेरील व्यक्ती, संस्था व समुदायांचादेखील सिंहाचा वाटा होता, ज्याचा ऊहापोह आपण पुढील लेखात करू.