आईबीएम आई

IBM i (i एकीकृत के लिए खड़ा है) [[आईबीएम पावर सिस्टम्स]] के लिए आईबीएम द्वारा विकसित एक ऑपरेटिंग सिस्टम है। यह मूल रूप से 1988 में OS/400 के रूप में जारी किया गया था, IBM AS/400 लाइन ऑफ सिस्टम के एकमात्र ऑपरेटिंग सिस्टम के रूप में। 2004 में इसका नाम बदलकर i5/OS कर दिया गया, 2008 में दूसरी बार IBM i का नाम बदलने से पहले। यह IBM System/38|System/38 Control Program Facility ऑपरेटिंग सिस्टम का विकास है, IBM System/36|System/36 सिस्टम सपोर्ट प्रोग्राम और IBM AIX अनुप्रयोगों के लिए अनुकूलता परतों के साथ। यह सिस्टम/38 प्लेटफॉर्म से कई विशिष्ट विशेषताओं को प्राप्त करता है, जिसमें सिस्टम/38#मशीन इंटरफेस, एकल-स्तरीय स्टोर के शीर्ष पर ऑब्जेक्ट-आधारित एड्रेसिंग का कार्यान्वयन, और ऑपरेटिंग में संबंध का डेटाबेस का तंग एकीकरण शामिल है। प्रणाली।

उत्पत्ति
OS/400 को AS/400 हार्डवेयर प्लेटफॉर्म के साथ दिसंबर 1985 में विकसित किया गया था। आईबीएम एएस/400#फोर्ट नॉक्स परियोजना की विफलता के बाद विकास शुरू हुआ, जिसने आईबीएम को प्रतिस्पर्धी मिडरेंज सिस्टम के बिना छोड़ दिया। फोर्ट नॉक्स परियोजना के दौरान, रोचेस्टर में इंजीनियरों द्वारा एक स्कंकवर्क्स परियोजना शुरू की गई थी, जो कोड विकसित करने में सफल रहे, जिसने सिस्टम/36 अनुप्रयोगों को सिस्टम/38 के शीर्ष पर चलने की अनुमति दी, और जब फोर्ट नॉक्स को रद्द कर दिया गया, तो यह परियोजना सिस्टम/36 और सिस्टम/38 दोनों को एक नए हार्डवेयर और सॉफ्टवेयर प्लेटफॉर्म के साथ बदलने के लिए एक आधिकारिक परियोजना के रूप में विकसित हुई। इस परियोजना को सिल्वरलेक (सिल्वर लेक (रोचेस्टर, मिनेसोटा) के नाम पर रखा गया। रोचेस्टर, मिनेसोटा में सिल्वर लेक) के नाम से जाना जाने लगा। सिल्वरलेक के लिए ऑपरेटिंग सिस्टम को एक्सपीएफ (विस्तारित नियंत्रण कार्यक्रम सुविधा) नाम दिया गया था, और मूल रूप से फोर्ट नॉक्स हार्डवेयर में सीपीएफ के बंदरगाह के रूप में शुरू हुआ था। सिस्टम/36 अनुप्रयोगों के लिए समर्थन जोड़ने के अलावा, सिस्टम/36 से कुछ उपयोगकर्ता इंटरफ़ेस और उपयोग में आसान सुविधाओं को नए ऑपरेटिंग सिस्टम पर ले जाया गया। सिल्वरलेक जून 1988 में फील्ड टेस्ट के लिए उपलब्ध था, और उस वर्ष अगस्त में आधिकारिक तौर पर घोषित किया गया था। उस समय तक, इसका नाम बदलकर एप्लिकेशन सिस्टम/400 कर दिया गया था, और ऑपरेटिंग सिस्टम को ऑपरेटिंग सिस्टम/400 नाम दिया गया था।

पावरपीसी में जाना
PowerPC के पोर्ट को IBM i#TIMI के नीचे के अधिकांश कोड को फिर से लिखने की आवश्यकता है। ओएस/400 के शुरुआती संस्करणों ने सिस्टम/38#माइक्रोकोड परतों को सिस्टम/38 से विरासत में मिला, हालांकि उनका नाम क्रमशः क्षैतिज लाइसेंस आंतरिक कोड (एचएलआईसी) और वर्टिकल लाइसेंस आंतरिक कोड (वीएलआईसी) रखा गया था। नए हार्डवेयर के पोर्ट ने IMPI इंस्ट्रक्शन सेट का नेतृत्व किया और इसे लागू करने वाले क्षैतिज माइक्रोकोड को PowerPC AS इंस्ट्रक्शन सेट और PowerAS प्रोसेसर में इसके कार्यान्वयन द्वारा प्रतिस्थापित किया जा रहा है। इसके लिए आईएमपीआई के बजाय पावरपीसी को लक्षित करने के लिए वीएलआईसी को फिर से लिखने की आवश्यकता थी, और एचएलआईसी में पहले से लागू ऑपरेटिंग सिस्टम की कार्यक्षमता को कहीं और फिर से लागू करने के लिए। इसके कारण एचएलआईसी और वीएलआईसी को सिस्टम लाइसेंस्ड इंटरनल कोड (एसएलआईसी) नाम की एक परत से बदल दिया गया। SLIC को ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | ऑब्जेक्ट-ओरिएंटेड शैली में C++ कोड की 2 मिलियन से अधिक पंक्तियों के साथ कार्यान्वित किया गया था, जिसमें कुछ HLIC कोड और अधिकांश VLIC कोड को प्रतिस्थापित किया गया था। SLIC को लागू करने के लिए आवश्यक कार्य की मात्रा के कारण, IBM रोचेस्टर ने परियोजना के लिए कई सौ C++ प्रोग्रामरों को काम पर रखा, जिन्होंने CISC AS/400 सिस्टम के लिए VLIC के नए संशोधनों के समानांतर SLIC पर काम किया। PowerPC-आधारित हार्डवेयर का समर्थन करने के लिए OS/400 का पहला रिलीज़ V3R6 था।

