سافٹ ویئر کی عظیم غلطیاں

593

ایک وقت تھا جب سافٹ ویئر پروگرامنگ دنیا کے مشکل ترین کاموںمیں سے ایک شمار کی جاتی تھی۔ یہ وہ دور تھا جب پروگرامنگ لینگویجز اپنے ابتدائی دور سے گزر ررہی تھیں۔ اس دور میں اسمبلی جیسی لولیول پروگرامنگ لینگویجز استعمال ہورہی تھیں۔ وقت کے ساتھ ساتھ ہائی لیول لینگویجز کا ظہور ہوا اور پروگرامنگ کی دنیا ہی بدلتی چلی گئی۔ درجنوں نئی پروگرامنگ لینگویجز سامنے آئیں اور ہر لینگویج کے آتے ہی پروگرامنگ آسان سے آسان تر ہوتی گئی۔ آج سی شارپ، وی بی ڈاٹ نیٹ، جاوا اور پائتھون جیسی طاقتور لینگویجز کثرت سے زیر استعمال ہیں۔ صرف یہی نہیں، اب اپنی پروگرامنگ لینگویج بنانا بھی کچھ مشکل نہیں رہا۔ قصہ مختصر کہ پروگرامنگ کی دنیا اب بالکل بدل چکی ہے اور یہ کام اب اتنا آسان ہوچکا ہے کہ پیچیدہ سے پیچیدہ پروگرام لکھنے کے لئے بھی چند دن درکار ہوتے ہیں۔ اس کے مقابلے میں لیولیول لینگویجز میں ایک چھوٹا سا پروگرام لکھنے کے لئے بھی کبھی کبھی کئی ماہ درکار ہوتے تھے۔

پروگرامنگ تو آسان ہو ہی گئی مگر ایک چیز اب بھی ایسی ہے جو کسی بھی وقت کسی سافٹ ویئر انجینئر کے گلے کا پھندہ بن سکتی ہے۔ اور وہ چیز ’’سافٹ ویئر بگز‘‘۔

سافٹ ویئر بگز کسی کمپیوٹر پروگرام میں ایسی غلطیاں ہوتی ہیں جن کی وجہ سے پروگرام مخصوص حالات میں کریش ہوجاتا ہے، چلنے سے انکار کردیتا ہے ، غلط نتائج پیدا کرتا ہے یا کوئی الٹا سیدھا کام کرنے لگتا ہے۔ بیشتر مواقع پر یہ بگز پروگرام بنانے والے پروگرامر کی غلطی کی وجہ سے رہ جاتے ہیں لیکن بعض اوقات یہ پروگرامنگ لینگویج کے کمپائلر کا بھی قصور ہوسکتا ہے۔ سافٹ ویئر بگز اتنے عام ہیں کہ کسی سافٹ ویئر پروگرام کے بارے میں حتمی طور پر یہ نہیں کہا جاسکتا ہے کہ یہ سو فیصد بگز سے پاک ہے۔ آپریٹنگ سسٹم چاہے کمپیوٹر کا ہو یا کسی موبائل فون کا، مائیکروسافٹ آفس ہو یا اوپن آفس، لینکس ہو یا ونڈوز، سافٹ ویئر کمرشل ہو یا اوپن سورس، بگز سب میں پائے جاتے ہیں اور وقت کے ساتھ ساتھ سامنے بھی آتے رہتے ہیں۔

ایسا سافٹ ویئر جس میں بگز کی بڑی تعداد موجود ہو ’’Buggy‘‘ کہلاتا ہے اور بگز کے بارے میں پروگرامر کو مطلع کرنے کے عمل کو ’’bug report‘‘ کہا جاتا ہے۔ بگز کو دور کرنے کو Debugging کہا جاتا ہے۔

