.bss
कंप्यूटर प्रोग्रामिंग में, ब्लॉक प्रारंभिक प्रतीक (. bss या bss के लिए संक्षिप्त) एक ऑब्जेक्ट फ़ाइल, निष्पादन योग्य, या असेंबली भाषा कोड का हिस्सा है जिसमें स्थिर रूप से आवंटित चर होते हैं जो घोषित किए जाते हैं लेकिन अभी तक एक मूल्य आवंटित नहीं किया गया है। इसे अक्सर "बी. एस. एस. खंड" या "बी. एस. एस. खंड" के रूप में संदर्भित किया जाता है। आम तौर पर केवल बी. एस. एस. खंड की लंबाई, लेकिन कोई डेटा, ऑब्जेक्ट फ़ाइल में संग्रहीत नहीं किया जाता है। प्रोग्राम लोडर बी. एस. एस. खंड के लिए मेमोरी आवंटित करता है जब यह प्रोग्राम को लोड करता है। . bss अनुभाग में बिना किसी मूल्य के चरों को रखने से,. डेटा या. रोडाटा अनुभाग के बजाय, जिसमें प्रारंभिक मूल्य डेटा की आवश्यकता होती है, ऑब्जेक्ट फ़ाइल का आकार कम हो जाता है। कुछ प्लेटफार्मों पर, कुछ या सभी बी. एस. एस. अनुभाग को शून्य से आरंभ किया जाता है। यूनिक्स जैसी प्रणालियाँ और विंडोज बी. एस. एस. खंड को शून्य से आरंभ करते हैं, जिससे सी और सी + + को स्थिर रूप से आवंटित चर को बी. एस. एस. खंड में रखे जाने के लिए सभी बिट्स शून्य के साथ दर्शाए गए मूल्यों को आरंभ करने की अनुमति मिलती है। संचालन प्रणाली बीएसएस खंड को कुशलता से लागू करने के लिए शून्य-भराव-पर-मांग नामक तकनीक का उपयोग कर सकती है। एम्बेडेड सॉफ्टवेयर में, बी. एस. एस. खंड को मेमोरी में मैप किया जाता है जिसे मुख्य () दर्ज करने से पहले सी रन-टाइम सिस्टम द्वारा शून्य से आरंभ किया जाता है। कुछ सी रन-टाइम सिस्टम बी. एस. एस. खंड के हिस्से को आरंभ नहीं करने की अनुमति दे सकते हैं; सी चर को स्पष्ट रूप से बी. एस. एस. खंड के उस हिस्से में रखा जाना चाहिए। कुछ कंप्यूटर संरचनाओं पर, अनुप्रयोग द्विआधारी इंटरफेस "छोटे डेटा" के लिए एक एस. बी. एस. एस. खंड का भी समर्थन करता है। आमतौर पर, इन डेटा वस्तुओं को छोटे निर्देशों का उपयोग करके एक्सेस किया जा सकता है जो केवल पतों की एक निश्चित श्रृंखला तक पहुंचने में सक्षम हो सकते हैं। थ्रेड-स्थानीय भंडारण का समर्थन करने वाले वास्तुकला में थ्रेड-स्थानीय के रूप में चिह्नित अस्थिर, स्थिर डेटा के लिए एक टी. बी. एस. एस. अनुभाग का उपयोग किया जा सकता है। उत्पत्ति ऐतिहासिक रूप से, बी. एस. एस. (ब्लॉक स्टार्ट्ड बाय सिम्बॉल से) यू. ए.-एस. ए. पी. (यूनाइटेड एयरक्राफ्ट सिम्बोलिक असेंबली प्रोग्राम) में एक छद्म-संचालन है, जिसे 1950 के दशक के मध्य में रॉय नट, वाल्टर रामशॉ और अन्य लोगों द्वारा यूनाइटेड एयरक्राफ्ट कॉर्पोरेशन में आई. बी. एम. 704 के लिए विकसित किया गया था। BSS मुख्य शब्द को बाद में FORTRAN असेंबली प्रोग्राम (FAP) और मैक्रो असेंबली प्रोग्राम (MAP) में शामिल किया गया, जो इसके 709 और 7090/94 कंप्यूटरों के लिए IBM के मानक असेंबलर थे। इसने एक लेबल को परिभाषित किया (अर्थात। प्रतीक) और दिए गए शब्दों की संख्या के लिए शुरुआत न किए गए स्थान का एक खंड आरक्षित किया। इस स्थिति में बी. एस. एस. ने व्यक्तिगत रूप से कई अलग-अलग छोटे डेटा स्थानों को आरक्षित करने के स्थान पर एक संक्षिप्त नाम के रूप में काम किया। कुछ असेंबलर प्रतीक द्वारा समाप्त ब्लॉक के लिए एक पूरक या वैकल्पिक निर्देश बी. ई. एस. का समर्थन करते हैं, जहां निर्दिष्ट प्रतीक आरक्षित ब्लॉक के अंत से मेल खाता है। सी में बी. एस. एस. सी में, एक स्पष्ट आरंभकर्ता के बिना स्थिर रूप से आवंटित वस्तुओं को शून्य (अंकगणितीय प्रकारों के लिए) या एक शून्य सूचक (सूचक प्रकारों के लिए) से आरंभ किया जाता है। सी के कार्यान्वयन आम तौर पर शून्य मूल्यों और शून्य सूचक मूल्यों का प्रतिनिधित्व करते हैं जो एक बिट पैटर्न का उपयोग करते हैं जिसमें पूरी तरह से शून्य-मूल्य वाले बिट्स होते हैं (बी. एस. एस. को शून्य से भरने के बावजूद सी मानक द्वारा आवश्यक नहीं है,. बी. एस. में सभी चर को सी आई. एस. ओ मानक 9899:1999 की धारा 6.7.8 या नए मानकों के लिए धारा 6.7.9 के अनुसार व्यक्तिगत रूप से किसी प्रकार के शून्य के लिए आरंभ किया जाना आवश्यक है)। इसलिए, बी. एस. एस. खंड में आम तौर पर फ़ाइल दायरे (यानी, किसी भी कार्य के बाहर) में घोषित सभी शुरुआत न की गई वस्तुओं (चर और स्थिरांक दोनों) के साथ-साथ शुरुआत न की गई स्थिर स्थानीय चर (स्थिर मुख्य शब्द के साथ घोषित स्थानीय चर) शामिल होते हैं; स्थिर स्थानीय स्थिरांक को घोषणा के समय आरंभ किया जाना चाहिए, हालांकि, क्योंकि उनकी एक अलग घोषणा नहीं है, और इस प्रकार वे आम तौर पर बी. एस. एस. खंड में नहीं होते हैं, हालांकि उन्हें निहित या स्पष्ट रूप से शून्य से आरंभ किया जा सकता है। एक कार्यान्वयन बी. एस. एस. अनुभाग को केवल शून्य-मूल्य वाले बिट्स से युक्त मूल्य के साथ आरंभ किए गए स्थिर रूप से आवंटित चर और स्थिरांक भी निर्दिष्ट कर सकता है। सी प्रोग्रामर और लेखक पीटर वैन डेर लिंडेन कहते हैं, "कुछ लोग इसे 'बेटर सेव स्पेस' के रूप में याद रखना पसंद करते हैं। चूँकि बी. एस. एस. खंड में केवल ऐसे चर होते हैं जिनका अभी तक कोई मूल्य नहीं है, इसलिए वास्तव में इन चरों की छवि को संग्रहीत करने की आवश्यकता नहीं है। बी. एस. एस. को रनटाइम में जिस आकार की आवश्यकता होगी, वह ऑब्जेक्ट फ़ाइल में दर्ज किया जाता है, लेकिन बी. एस. एस. (डेटा खंड के विपरीत) ऑब्जेक्ट फ़ाइल में कोई वास्तविक स्थान नहीं लेता है। फोरट्रान में बी. एस. एस. फोरट्रान में, इस खंड में सामान्य ब्लॉक चर आवंटित किए जाते हैं। कुछ संकलक, 64-बिट निर्देश सेट के लिए, इस खंड तक पहुँचने वाले निर्देशों में, ऑफसेट को 32 बिट तक सीमित कर सकते हैं, इसके आकार को 2 जीबी या 4 जीबी तक सीमित कर सकते हैं। इसके अलावा, ध्यान दें कि फोरट्रान को शून्य से आरंभ करने के लिए स्थिर डेटा की आवश्यकता नहीं है। उन प्रणालियों पर जहां बी. एस. एस. खंड को शून्य से आरंभ किया जाता है, उस खंड में सामान्य ब्लॉक चर और अन्य स्थिर डेटा डालने से यह सुनिश्चित होता है कि यह शून्य होगा, लेकिन सुवाह्यता के लिए, प्रोग्रामरों को उस पर निर्भर नहीं होना चाहिए। लिंकर (कम्प्यूटिंग) डेटा सेगमेंट कोड सेगमेंट यूनिनिशियलाइज्ड वेरिएबल रेफेरेंसेस एग्जीक्यूटेबल फाइल फॉर्मेट मेमोरी मैनेजमेंट असेंबली लैंग्वेज प्रोग्रामिंग लैंग्वेज इम्प्लीमेंटेशन भी देखें।