रीब्रांडिंग
1990 और 2000 के दशक में AS/400 उत्पाद लाइन को कई बार रीब्रांड किया गया था। 2004 में eServer i5 की रीब्रांडिंग के हिस्से के रूप में, OS/400 का नाम बदलकर i5/OS कर दिया गया; 5 POWER5 प्रोसेसर के उपयोग को दर्शाता है। i5/OS की पहली रिलीज़, V5R3, को IBM द्वारा उसी ऑपरेटिंग सिस्टम के लिए एक अलग नाम के रूप में वर्णित किया गया था। 2006 में, IBM ने AS/400 लाइन को पिछली बार सिस्टम i में रीब्रांड किया। अप्रैल 2008 में, आईबीएम ने आईबीएम पावर सिस्टम्स बनाने के लिए आईबीएम प्रणाली पीी प्लेटफॉर्म के साथ सिस्टम i को समेकित किया। उसी समय, i5/OS का नाम बदलकर IBM i कर दिया गया, ताकि POWER5 प्रोसेसर के साथ जुड़ाव को हटाया जा सके। उस समय ऑपरेटिंग सिस्टम के दो नवीनतम संस्करण, जो i5/OS V5R4 और V6R1 के रूप में जारी किए गए थे, का नाम बदलकर IBM i 5.4 और 6.1 कर दिया गया। IBM i की रीब्रांडिंग के साथ, IBM ने ऑपरेटिंग सिस्टम के लिए वर्जनिंग नामकरण को बदल दिया। पूर्व रिलीज़ में संस्करण, रिलीज़, संशोधन योजना का उपयोग किया गया था, उदा। वी2आर1एम1। इसे एक संस्करण के साथ बदल दिया गया था। रिलीज योजना, उदा। 6.1। IBM i 7.1 के साथ शुरुआत करते हुए, IBM ने तकनीकी रिफ्रेश के साथ संशोधन रिलीज़ को बदल दिया। ऑपरेटिंग सिस्टम के विशिष्ट रिलीज़ के लिए तकनीकी रिफ्रेश वैकल्पिक प्रोग्राम अस्थायी फिक्स के रूप में वितरित किए जाते हैं जो ऑपरेटिंग सिस्टम में नई कार्यक्षमता या हार्डवेयर समर्थन जोड़ते हैं।

आर्किटेक्चर
जब IBM i को पहली बार OS/400 के रूप में जारी किया गया था, तो इसे दो परतों में विभाजित किया गया था, हार्डवेयर-निर्भर सिस्टम लाइसेंसयुक्त आंतरिक कोड (SLIC) और हार्डवेयर-स्वतंत्र विस्तारित नियंत्रण कार्यक्रम सुविधा (XPF)।   इन्हें एक हार्डवेयर अमूर्त परत द्वारा विभाजित किया जाता है जिसे टेक्नोलॉजी इंडिपेंडेंट मशीन इंटरफेस (TIMI) कहा जाता है। ऑपरेटिंग सिस्टम के बाद के संस्करणों ने अतिरिक्त परतें प्राप्त कीं, जिसमें पोर्टेबल एप्लिकेशन सॉल्यूशंस एनवायरनमेंट (मूल रूप से प्राइवेट एड्रेस स्पेस एनवायरनमेंट के रूप में जाना जाता है) नामक AIX संगतता परत शामिल है। और उन्नत 36 मशीन वातावरण जो इम्यूलेशन में सिस्टम/36 एसएसपी अनुप्रयोगों को चलाता है।

आईबीएम अक्सर प्रलेखन और विपणन सामग्री में TIMI, SLIC और XPF के लिए अलग-अलग नामों का उपयोग करता है, उदाहरण के लिए, IBM i 7.4 प्रलेखन उन्हें क्रमशः IBM i मशीन इंटरफ़ेस, IBM i लाइसेंस प्राप्त आंतरिक कोड और IBM i ऑपरेटिंग सिस्टम के रूप में संदर्भित करता है।