ڈی بگنگ شاید سافٹ ویئر پروگرامنگ سے بہت مشکل کام ہے۔ اگرچہ تمام جدید پروگرامنگ لینگویجز کے ساتھ ڈی بگنگ ٹولز بھی فراہم کئے جاتے ہیں ۔ لیکن آج بھی ڈی بگنگ سافٹ ویئر انجینئرنگ کے مشکل ترین امور میں سے ایک ہے۔ ایسے مواقع پر تو خاص طور پر ڈی بگنگ مشکل ہوجاتی ہے جب آپ کسی دوسرے پروگرامر کے لکھے ہوئے کوڈ کو ڈی بگ کررہے ہوں۔ دلچسپ بات یہ ہے کہ بگز صرف سافٹ ویئر میں نہیں بلکہ ہارڈ ویئر میں بھی پائے جاتے ہیں۔ ایسی صورت حال میں ڈی بگنگ صبر آزما اور تکلیف دہ حد تک خشک کام ہے۔

جیسا کہ میں نے پہلے کہا کہ کسی سافٹ ویئر پروگرام کو بگ فری نہیں جاسکتا۔ اس لئے یہ بگز بعض اوقات عظیم نقصانات کا باعث بھی بنتے ہیں۔ تاریخ میں ایسے کئی واقعات موجود ہی جب سافٹ ویئر یا ہارڈ ویئر میں موجود بگز کی وجہ سے کئی جانیں ضائع ہوئیں اور اربوں ڈالرز کا نقصان ہوا۔

سنہ 2005 کی آخری سہ ماہی کی بات ہے جب آٹو موبائل کے حوالے سے شہرت یافتہ ’’ٹویوٹا‘‘ نے اپنی Priusہائبرڈ گاڑی کے ایک لاکھ ساٹھ ہزار یونٹس کی واپسی کا اعلان کیا۔ اس اعلان کی وجہ وہ رپورٹس ہیں جن میں صارفین کی جانب سے شکایات کی گئی تھیں کہ گاڑی کی وارننگ لائٹس خود بخود روشن ہوجاتی ہیں اور گاڑی کا گیسولین انجن بھی غیر متوقع برتاؤ پیش کرنے لگتا ہے۔ اس سے پہلے بھی کئی بار آٹو موبائلز بنانے والے لاکھوں کی تعداد میں خراب گاڑیاں بدل چکے ہیں مگر ان سب میں ہارڈ ویئر کے حوالے ہی سے کوئی خرابی موجود ہوتی تھی۔ لیکن ٹویوٹا کی Priusگاڑی میں خرابی ہارڈ ویئر کی نہیں بلکہ ایک سافٹ ویئر کی تھی۔ اس اسمارٹ کار کے ایمبیڈڈ سافٹ ویئر میں ایک بگ تھا جس کی وجہ سے وارننگ لائٹس خود بخود روشن ہوجاتی تھیں۔ اس طرحPrius بھی بگی سافٹ ویئر کی فہرست میں شامل ہوگئی۔

تاریخ کا پہلا اور مشہور ترین بگ ’’مارک ٹو‘‘ میں پایا گیا۔ 1945 ء کی بات ہے جب مارک ٹو پر ضرب اور جمع کے کچھ ٹیسٹ کئے جارہے تھے۔ اس دوران انجینئرز نے مشاہدہ کیا کہ مارٹ ٹو کے حساب کتاب میں کچھ گڑ بڑ ہے۔ خرابی پینل ایف کے سترویں ریلے (Relay) میں تھی ۔ خرابی فوراً دور کرلی گئی اور ساتھ ہی لاگ بک میں خرابی کی تفصیلات کے ساتھ ساتھ یہ بھی لکھا گیا کہ ’’پہلا اصل کیس جب بگ تلا ش کرلیا گیا‘‘۔

اس واقعے کو گزرنے کے ساٹھ سال بعد بھی یہ بگز ہمارے ساتھ ہیں۔ آج جہاں ہم جدید سافٹ ویئر دیکھ رہے ہیں، وہیں جدید اور انوکھے بگز بھی تفریح طبع کے لئے موجود ہیں۔

