एलबीए पेश किए जाने से पहले, सीएचएस क्यों शुरू होता है 0,0,1
और नहीं 0,0,0
?
एलबीए पेश किए जाने से पहले, सीएचएस क्यों शुरू होता है 0,0,1
और नहीं 0,0,0
?
जवाबों:
दुर्भाग्य से, यह सिर्फ यही है कि समय पर लोकप्रिय सीएचएस संबोधन योजना को कैसे लागू किया गया और इसे अपनाया गया। यह डिस्क एक्सेस के लिए उपयोग किए जाने वाले BIOS में आईबीएम-संगत कंप्यूटरों के लिए आधिकारिक सम्मेलन के रूप में अपनाया गया था, यह बताते हुए कि इस सम्मेलन का आज तक क्यों उपयोग किया जाता है। से ECMA-107 स्टैंडर्ड , मात्रा और सूचना आदान लिए डिस्क कारतूस की फ़ाइल संरचना (यह भी मूल में बताया गया है एटीए-1 की विशेषताएं ):
6.1.3 तार्किक क्षेत्र संख्या
वॉल्यूम पर प्रत्येक सेक्टर को लॉजिकल सेक्टर नंबर द्वारा पहचाना जाएगा। [...] लॉजिकल सेक्टर नंबरों को एक आरोही क्रम में सौंपा जाएगा, 0 से शुरू होकर, सेक्टर 1 से शुरू होकर, ट्रैक 00, साइड 0 , ट्रैक 00, साइड 1 पर जारी रहेगा (यदि FDC दोनों तरफ रिकॉर्ड करने योग्य है) और फिर ट्रैक करने के लिए 01, साइड 0, आदि।
इस मुद्दे को कुछ हार्ड डिस्क के विनिर्देशों में संबोधित किया गया है , जहां यह ध्यान दिया जाता है कि एक दिया गया सीएचएस पता भौतिक सीएचओ पते स्थान से भिन्न होता है । यह आगे सीगेट एटीए इंटरफ़ेस संदर्भ मैनुअल में चर्चा की गई है , जिसमें यह दिलचस्प कथा है:
5.1 लॉजिकल ब्लॉक एड्रेसिंग
[...] ड्राइव पर सेक्टरों को रेखीय रूप से मैप किया गया है, जिसमें LBA 0 सिलेंडर 0 / हेड 0 / सेक्टर 1 है।
[...] सभी अनुवाद मोडों के लिए, C = 0, H = 0, S = 1 LBA = 0 के बराबर है। सभी अनुवाद मोड में सभी तार्किक ब्लॉक पते के लिए एक बराबर सीएचएस की गणना करना संभव नहीं है क्योंकि यह सूत्र केवल एक दिशा में काम करता है। ऐसा इसलिए है क्योंकि CHS एड्रेसिंग उन सभी संभावित क्षेत्रों के 1/256 वें हिस्से तक नहीं पहुंच सकता है जो तार्किक ब्लॉक एड्रेसिंग एक्सेस कर सकते हैं, क्योंकि CHS में कोई सेक्टर 0 नहीं है।
इस प्रकार तार्किक सीएचएस संबोधन के लिए, हालांकि पहला सिलेंडर / हेड इंडेक्स 0-आधारित ऑफसेट से शुरू होता है , और पहला सेक्टर इंडेक्स 1 से शुरू होता है (उदाहरण के लिए न्यूनतम संभव सीएचएस पता 0/0/1 है), इस बारे में कुछ भी नहीं बदलता है शारीरिक इस क्षेत्र के स्थान। इसे "सेक्टर 1" कहे जाने वाले डिस्क पर पहले भौतिक क्षेत्र के रूप में सोचें , सीएचएस 0/0/1 पर कब्जा कर रहा है। दरअसल, अधिकांश प्रोग्रामिंग भाषाओं में "पहला" तत्व 0-आधारित है, इसलिए CHS पते 0/0/1 पर क्षेत्र का तार्किक पता शून्य ( 0x00
) है।
यह तार्किक रूप से बहुत अधिक समझ में आता है (अर्थात, "शून्य" तार्किक पता पहला भौतिक क्षेत्र है), क्योंकि हम डिस्क डिवाइस को किसी भी अन्य मेमोरी डिवाइस के रूप में संबोधित कर सकते हैं (जैसा कि प्रत्येक सेक्टर का भौतिक में मैप करने के लिए एक अद्वितीय रेखीय पता है सेक्टर), इस प्रकार यह एलबीए को शून्य से शुरू करने के लिए समझ में क्यों आता है। वास्तव में, यदि हम सीएचएस पता 0/0/1 का एलबीए में अनुवाद करते हैं , तो परिणामस्वरूप एलबीए होगा 0x00000000
(यही कारण है कि 1 को सीएचएस से एलबीए की गणना में सेक्टर इंडेक्स से घटाया जाता है, और 1 को एलबीए के सूचकांक में क्यों जोड़ा जाता है सीएचएस गणना के लिए)।
zero sector
, त्रुटि कोड, और खराब ब्लॉकों आदि के लिए उपयोग किया जाता था .... सीएचएस और "फिक्स्ड-ब्लॉक-आर्किटेक्चर" के लिए संक्रमण आपके पास भी था। ड्राइव में एक नियंत्रक (फर्मवेयर) जोड़ने और "तार्किक" डिस्क संघों की शुरुआत का संक्रमण ... नियंत्रक अब अदृश्य है, लेकिन आप मान सकते हैं कि यह उसी तरह उपयोग कर रहा है ... शब्द को अब "होस्ट संरक्षित" कहा जाता है क्षेत्र " en.wikipedia.org/wiki/Fixed-block_altecture और en.wikipedia.org/wiki/Host_protected_area
1
, मुझे अभी भी कोई जानकारी नहीं मिली है कि क्यों (हालांकि मुझे संदेह है कि यह कुछ ऐसा हो सकता है जिसमें सेक्टर 0
को त्रुटि ध्वज के रूप में आरक्षित किया जा सकता है )। अगर मुझे कुछ भी आता है तो मैं आपको अपडेट करना सुनिश्चित करूंगा।
मैंने सीएचएस के इतिहास और "1 से शुरू होने वाले" सेक्टर नंबरिंग फियास्को का पता लगाने की कोशिश की है , जिसने डिस्क-ड्राइवरों के लेखकों के लिए कई जटिलताएं पैदा की हैं और एलबीए को तेजी से जन्म दिया है ।
CHS उन दिनों में वापस आता है जब पर्सनल कंप्यूटर डिस्केट्स पर चलते थे और जब BIOS का आविष्कार किया गया था। यह विकिपीडिया कहता है:
BIOS (बेसिक इनपुट / आउटपुट सिस्टम) शब्द का आविष्कार गैरी किल्डल द्वारा किया गया था और पहली बार CP / M ऑपरेटिंग सिस्टम में 1975 में दिखाई दिया, जिसमें बूट समय के दौरान लोड किए गए CP / M के मशीन-विशिष्ट भाग का वर्णन किया गया था जो सीधे हार्डवेयर के साथ इंटरफेस करता है।
CP / M BIOS के एक शोध में दस्तावेज़ CP / M सूचना संग्रह पाया गया है : BDOS सिस्टम कॉल , जिसमें सेक्टर संख्या शून्य से शुरू होती है। निष्कर्ष यह है कि: सीएचएस स्कीमा वास्तव में शून्य-आधारित सेक्टर पते का उपयोग करता है ।
पहले आईबीपी / पीसी के साथ एक-आधारित क्षेत्र के पते पेश किए गए थे। दस्तावेज़ INT 13 - डिस्केट BIOS सेवाएँ विशेष रूप से कहती हैं:
Most disk BIOS calls use the following parameter scheme:
AH = function request number
AL = number of sectors (1-128 dec.)
CH = cylinder number (0-1023 dec.)
CL = sector number (1-17 dec.) <--------!!!
DH = head number (0-15 dec.)
DL = drive number (0=A:, 1=2nd floppy, 80h=drive 0, 81h=drive 1)
DL = drive number (0=A:, 1=2nd floppy, 80h=C:, 81h=D:)
Note that some programming references use (0-3) as the
drive number which represents diskettes only.
ES:BX = address of user buffer
तो यह आईबीएम / पीसी था कि BIOS के एक वास्तविक कार्यान्वयन द्वारा सेक्टर-नंबरिंग को शून्य-आधारित से एक-आधारित में बदल दिया गया था।
आईबीएम पर्सनल कंप्यूटर (मॉडल 5150) बनाने के लिए सौंपे गए बारह आईबीएम इंजीनियरों में से, डेविड जे। ब्रैडले ने अपने BIOS के लिए कोड विकसित किया। तो वह वह है जो अपने सभी अन्य विवरणों के बीच, डिस्क के लिए मापदंडों पर फैसला करता है। हम यह भी प्रसिद्ध मेल Hallerman के साथ मिलकर इस आदमी को देना है CTRL+ ALT+ DEL।
तो इस सवाल का जवाब है कि
सीएचएस में सेक्टर 1 क्यों नहीं 0 से शुरू होता है:
क्योंकि डेविड जे। ब्रैडली ने BIOS को इस तरह से प्रोग्राम किया था ।
इस तरह से उसने ऐसा क्यों किया, इसका जवाब सबसे अच्छा है। अगर मुझे अनुमान लगाना था, तो मैं कहूंगा कि उन्होंने सेक्टर को संबोधित क्षेत्र के रूप में शून्य छोड़ दिया, जिसके द्वारा ड्राइवर यह सत्यापित कर सकता था कि सिर सही रास्ते पर है।
चूंकि डिस्क वास्तव में इंजीनियर थे, इसलिए इस तरह के तंत्र की आवश्यकता नहीं थी, और इंजीनियर BIOS के कारण एक सेक्टर को बर्बाद करने के लिए तैयार नहीं थे, सेक्टर शून्य कभी अस्तित्व में नहीं आया। इसके बाद, ड्राइवर-लेखकों को सभी BIOS डिस्क कॉल के लिए सेक्टर-वन और ऐड-वन को सेक्टर के पते पर घटाने की आवश्यकता के साथ छोड़ दिया गया था।
फ्लॉपी डिस्क पर पहला विनिर्देश आईबीएम 3740 की उपस्थिति के साथ आईबीएम द्वारा बनाया गया था और यह उल्लेख नहीं करता है कि सिस्टम के लिए आरक्षित क्षेत्र हैं। सिस्टम के लिए एकमात्र आरक्षण ट्रैक 00 है, जो केवल "डेटा सेट लेबल" को संग्रहीत करता है जो पटरियों 01 से 76 में संग्रहीत जानकारी के प्रकार की पहचान करता है। यह स्पष्ट रूप से परिभाषित करता है कि पहला क्षेत्र सेक्टर 1 है। यह एक संयोग नहीं है, लेकिन ए कंप्यूटर की संख्या के खिलाफ प्राकृतिक संख्या का मामला।
हम यह देख सकते हैं कि जब मानव कुछ भी गिनना शुरू करता है, तो वह शून्य से शुरू नहीं होता है, बल्कि एक से होता है। उदाहरण के लिए, कल्पना कीजिए कि एक कक्षा में 135 छात्र हैं। संख्या की गणना कुछ इस तरह होगी: एक, दो, तीन ... एक सौ चौंतीस, एक सौ पैंतीस।
इसका संख्यात्मक प्रतिनिधित्व इस प्रकार होगा: 1, 2, 3, ... 134, 135 अब तक हम सहमत हैं, है ना?
अब आइए उन अंकों को डालें जिन्हें 0. द्वारा दर्शाया नहीं गया है। यह इस तरह दिखेगा: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135
सीएचएस के साथ ऐसा होता है : 0,0,1 - 0,0,2 - 0,0,3 ...
यह महत्वपूर्ण है कि किसी डेटाबेस में एक्सेल शीट या ऑटो-न्यूमेरिक फील्ड में पंक्तियाँ 1 से शुरू होती हैं और 0 से नहीं।
क्या डेविड जे। ब्रैडले ने BIOS को इस तरह से शेड्यूल किया था?
हाँ, लेकिन वह बाहर नहीं था।
निश्चित रूप से कोई तकनीकी कारण नहीं है कि SECTOR 0 का उपयोग तब तक नहीं किया जा सकता है जब तक कि यह आरक्षित न हो और अन्य कारणों से उपयोगकर्ताओं से छिपा हो। सिद्धांत रूप में सब कुछ यह प्राकृतिक अंकन का मामला है।
GA21-9152-2 फाइल नंबर 3740-00,15
आईबीएम 3740 डेटा एंट्री सिस्टम
पेज 12
डिस्क जांच
... प्रत्येक डिस्क में किसी भी अनियमित पटरियों को बदलने के लिए दो स्पेयर ट्रैक होते हैं। इसके अलावा, इनिशियलाइज़ेशन फीचर डिस्केट पर सेक्टर एड्रेस के अनुक्रम को बदलने का एक साधन प्रदान करता है। आम तौर पर, क्षेत्रों का अनुक्रम संख्यात्मक क्रम (1, 2, 3, ... 25,26) में होता है ।
पृष्ठ 24
डिस्कनेक्ट पर डेटा लेबलिंग
आरंभीकरण के दौरान, डेटा सेट के लिए डेटा सेट लेबल मैग्नेटिक रूप से डिस्केट के सूचकांक ट्रैक (ट्रैक 00) पर दर्ज किया जाता है। इस लेबल का प्राथमिक उद्देश्य डिस्केट पर सेट किए गए डेटा का स्थान दिखाना है
यह 1973 में था। इसने 8 "डिस्केट पर डेटा दर्ज किया। आईबीएम पीसी 5150 का जन्म 12 अगस्त, 1981 को हुआ था ... और हम यह नहीं भूल सकते कि उन्हें पिछले उपकरणों के साथ कुछ संगतता बनाए रखना था।
कोई तकनीकी कारण जरूर था।