टिमी
TIMI उपयोगकर्ताओं और अनुप्रयोगों को अंतर्निहित हार्डवेयर से अलग करता है। यह अलगाव अन्य ऑपरेटिंग सिस्टम के हार्डवेयर सार से अधिक गहन है, और इसमें प्रोसेसर के निर्देश सेट वास्तुकला, पता स्थान के आकार और I/O की बारीकियों और दृढ़ता को शामिल करना शामिल है। यह दो परस्पर संबंधित तंत्रों के माध्यम से पूरा किया जाता है:


 * आईबीएम के लिए कंपाइलर सीधे देशी मशीन कोड उत्पन्न नहीं करते हैं, इसके बजाय वे TIMI द्वारा परिभाषित एक उच्च स्तरीय मध्यवर्ती प्रतिनिधित्व उत्पन्न करते हैं। जब कोई प्रोग्राम चलाया जाता है, तो ऑपरेटिंग सिस्टम प्रोसेसर के लिए देशी मशीन कोड में TIMI निर्देशों का समय से पहले संकलन | समय से पहले अनुवाद करता है, और प्रोग्राम के भविष्य के निष्पादन के लिए उत्पन्न मशीन कोड को संग्रहीत करता है। यदि अनुवाद प्रक्रिया बदलती है, या एक अलग सीपीयू निर्देश सेट अपनाया जाता है, तो ऑपरेटिंग सिस्टम स्रोत कोड से पुन: संकलित करने की आवश्यकता के बिना TIMI निर्देशों से मशीन कोड को पारदर्शी रूप से पुन: उत्पन्न कर सकता है।
 * स्मृति पतों पर काम करने के बजाय, TIMI निर्देश वस्तुओं पर काम करते हैं। IBM i में सभी डेटा, जैसे डेटा फ़ाइलें, स्रोत कोड, प्रोग्राम और आवंटित मेमोरी के क्षेत्र, ऑपरेटिंग सिस्टम द्वारा प्रबंधित वस्तुओं के अंदर एनकैप्सुलेट किए जाते हैं (c.f. सब कुछ यूनिक्स में एक फ़ाइल मॉडल है)। IBM i ऑब्जेक्ट्स का एक निश्चित प्रकार होता है, जो उन पर किए जा सकने वाले लागू संचालन के सेट को परिभाषित करता है (उदाहरण के लिए, एक प्रोग्राम ऑब्जेक्ट को निष्पादित किया जा सकता है, लेकिन संपादित नहीं किया जा सकता है)। ऑब्जेक्ट मॉडल छुपाता है कि डेटा प्राथमिक संग्रहण, या द्वितीयक संग्रहण में संग्रहीत है या नहीं। इसके बजाय, ऑपरेटिंग सिस्टम स्वचालित रूप से पुनर्प्राप्ति की प्रक्रिया को संभालता है और फिर परिवर्तनों को स्थायी भंडारण में संग्रहीत करता है।

TIMI द्वारा प्रदान किए गए हार्डवेयर अलगाव ने IBM को 1995 में AS/400 के 48-बिट IMPI आर्किटेक्चर को 64-बिट RS64 आर्किटेक्चर के साथ बदलने की अनुमति दी। IMPI निर्देश सेट का उपयोग करने वाले सिस्टम पर संकलित एप्लिकेशन बिना किसी नए RS64 सिस्टम के शीर्ष पर चल सकते हैं। कोड परिवर्तन, पुनर्संकलन या अनुकरण, जबकि उन अनुप्रयोगों को 64-बिट एड्रेसिंग का लाभ उठाने की अनुमति भी देता है।

TIMI निर्देशों के दो अलग-अलग प्रारूप हैं, जिन्हें मूल मशीन इंटरफ़ेस (OMI) और न्यू मशीन इंटरफ़ेस (NMI) स्वरूपों के रूप में जाना जाता है। ओएमआई निर्देश अनिवार्य रूप से सिस्टम/38#मशीन इंटरफेस|सिस्टम/38 मशीन इंटरफेस निर्देशों के समान हैं, जबकि एनएमआई निर्देश निचले स्तर के हैं, जो आईबीएम के कंपाइलरों द्वारा उपयोग किए जाने वाले डब्ल्यू-कोड इंटरमीडिएट प्रतिनिधित्व प्रारूप के समान हैं। IBM आंशिक रूप से OMI निर्देशों का दस्तावेजीकरण करता है, जबकि NMI निर्देश आधिकारिक रूप से प्रलेखित नहीं हैं। ओएमआई निर्देश मूल एएस/400 कंपाइलर्स द्वारा उपयोग किए जाते हैं, जबकि एनएमआई निर्देश एकीकृत भाषा पर्यावरण कंपाइलर्स द्वारा उपयोग किए जाते हैं। पावरपीसी पोर्ट के दौरान, ओएमआई प्रारूप के लिए मूल समर्थन हटा दिया गया था, और एक अनुवादक के साथ बदल दिया गया था जो ओएमआई निर्देशों को एनएमआई निर्देशों में परिवर्तित कर देता था।