یہاں ہم چند مشہور سافٹ ویئر بگز کا ذکر کررہے ہیں جن کی وجہ سے بڑے نقصانات ہوئے۔

لاکھوں ڈالر مالیت کی مرنیر 1 اسپیس پروب مکمل تباہ !

28 جولائی 1962 ء کو مرینر اسپیس پروب جو کہ مرینر پروگرام کا پہلا راکٹ تھا، کو سیارہ زہرہ کی تحقیق کے لئے روانہ کیا گیا۔ مگر فلائٹ سافٹ ویئر میں موجود ایک بگ کی وجہ سے یہ راکٹ اپنے محور سے منحرف ہوگیا۔ بعد میں مشن کنٹرول کے رینج سیفٹی آفیسرز نے کئی ملین ڈالرز کی لاگت سے تیار ہونے والے اس راکٹ کو سمندر کے اوپر تباہ کردیا تاکہ راستے بھٹکنے کی وجہ سے یہ کسی شہری آبادی پر نہ گر کر جانی نقصان کا باعث نے بنے۔

تحقیقات کرنے پر انکشاف ہوا کہ فلائٹ سافٹ وئیر پروگرام جو کہ فورٹران میں لکھا گیا تھا، کے پروگرامز نے پنسل سے پیپر پر لکھے ہوئے ایک فارمولے کو غلط انداز میں کمپیوٹر کوڈ کی شکل دی۔ فارمولے میں صرف ایک ہائفن (-) موجود نہیں تھا۔ جس کی وجہ سے راکٹ اپنے راستے سے بھٹک گیا۔

یہ بھی کہا جاتا ہے کہ فلائٹ پروگرام میں ایک جگہ کوما کی جگہ غلطی سے نقطہ (.) لگا دیا گیا اور اسی اسٹیمنٹ میں ایک اسپیس ڈیلیٹ کردیا گیا۔ اسٹیٹمنٹ کو کچھ یوں ہونا چاہئے تھا:

DO 17 I = 1, 10

مگر کومے کی جگہ نقطہ لگانے اور اسپیس ڈیلیٹ کرنے کی وجہ سے یہ اسٹیٹمنٹ کچھ یوں ہوگئی۔

DO17I = 1.10

اس سے ملتا جلتا ایک بگ ناسا کے اوربٹ کمپیوٹیشن سسٹم میں بھی پایا گیا تھا جو کہ پروجیکٹ مرکری کے لئے تیار کیا گیا تھا۔

اے ٹی اینڈ ٹی نیٹ ورک کے سوئچز کریش ہوگئے

15 جنوری 1990 کی بات ہے کہ اے ٹی اینڈ ٹی کے لمبے فاصلے کی فون کالز کنڑول کرنے والے سوئچز میں سے ایک سوئچ اچانک کریش کرگیا جو بظاہر ایک نارمل صورت حال ہے۔ لیکن کچھ ہی سیکنڈز میں جب یہ سوئچ ری کور ہوا تو اس نے اپنے قریب موجود دوسرے سوئچ کو بھی کریش ہونے پر مجبور کردیا۔ کچھ ہی دیر میں اے ٹی اینڈ ٹی نیٹ ورک کے 114 سوئچز کریش ہوگئے۔ ہر سوئچ ٹھیک 6 سیکنڈ کے بعد ری اسٹارٹ ہونے لگا۔  60 ہزار سے زائد لوگ لانگ ڈسٹنٹ کالز کرنے سے محروم ہوگئے۔