देशी मशीन कोड निर्देशों के साथ-साथ TIMI निर्देशों के भंडारण को पर्यवेक्षण के रूप में जाना जाता है। 2008 में, i5/OS V6R1 (जिसे बाद में IBM i 6.1 के रूप में जाना जाता है) की रिलीज़ ने TIMI परत में कई बदलाव पेश किए, जिससे तृतीय-पक्ष सॉफ़्टवेयर के लिए समस्याएँ पैदा हुईं, जिससे ग्राहकों को भेजे गए एप्लिकेशन ऑब्जेक्ट से अवलोकनीयता को हटा दिया गया।

एसएलआईसी
SLIC में वह कोड होता है जो IBM पावर आर्किटेक्चर के शीर्ष पर TIMI को लागू करता है। आमतौर पर एक ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) से जुड़ी अधिकांश कार्यक्षमताओं को समाहित करने के अलावा, यह TIMI निर्देशों को मशीन कोड में अनुवाद करने के लिए ज़िम्मेदार है, और यह कुछ उच्च स्तरीय कार्यक्षमताओं को भी लागू करता है जो TIMI के माध्यम से उजागर होती हैं, जैसे IBM i's एकीकृत संबंधपरक डेटाबेस। SLIC IBM i के ऑब्जेक्ट-आधारित स्टोरेज मॉडल को सिंगल-लेवल स्टोर एड्रेसिंग स्कीम के शीर्ष पर लागू करता है, जो प्राइमरी और सेकेंडरी स्टोरेज के बीच अंतर नहीं करता है, और इसके बजाय सिंगल आभासी पता स्थान में सभी प्रकार के स्टोरेज को मैनेज करता है। SLIC को मुख्य रूप से C++ में लागू किया गया है, और IBM i# को V3R6 से पहले OS/400 के संस्करणों में उपयोग किए जाने वाले PowerPC लेयर्स में ले जाया गया है।

एक्सपीएफ
XPF में वह कोड होता है जो ऑपरेटिंग सिस्टम के हार्डवेयर-स्वतंत्र घटकों को लागू करता है, जिन्हें TIMI निर्देशों में संकलित किया जाता है। XPF के घटकों में यूजर इंटरफेस, नियंत्रण भाषा, डेटा मैनेजमेंट और क्वेरी यूटिलिटीज, डेवलपमेंट टूल्स और सिस्टम मैनेजमेंट यूटिलिटीज शामिल हैं। XPF में सिस्टम/36 एनवायरनमेंट और सिस्टम/38 एनवायरनमेंट भी शामिल है, जो SSP और CPF सिस्टम से माइग्रेट किए गए एप्लिकेशन और डेटा के लिए बैकवर्ड कम्पैटिबिलिटी APIs और यूटिलिटीज प्रदान करते हैं। XPF इस परत के लिए IBM का आंतरिक नाम है, और जैसा कि नाम से पता चलता है, सिस्टम/38 नियंत्रण कार्यक्रम सुविधा के विकास के रूप में शुरू हुआ। एक्सपीएफ ज्यादातर पीएल/एमआई में लागू होता है, हालांकि अन्य भाषाओं का भी उपयोग किया जाता है।

पास
PASE (पोर्टेबल एप्लिकेशन सॉल्यूशंस एनवायरनमेंट) उपयोगकर्ता मोड AIX निष्पादन योग्य के लिए बाइनरी संगतता प्रदान करता है जो सीधे AIX कर्नेल के साथ इंटरैक्ट नहीं करता है, और 32-बिट और 64-बिट AIX एप्लिकेशन बाइनरी इंटरफ़ेस का समर्थन करता है। स्मॉलटाक के बंदरगाह का समर्थन करने के लिए OS/400 के V4R3 रिलीज में PASE को पहले एक सीमित और गैर-दस्तावेजी रूप में शामिल किया गया था। V4R5 रिलीज के समय पहली बार ग्राहकों के लिए इसकी घोषणा की गई थी, उस समय तक इसने महत्वपूर्ण अतिरिक्त कार्यक्षमता प्राप्त कर ली थी।

पीएएसई में एसएलआईसी द्वारा लागू किए गए सिस्टम कॉल इंटरफेस के शीर्ष पर चल रहे एआईएक्स यूजरस्पेस शामिल हैं। सिस्टम कॉल इंटरफेस PASE और देशी IBM i अनुप्रयोगों के बीच अंतर की अनुमति देता है, उदाहरण के लिए, PASE अनुप्रयोग एकीकृत डेटाबेस तक पहुँच सकते हैं, या मूल IBM i अनुप्रयोगों को कॉल कर सकते हैं, और इसके विपरीत। PASE के निर्माण के दौरान, टेरास्पेस नाम की एक नई प्रकार की सिंगल लेवल स्टोरेज ऑब्जेक्ट को ऑपरेटिंग सिस्टम में जोड़ा गया था, जो प्रत्येक PASE प्रक्रिया को एक निजी 1TiB स्पेस रखने की अनुमति देता है जिसे 64-बिट पॉइंटर्स के साथ संबोधित किया जाता है। यह आवश्यक था क्योंकि सभी IBM i जॉब्स (अर्थात् प्रक्रियाएँ) आमतौर पर एक ही पता स्थान साझा करते हैं। PASE एप्लिकेशन हार्डवेयर-स्वतंत्र TIMI निर्देशों का उपयोग नहीं करते हैं, और इसके बजाय उन्हें सीधे पावर मशीन कोड में संकलित किया जाता है।

PASE Qshell वातावरण से अलग है, जो IBM i के मूल POSIX- संगत API के शीर्ष पर निर्मित एक यूनिक्स शेल और संबद्ध उपयोगिताओं का कार्यान्वयन है।

उन्नत 36 मशीन


1994 में पेश किया गया, उन्नत / 36 प्लेटफॉर्म अनमॉडिफाइड सिस्टम / 36 एप्लिकेशन और ओएस / 400 एसएलआईसी के शीर्ष पर अनुकरण में एसएसपी ऑपरेटिंग सिस्टम हार्डवेयर का उपयोग कर रहा था जो ज्यादातर समकालीन एएस / 400 सिस्टम के समान था। इस कार्यक्षमता को V3R6 से V4R4 के माध्यम से OS/400 में ही शामिल किया गया था, जिससे ऑपरेटिंग सिस्टम की तथाकथित उन्नत 36 मशीन सुविधा का उपयोग करके चार सिस्टम/36 वर्चुअल मशीन (आईबीएम की अवधि का उपयोग करने के लिए) तक चलाना संभव हो गया। V4R5 रिलीज़ में समर्थन बंद कर दिया गया था, आईबीएम द्वारा उन्नत/36 उत्पाद लाइन को समग्र रूप से बंद करने के साथ। उन्नत 36 मशीन की सुविधा प्रारंभिक OS/400 रिलीज में पेश किए गए सिस्टम/36 पर्यावरण से अलग है और अभी भी वर्तमान IBM i संस्करणों में समर्थित है।

एडवांस्ड/36 से पहले, सिस्टम/36 लाइन प्रत्येक सिस्टम में दो अलग-अलग प्रोसेसर का इस्तेमाल करती थी - मेन स्टोरेज प्रोसेसर (MSP) जो अधिकांश SSP ऑपरेटिंग सिस्टम के साथ-साथ यूजर कोड और कंट्रोल स्टोरेज प्रोसेसर (CSP) चलाता था। तथाकथित माइक्रोकोड चलाया जिसने कोर ऑपरेटिंग सिस्टम की कार्यक्षमता के साथ-साथ I/O को लागू किया। पर्यवेक्षक कॉल (एसवीसी) निर्देश के उपयोग के माध्यम से एमएसपी से सीएसपी माइक्रोकोड लागू किया गया था। उन्नत/36 पर, SLIC के अंदर CSP माइक्रोकोड को फिर से लागू किया गया था। एक MSP एमुलेटर भी SLIC में बनाया गया था, जिसे कभी-कभी टेक्नोलॉजी इंडिपेंडेंट एमुलेशन इंटरफ़ेस कहा जाता है। यहां तक ​​कि अनुकरण के ऊपरी हिस्से के साथ, उन्नत/36 सिस्टम मूल सिस्टम/36 सिस्टम की तुलना में काफी तेज थे जिन्हें उन्होंने अपने पावरपीसी एएस प्रोसेसर के प्रदर्शन के कारण बदल दिया था।