مسئلے کی جانچ پڑتال کرنے والے انجینئرز نے کھوج لگایا کہ وہ سافٹ ویئر جو کہ لمبے فاصلے کی کالز انجام دینے والے سوئچز کو کنٹرول کرتا ہے، کے نئے انسٹال کئے گئے ورژن میں ایک سافٹ ویئر بگ موجود ہے۔ جس کی وجہ سے سوئچ اس وقت فی الفور ری اسٹارٹ ہوجاتا جب وہ ایک مخصوص پیغام موصول کرتا تھا۔ یہ پیغام بھی وہ ہے جو کہ دوسرے سوئچ کریش سے ری کور ہونے کے بعد اپنے ہمسائے سوئچز کو اپنے زندہ ہونے کی اطلاع فراہم کرنے کے لئے بھیجتے تھے۔ ری پیئرنگ کرنے والے انجینئرز نے اس سافٹ ویئر کا پرانا ورژن انسٹال کرکے اس مسئلے پر قابو پا لیا۔ لیکن اس سافٹ ویئر بگ کی وجہ سے اے ٹی اینڈ ٹی کی لانگ ڈسٹنٹ کال سروس 9 گھنٹے کے لئے غیر فعال رہی اور لاکھوں ڈالر کے نقصان کا باعث بنی۔

برکلے یونکس فنگر ڈائمن میں بفر اوور فلو

1988 ء میں دنیا کے پہلے انٹرنیٹ وورم جو مورس وورم کہلاتا ہے، نے دنیا بھر میں 2000 سے 6000 ہزار کمپیوٹرز کو متاثر کیا۔ یہ وورم بفر اوورفلو (Buffer Overflow) کا فائدہ اٹھاتے ہوئے متاثرہ کمپیوٹر پر قابو پالیتا تھا۔ بفر اوورفلو اس وقت واقع ہوتا ہے جب آپ کسی ویری ایبل یا ڈیٹا ٹائپ کو اس کی گنجائش سے زیادہ ڈیٹا فراہم کریں۔

مورس وورم سے متاثر ہونے کے بعد تحقیق پر اسٹینڈرڈ ان پٹ آؤٹ پٹ لائبریری میں موجود ایک فنکشن gets() میں ایک خامی پائی گئی۔ یہ فنکشن ایک ایسی لائبریری میں استعمال کیا گیا جو کہ نیٹ ورک پر ٹیکسٹ موصول کرتا تھا۔ اس فنکشن میں ان پٹ ٹیکسٹ پر کوئی حد مقرر نہیں ہے۔ اس لئے جب اسے بڑی مقدار میں ٹیکسٹ ان پٹ کے لئے فراہم کیا جاتا تو کریشن ہوجاتا۔ مورس وورم اسی خامی کا فائدہ اٹھا کر پھیلتا تھا۔

برکلے کے پروگرامرز نے فوراً ہی کوڈ میں تبدیلی کرکے اس خامی پر قابو پا لیا مگر سی لینگویج کی اسٹینڈر ان پٹ آؤٹ پٹ لائبریری میں سے اسے ختم کرنے سے انکار کردیا گیا۔ اس طرح gets() آج بھی سی لینگویج کی IOلائبریری میں اپنی تمام تر خامیوں کے ساتھ موجود ہے۔

تاریخ کے عظیم ترین غیر نیوکلیائی دھماکے

جنوری 1982میں امریکی صدر رونلڈ ریگن نے سی آئی اے کے ایک ایسے منصوبے کی منظوری دی جس کا مقصد سویت یونین کو غلط اور بگز پر مبنی ٹیکنالوجی کی منتقلی تھی جو کہ بعد میں تباہ کن ثابت ہوسکے اور ان کی معیشت برباد ہوجائے۔ اس منظوری کے بعد سینٹرل انٹیلی جینس ایجنسی نے ایک سوچے سمجھے منصوبے کے تحت کینیڈا کی ایک کمپنی کے تیار کردہ کمپیوٹر سسٹم میں خرابی پیدا کردی۔ یہ کمپیوٹر سسٹم سویت یونین کو فروخت کیا گیا جس نے اسے ٹرانس سیبرین گیس پائپ لائنز کو کنٹرول کرنے کے لئے استعمال کیا۔ سویت یونین نے بھی یہ کمپیوٹر سسٹم اس منصوبے کے تحت خریدا جس کا مقصد حساس امریکہ ٹیکنالوجی چرانا یا خریدنا تھا۔ امریکی سی آئی اے کو اپنے خفیہ ذرائع سے سویت یونین کے اس کمپیوٹر سسٹم کی خریداری کے بارے میں علم ہوگیا۔ لہٰذا انہوں نے اس کمپیوٹر سسٹم کو اس طرح خراب کرنے کا فیصلہ کیا کہ خریداری کے بعد بھی یہ سویت یونین کے کوالٹی معیارات پر پورا اترے اور پھر اس وقت فیل ہوجائے جب اسے عملی طور پر استعمال کیا جارہا ہو۔

امریکی سی آئی اے کی اس حرکت کے نتیجے میں 1982ء میں ٹرانس سیبرین گیس پائپ لائنز مکمل طور پر تباہ ہوگئیں اور کہا جاتا ہے کہ زمین کی پوری تاریخ میں ایٹمی دھماکوں کے بعد یہ دھماکے عظیم ترین تھے اور اس سے اتنی آگ پیدا ہوئی جو اس سے پہلے زمین کے تاریخ میں کبھی نہیں دیکھی گئی ۔

تھیراک -25 ، پانچ انسانوں کی قاتل مشین

تھیراک 25 ایک ریڈی ایشن تھراپی مشین تھی جسے ایٹامک انرجی آف کینیڈا نامی کمپنی تیار کرتی تھی۔ یہ مشین 1985 اور 1987 کے عرصے میں کم از کم پانچ انسانوں کو مہلک حد تک زیادہ تابکاری کا نشانہ بناکر موت کی گھاٹ اتار چکی تھی جبکہ زخمیوں کی کوئی گنتی ہی نہیں۔

تھیراک سیریز کی پرانی مشینوں کامیابی سے استعمال کی جارہی تھیں۔ تھیراک 25بھی پرانی مشینوں کو بنیاد بنا کر بنائی گئی اور اس میں کئی تبدیلیاں کی گئی۔ سب سے اہم تبدیلی جو اس میں کئی گئی وہ اس کا تھراپی سسٹم تھا جو کہ دو طرح کی تابکاری مریض کو منتقل کرسکتا تھا۔ اول لو پاور الیکڑان بیم (بی ٹا پارٹیکلز) اور دوم ایکس رے۔ تھیراک 25 میں ایکس رے پیدا کرنے کے لئے ہائی پاور الیکڑانز کو دھات سے ٹکرایا جاتا۔ دوسری اہم تبدیلی جو تھیراک 25 میں کئی گئی وہ پرانی مشین کے الیکٹرو میکینکل سیفٹی انڑ لاک کو سافٹ ویئر کنٹرول سے تبدیل کرنا تھا۔

جب تھیراک 25 کو لو پاور الیکٹران بیم کے لئے کنفیگر کیا جاتا تو الیکٹران گن سے الیکٹران بیم براہ راست مریض تو پہنچتی لیکن اس دوران ’’سیف میگنیٹس‘‘ کے ذریعے اس کو اس طرح پھیلا دیا جاتا ہے کہ یہ نقصان کا باعث نہ بنے۔

لیکن جب مشین کو ایکس رے بیم کے لئے کنفیگر کیا جاتا تو الیکٹران گن سے ہائی پاور الیکڑان بیم خارج ہوتی جو کہ مریض اور الیکٹران گن کے درمیان موجود دھات سے ٹکرا کر ایکس رے پیدا کرتی تھی۔

تھیراک 25 کو اگر غلطی سے اس طرح سیٹ کردیا جائے کہ وہ الیکٹران گن سے ہائی پاور الیکٹران بیم خارج کرے اور دھاتی کمپونینٹ جسے مریض اور بیم کے درمیان ہونا چاہئے، بھی درمیان میں حائل نہ ہوتو مشین کا سافٹ ویئر جو کہ اسمبلی لینگویج میں لکھا گیا تھا، بغیر کوئی ایرر دیئے اس پر عمل درآمد کردیتا تھا۔ اس طرح ہائی پاور الیکٹران بیم براہ راست مریض کو جا ٹکراتی اور مریض کو بجلی کے شدید جھٹکے محسوس ہوتے۔ ساتھ ہی مریض کو جسم بھی جھلس جاتا۔ کم از کم 5 مریض اس طرح زخمی ہونے کے بعد ریڈی ایشن پوائزنگ کا شکار ہو کر لقمہ اجل بن گئے۔