डेटाबेस प्रबंधन
IBM i वर्तमान में IBM Db2 के रूप में जाना जाने वाला एक एकीकृत रिलेशनल डेटाबेस पेश करता है। डेटाबेस रिलेशनल मॉडल और SQL के लिए समर्थन प्राप्त करते हुए नॉन-रिलेशनल सिस्टम/38 डेटाबेस से विकसित हुआ। डेटाबेस का मूल रूप से कोई नाम नहीं था, इसके बजाय इसे केवल डेटा बेस सपोर्ट के रूप में वर्णित किया गया था। 1994 में आईबीएम के अन्य वाणिज्यिक डेटाबेसों की तुलना करने योग्य कार्यक्षमता को इंगित करने के लिए इसे डीबी2/400 नाम दिया गया था। Db2 ब्रांडिंग के बावजूद, IBM i के लिए Db2 अन्य प्लेटफार्मों पर Db2 के लिए एक पूरी तरह से अलग कोडबेस है, और एक वैकल्पिक उत्पाद होने के विरोध में IBM i की SLIC परत में कसकर एकीकृत है। IBM i एकीकृत डेटाबेस तक पहुँचने के लिए दो तंत्र प्रदान करता है - तथाकथित देशी इंटरफ़ेस, जो सिस्टम / 38 और SQL के डेटाबेस एक्सेस मॉडल पर आधारित है। मूल इंटरफ़ेस में डेटा विवरण विनिर्देश (DDS) भाषा होती है, जिसका उपयोग स्कीमा को परिभाषित करने के लिए किया जाता है और  आदेश या   क्वेरी एपीआई। ऑब्जेक्ट-रिलेशनल डेटाबेस | ऑब्जेक्ट-रिलेशनल डेटाबेस मैनेजमेंट जैसी सुविधाओं के लिए कुछ Db2 के लिए SQL की आवश्यकता होती है और इसे मूल इंटरफ़ेस के माध्यम से एक्सेस नहीं किया जा सकता है। IBM i के पास दो अलग-अलग क्वेरी अनुकूलन हैं जिन्हें क्लासिक क्वेरी इंजन (CQE) और SQL क्वेरी इंजन (SQE) के रूप में जाना जाता है। इन्हें क्वेरी डिस्पैचर के साथ एसएलआईसी के अंदर कार्यान्वित किया जाता है जो क्वेरी के प्रकार के आधार पर उपयुक्त अनुकूलक का चयन करता है। वितरित डेटा प्रबंधन वास्तुकला (DDM) और DRDA द्वारा क्रमशः नेटिव इंटरफ़ेस और SQL के माध्यम से रिमोट एक्सेस प्रदान किया जाता है। MySQL और MariaDB नाम के लिए एक स्टोरेज इंजन  उन डेटाबेस के लिए डिज़ाइन किए गए एप्लिकेशन को बैकिंग स्टोर के रूप में Db2 for i का उपयोग करने की अनुमति देता है।  अन्य ओपन सोर्स डेटाबेस IBM i में पोस्टग्रेएसक्यूएल, मोंगोडीबी और रेडिस सहित पोर्ट किए गए हैं। ये डेटाबेस PASE वातावरण पर चलते हैं, और ऑपरेटिंग सिस्टम की एकीकृत डेटाबेस सुविधाओं से स्वतंत्र हैं।

नेटवर्किंग
IBM i मालिकाना IBM सिस्टम नेटवर्क आर्किटेक्चर के अलावा इंटरनेट प्रोटोकॉल सूट|TCP/IP नेटवर्किंग का समर्थन करता है। IBM i सिस्टम को ऐतिहासिक रूप से एक्सेस किया गया और IBM 5250 टर्मिनलों के माध्यम से प्रबंधित किया गया, जो जुड़वां अक्षीय केबलिंग केबलिंग के साथ सिस्टम से जुड़े थे। समर्पित टर्मिनल हार्डवेयर की गिरावट के साथ, आधुनिक आईबीएम आई सिस्टम को आमतौर पर 5250 टर्मिनल एमुलेटर के माध्यम से एक्सेस किया जाता है। IBM, IBM i के लिए दो टर्मिनल इम्यूलेटर उत्पाद प्रदान करता है:
 * आईबीएम आई एक्सेस क्लाइंट सॉल्यूशंस एक जावा (प्रोग्रामिंग भाषा) आधारित क्लाइंट है जो 5250 एमुलेशन प्रदान करने के लिए लिनक्स, मैकओएस और माइक्रोसॉफ़्ट विंडोज़ पर चलता है।
 * IBM i Access for Web/Mobile वेब-आधारित 5250 अनुकरण प्रदान करता है।

इसके अलावा, IBM एक वेब-आधारित प्रबंधन कंसोल और प्रदर्शन विश्लेषण उत्पाद प्रदान करता है जिसका नाम IBM नेविगेटर i.

ओपन-सोर्स
IBM i में पोर्ट किए गए कुछ ओपन सोर्स एप्लिकेशन में शामिल हैं:


 * अपाचे HTTP सर्वर
 * जावा (प्रोग्रामिंग भाषा)
 * नोड.जेएस
 * ओपनएसएसएल
 * गिट
 * जीएनयू संकलक संग्रह
 * नगनेक्स
 * पीएचपी
 * पायथन (प्रोग्रामिंग भाषा)
 * रूबी (प्रोग्रामिंग भाषा)
 * लुआ (प्रोग्रामिंग भाषा)
 * आर (प्रोग्रामिंग भाषा)
 * मारियाडीबी
 * माई एसक्यूएल
 * पर्ल
 * रेडिस
 * मोंगोडीबी
 * पोस्टग्रेएसक्यूएल
 * विम (पाठ संपादक)