کربروس رینڈم نمبر جنریٹر

کربروس ایک مشہور نیٹ ورک ایتھٹی کیشن سسٹم ہے جو 1988ء میں متعارف کیا گیا۔ یہ نیٹ ورک پر ڈیٹا اور اس کی ترسیل کو محفوظ بنانے کے لئے مستعمل ہے۔ اس کے تبدیل شدہ ورژن اس وقت بھی ونڈوز 2000، XP اور 2003 سرور میں استعمال کئے جارہے ہیں۔ لیکن اس سسٹم کا ایک حصہ جو کہ رینڈم (Random) نمبر فراہم کرتا ہے، 100 فی صد رینڈم نمبر فراہم نہیں کرسکتا۔ اپنے متعارف ہونے کے 8 سال بعد تک یہ مسئلہ جوں یا توں رہا اور اس خرابی سے فائدہ اٹھا کر ایسے کمپیوٹرز کی سکیوریٹی کو توڑا جاسکتا تھا جو کہ کربروس پر بھروسہ کرتے تھے۔ لیکن ایسی کوئی بھی رپورٹ ابھی تک سامنے نہیں آئی کہ آیا اس خامی کو استعمال کرتے ہوئے کسی نے آج تک نقصان پہنچانے کی کوشش کی ہے کہ نہیں۔

ایرین  5 فلائٹ 501

ایرین 5 یورپی اسپیس ایجنسی کا ایک کامیاب ترین لانچ سسٹم ہے جو کہ جیو اسٹیشنری مدار یا لو زمین کے نچلے مدار میں پے لوڈ (payload) پہنچانے کے لئے استعمال ہوتا ہے۔ یہ ایرین 4 کی خوبی اور خامیوں کو مد نظر رکھتے ہوئے تیار کیا گیا ہے لیکن اسے ایرین 4 کی تبدیل شدہ شکل نہیں کہا جاسکتا۔ اس لانچ سسٹم کو تیار ہونے میں 10 سال سے زائد کا عرصہ لگا اور اس پروجیکٹ پر 7 ارب یورو خرچ ہوئے۔

پہلے ای ایس اے نے ایرین 5 کو انسان بردار شٹل ’’ہرمس‘‘ جو خلاء میں پہنچانے کے لئے تیار کرنے کا منصوبہ بنا تھا۔ مگر بعد میں ہرمس شٹل منسوخ ہوگیا اور اس کے بعد ایرین 5 کو مکمل طور پر روبوٹک لانچر کی شکل دے دی گئی۔

ایرین 5 کی پہلی ٹیسٹ پرواز 4 جون 1996 کو کی گئی۔ یہ پرواز Ariane 5 Flight 501کہلاتی ہے۔ اپنی فلائٹ کے صرف 37 سکینڈ کے بعد کنٹرول سافٹ ویئر میں ایک خرابی کی وجہ سے اس نے خود کو تباہ کرلیا۔ سافٹ ویئر کی اس غلطی کو سافٹ ویئر کی تاریخ کی مہنگی ترین غلطیوں میں شمار کیا جاتا ہے کیوں کہ اس کی وجہ سے اربوں ڈالر کا نقصان ہوا۔ ایرین 5 پر موجود پے لوڈ جو کہ چار کلسٹر مشن اسپیس کرافٹ تھے، بھی ضائع ہوگئے۔ صرف ان کی مالیت 370 ملین ڈالر تھی۔

ایرین 5 کا کنٹرول سافٹ ویئر بھی وہی تھا جو کہ ایرین 4 میں استعمال کیا گیا تھا۔ مگر ایرین 5 کے فلائٹ پاتھ ایرین 4سے بالکل مختلف تھا اور سافٹ ویئر کے کوڈ میں اس کے لحاظ سے ضروری تبدیلیاں نہیں کی گئیں تھیں۔

ایرین 5کے کنٹرول سافٹ ویئر نے پرواز کے دوران 64بٹ فلوٹنگ پوائنٹ کو 16 بٹ سائنڈ انٹیجر ویلیو میں تبدیل کرنے کی کوشش کی جس کے نتیجے میں بفر اوو فلو واقع ہوا اور ہارڈ ویئر مکمل طور پر کریش ہوگیا۔ یاد رہے کہ 64بٹ فلوٹنگ پوائنٹ ، 16 بٹ انٹیجر سے بڑا ہوتا ہے اسی لئے بفر اوور فلو واقع ہوا۔

شمال مشرقی امریکہ میں بلیک آؤٹ

14 اگست 2003ء کو شمال مشرقی اور وسط مشرقی امریکہ سمیت اونٹاریو ، کینیڈا میں بجلی کا زبردست بلیک آؤٹ واقع ہوا۔ اس بلیک آؤٹ کے دوران اونٹاریو، کینیڈا میں 10 ملین اور امریکہ میں مجموعی طور پر 40ملین لوگ جو کہ امریکہ کی کل آبادی کا ساتواں حصہ بنتا ہے، متاثر ہوئے۔ ایک اندازے کے مطابق اس بلیک آؤٹ کی وجہ سے مجموعی طور پر 6 ارب ڈالر سے زیادہ کا نقصان ہوا۔

سسٹم لاگز کے مطابق پاور میں کمی کی ایک زبردست لہر نے ٹرانسمیشن گرڈ کو رات 10:48پر بری طرح سے متاثر کیا۔ صرف دو منٹ بعد بہت سے شہروں میں بجلی غائب ہونے کی رپورٹس موصول ہونا شروع ہوگئی ۔ متاثر ہونے والے شہروں میں نیو یارک سٹی اور نیو جرسی بھی شامل ہیں۔ ایک محتاط اندازے کے مطابق اس بلیک آؤٹ نے چوبیس ہزار مربع کلو میٹرز کے علاقے کو متاثر کیا اور 508پاور جنریٹنگ یونٹس سمیت 265 پاور پلانٹس بند ہوگئے۔ ان میں سے 22 ایٹمی بجلی گھر تھے۔

 یہ بلیک آؤٹ اتنا وسیع تھا کہ بلیک آؤٹ سے متاثرہ اکثر علاقوں میں ملکی وے (Milky Way) کہکشاں اور مصنوعی سیارے نظر آنے لگے۔ عام حالات میں لائٹ پلوشن (Light Pollution) کی وجہ سے یہ نظر نہیں آتے تھے۔

ابتدائی طور پر خیال کیا گیا یہ دہشت گردوں کی کارروائی ہوسکتی ہے۔ لیکن چند ہی گھنٹوں میں یہ ثابت ہوگیا کہ اس میں دہشت گردی کا کوئی عنصر شامل نہیں۔

بجلی کو لمبے عرصے کے لئے محفوظ کرنا آسان امر نہیں۔ عام طور پر بجلی پیداہونے کے ایک سکینڈ سے بھی کم عرصے میں خرچ ہوجاتی ہے۔ اس لئے کسی پاور گرڈ کو فراہم کی جانے والی بجلی اور پاور گرڈ سے صارفین کو سپلائی ہونے والی بجلی میں تناسب ہونا ضروری ہے۔ بصورت دیگر مشکل سے درست ہونے والے مسائل سمیت تباہ کن صورت حال پیدا ہوسکتی ہے۔ ایسی کسی بھی صورت حال سے بچنے کے لئے پاور گرڈ کو بند کردیا جاتا ہے۔