आईबीएम i के लिए ओपन सोर्स सॉफ्टवेयर आमतौर पर आरपीएम पैकेज मैनेजर पैकेज फॉर्मेट का उपयोग करके पैक किया जाता है, और यम (सॉफ्टवेयर) के साथ स्थापित किया जाता है। YUM और RPM ने 5733-OPS उत्पाद को प्रतिस्थापित किया, जिसका उपयोग पहले IBM i पर ओपन सोर्स सॉफ़्टवेयर स्थापित करने के लिए किया गया था। पोर्टिंग को आसान बनाने के लिए IBM i के लिए ओपन सोर्स सॉफ़्टवेयर के पोर्ट आमतौर पर देशी IBM i API के बजाय PASE को लक्षित करते हैं।

प्रोग्रामिंग
आईबीएम के लिए आईबीएम से उपलब्ध प्रोग्रामिंग भाषाओं में आईबीएम आरपीजी, कंट्रोल लैंग्वेज, सी (प्रोग्रामिंग भाषा), सी ++, जावा (प्रोग्रामिंग लैंग्वेज), ईजीएल (प्रोग्रामिंग भाषा), कोबोल और रेक्स शामिल हैं। कंपाइलर पहले पास्कल (प्रोग्रामिंग भाषा), बुनियादी, पीएल/आई और स्मॉलटाक के लिए उपलब्ध थे, लेकिन तब से बंद कर दिए गए हैं। इंटीग्रेटेड लैंग्वेज एनवायरनमेंट (ILE) ILE संगत भाषाओं (C, C++, COBOL, RPG, और CL) के कार्यक्रमों को समान निष्पादन योग्य और कॉल प्रक्रियाओं में से किसी भी अन्य ILE भाषाओं में लिखे जाने की अनुमति देता है।

जब PASE पेश किया गया था, AIX सिस्टम पर PASE के लिए कोड संकलित करना आवश्यक था। यह आवश्यकता OS/400 V5R2 में हटा दी गई थी जब PASE के अंदर ही IBM XL C/C++ कंपाइलर का उपयोग करके कोड को संकलित करना संभव हो गया था। तब से, अन्य कंपाइलरों को PASE में पोर्ट कर दिया गया है, जिसमें GNU कंपाइलर कलेक्शन भी शामिल है। IBM i के लिए कुछ विकास उपकरण ऑपरेटिंग सिस्टम के ऊपर ही चलते हैं, जैसे कि सोर्स एडिट यूटिलिटी (SEU) पाठ संपादक और प्रोग्रामिंग डेवलपमेंट मैनेजर। आईबीएम आईबीएम के लिए एक ग्रहण (सॉफ्टवेयर) आधारित एकीकृत विकास पर्यावरण (आईडीई) भी प्रदान करता है जिसका नाम आईबीएम तर्कसंगत डेवलपर फॉर आई है जो आईबीएम के बजाय डेवलपर वर्कस्टेशन पर चलता है। एक्लिप्स-आधारित IDE से पहले, IBM ने वर्कफ़्रेम/2 पर आधारित एक IDE प्रदान किया जो OS/2 पर चलता था जिसका नाम CODE/400 था और एक IDE VisualAge पर आधारित था जो Microsoft Windows सिस्टम पर चलता था। IBM i EBCDIC को डिफ़ॉल्ट अक्षरों को सांकेतिक अक्षरों में बदलना के रूप में उपयोग करता है, लेकिन ASCII, UCS-2 और UTF-16 के लिए भी समर्थन प्रदान करता है।

भंडारण
IBM i में, स्टोरेज-डिवाइस विफलताओं के प्रभाव को सीमित करने और पुनर्प्राप्ति समय को कम करने के लिए डेटा को व्यवस्थित करने के लिए डिस्क ड्राइव को सहायक स्टोरेज पूल (ASP) में समूहीकृत किया जा सकता है। यदि एक डिस्क विफलता होती है, तो विफल इकाई वाले पूल में केवल डेटा को पुनर्प्राप्त करने की आवश्यकता होती है। एएसपी का उपयोग समान प्रदर्शन विशेषताओं वाली वस्तुओं को अलग करके प्रदर्शन में सुधार करने के लिए भी किया जा सकता है, उदाहरण के लिए जर्नल रिसीवर्स, अपने स्वयं के पूल में।

डिफ़ॉल्ट रूप से, सभी डिस्क ड्राइव पूल 1 को सौंपे जाते हैं। आईबीएम आई पूल की अवधारणा लॉजिकल वॉल्यूम मैनेजर (लिनक्स) की यूनिक्स/लिनक्स अवधारणा के समान है; हालाँकि, IBM i के साथ यह विशिष्ट है कि सभी डिस्क ड्राइव को एक ही ASP को असाइन किया जाए।

सुरक्षा
IBM i में सुरक्षा को अधिकारियों के संदर्भ में परिभाषित किया गया है, जो किसी विशिष्ट वस्तु पर विशिष्ट कार्रवाई करने की अनुमति का प्रतिनिधित्व करता है। प्राधिकरण व्यक्तिगत उपयोगकर्ताओं (उपयोगकर्ता प्रोफ़ाइल के रूप में जाना जाता है), समूह (समूह प्रोफ़ाइल के रूप में जाना जाता है) या सभी उपयोगकर्ताओं (सार्वजनिक प्राधिकरण) को दिए जा सकते हैं। संबंधित वस्तुओं को एक प्राधिकरण सूची में एक साथ समूहीकृत किया जा सकता है, जिससे प्राधिकरण सूची पर प्राधिकरणों को अनुदान देकर सूची में सभी वस्तुओं पर अधिकार देना संभव हो जाता है। उपयोगकर्ता प्रोफाइल में एक संबद्ध उपयोगकर्ता वर्ग होता है जो उस उपयोगकर्ता प्रोफ़ाइल के लिए उपलब्ध डिफ़ॉल्ट प्राधिकरणों के सेट को निर्धारित करता है। पाँच मानक उपयोक्ता वर्ग हैं, जो बढ़ते हुए विशेषाधिकार के क्रम में हैं: वर्कस्टेशन उपयोक्ता, सिस्टम ऑपरेटर, सिस्टम प्रोग्रामर, सुरक्षा प्रशासक और सुरक्षा अधिकारी। IBM i प्रत्येक उपयोगकर्ता वर्ग के लिए एक डिफ़ॉल्ट उपयोगकर्ता प्रोफ़ाइल और डिफ़ॉल्ट सुरक्षा अधिकारी उपयोगकर्ता प्रोफ़ाइल के साथ शिप करता है, जिसका नाम है, यूनिक्स जैसे ऑपरेटिंग सिस्टम के रूट उपयोगकर्ता के निकटतम समतुल्य है। IBM i को सुरक्षा के पाँच स्तरों में से एक का उपयोग करने के लिए सेट किया जा सकता है, जो ऑपरेटिंग सिस्टम की सुरक्षा सुविधाओं को लागू करने की सीमा को नियंत्रित करता है:
 * स्तर 10 - उपयोगकर्ता पासवर्ड के बिना लॉग इन कर सकते हैं, और सिस्टम तक पूरी पहुंच प्राप्त कर सकते हैं। यदि कोई उपयोगकर्ता अज्ञात उपयोगकर्ता नाम से लॉग इन करता है, तो एक नया उपयोगकर्ता प्रोफ़ाइल स्वचालित रूप से बनाया जाएगा।
 * स्तर 20 - उपयोगकर्ताओं को एक ज्ञात उपयोगकर्ता प्रोफ़ाइल के उपयोगकर्ता नाम और पासवर्ड के साथ लॉग इन करना होगा, लेकिन एक बार लॉग इन करने के बाद सिस्टम तक उनकी लगभग पूरी पहुंच होगी। प्रबंधन। सीमित पहुँच वाले खाते बनाए जा सकते हैं, जिन्हें कुछ वस्तुओं तक पहुँचने या कुछ आदेशों को चलाने तक सीमित किया जा सकता है।
 * स्तर 30 - अधिकारियों को लागू किया जाता है, जिसका अर्थ है कि उपयोगकर्ता तब तक वस्तुओं तक नहीं पहुँच सकते जब तक कि उनके पास वस्तु के लिए कोई अधिकार न हो।
 * स्तर 40 - कुछ सिस्टम प्रोग्रामों और एमआई निर्देशों तक पहुंच प्रतिबंधित है, और केवल ऑपरेटिंग सिस्टम कोड द्वारा ही इसका उपयोग किया जा सकता है।
 * स्तर 50 - TCSEC C2 अनुपालन प्राप्त करने के लिए सिस्टम के लिए आवश्यक परिवर्तन शामिल हैं, और एक सुरक्षा ऑडिट जर्नल जोड़ता है।

पहले तीन स्तर CPF में उपलब्ध सुरक्षा स्तरों और OS/400 के शुरुआती रिलीज के अनुरूप हैं। OS/400 V1R3 में सुरक्षा स्तर 40 जोड़ा गया और ऑपरेटिंग सिस्टम के लिए डिफ़ॉल्ट सुरक्षा स्तर बन गया। लेवल 40 को जोड़ने के लिए सिस्टम/38 के क्षमता संबोधित मॉडल को हटाने की आवश्यकता थी जो OS/400 के पहले रिलीज में भी मौजूद था। सुरक्षा स्तर 50 को V2R3 में जोड़ा गया था जब OS/400 को विश्वसनीय कंप्यूटर सिस्टम मूल्यांकन मानदंड#C — विवेकाधीन सुरक्षा सुरक्षा के लिए प्रमाणित किया गया था।

यह भी देखें

 * ऑपरेटिंग सिस्टम की तुलना
 * वस्तु (आईबीएम मैं)

बाहरी संबंध

 * IBM i site
 * IBM i Documentation
 * IT Jungle - IBM i news website
 * MC Press Online - IBM Midrange Computer news website