ہائی ٹینشن لائنز جو کہ اونچے ٹاورز کے درمیان لٹک رہی ہوتی ہیں، بہت تیزی سے اپنی لمبائی میں کمی بیشی کرتی ہیں۔ جیسے جیسے ان پر لوڈ بڑھتا جاتا ہے، یہ گرم ہو کر پھیلنا شروع ہوجاتی ہیں اور زمین کی طرف جھکنا شروع ہوجاتی ہیں۔ کسی بھی پاور لائن پر زیادہ سے زیادہ لوڈ کے حساب سے اس کی کم سے کم اونچائی ناپی جاتی ہے۔ پاور لائن کو کسی چیز سے ٹکرا کر شارٹ سرکٹ سے بچانے کے لئے اس کے راستے میں کوئی بھی اونچی چیز بنانے کی اجازت نہیں ہوتی۔ اگر ان کے راستے میں درخت موجود ہو تو انہیں وقت فوقتاً کاٹا جاتا ہے تاکہ وہ اتنے اونچے نہ ہوسکیں کہ شارٹ سرکٹ کا باعث بنیں۔

مذکورہ بالا بلیک آؤٹ میں بھی پہلی345 کلو واٹ کی پاور لائن ایک درخت سے ٹکرا کر بند ہوگئی۔ اس کے بعد یک بعد دیگرے کئی دوسری ہائی ٹینشن پاور لائنز درختوں سے ٹکرا کر تباہ ہوگئیں۔

فرسٹ انرجی نامی کمپنی جسے اس حادثے کا ذمہ دار گردانا جاتا ہے، کیوں کہ اوہائیو میں اس کا پاور جنریٹنگ پلانٹ سب سے پہلے شٹ ڈائون ہوا تھا اور اس نے نہ تو فوری ایکشن لیا اور نہ ہی دوسرے کنٹرول سینٹرز کو اس بات کی اطلاع دی۔

جنرل الیکٹرک انرجی کے یونکس بیسڈ XA/21 سرورز جو کہ کنٹرول سینٹرز کا کام کرتے ہیں، میں موجود ایک بگ کی وجہ سے الارم سسٹم پلانٹ آپریٹرز کو خبردار نہ کرسکا اور مکمل طور پر فیل ہوگیا۔ یکے بعد دیگرے بہت سے دیگر ایسے واقع پیش آئے جنھیں الارم سسٹم کو نوٹس کرتے ہوئے آپریٹرز کو بتانا چاہئے تھا مگر ایسا نہ ہوا۔ 30 منٹ پرائمری سرور بند ہوگیا اور ساری ایپلی کیشنز بیک سرور پر منتقل ہوگئیں جو کہ بالکل اسی صورت حال کے تحت کچھ دیر چلتا رہا ہے پھر وہ بھی بند ہوگیا۔ اس طرح تمام انرجی منیجمنٹ سافٹ ویئر مکمل طور پر بند ہوگئے۔

ہیلی کاپٹر کریش

2جون 1996، شام کے چھ بجے، روئل ایئر فورس کا چینوک ہیلی کاپٹر ZD576 جس میں برطانوی انٹیلی جینس کے اعلیٰ ترین آفیسرز سوار تھے، اسکاٹ لینڈ میں کریش کرگیا۔ تمام سوار افراد موقع پر جاں بحق ہوگئے۔

آفیشل رپورٹس کے مطابق یہ حادثہ پائلٹ کی غلطی کی وجہ سے ہوا۔ لیکن ان رپورٹس کی تصدیق کسی بھی ذرائع سے نہیں ہوتی ۔ کچھ رپورٹس کے مطابق روئل ایئر فورس نے چینوک ہیلی کاپٹر کو اپ گریڈ کیا تھا اور کنٹرول سافٹ ویئر اس اپ گریڈیڈ ہیلی کاپٹر کے ساتھ مطابقت کا مظاہرہ نہیں کررہا تھا۔ اس لئے ہیلی کاپٹر کے کریش ہونے کی وجوہ کچھ بھی ہوں، مگر اس بات پر یقین کیا جاتا ہے کہ اس کریش میں کنٹرول سافٹ ویئر نے بھی اہم کرداد ادا کیا تھا ۔ ……٭