Լինուս Տորվալդսի “Just for Fun” գրքից։

Ոմանք կապում են իրենց կյանքի կոնկրետ ժամանակահատված քշած մեքենաների հետ, աշխատանքի հետ, ապրած տեղերի կամ այն մարդկանց հետ ովքեր եղել են իրենց սիրային օբյեկտը: Ես նախընտրում եմ իմ տարիները նշանավորեմ համակարգիչներով:

Երեխա ժամանակ ես ունեի ընդամենը երեք համակարգիչ։ Առաջինը՝ Commodore VIC-20 էր, որը ես ժառանգեցի իմ պապից։

Դա առաջին «տնային» համակարգիչներից մեկն էր, որն այսօրվա PC-ների նախապապն է: Commodore 64-ը դարձավ մեծ եղբայր VIC-20-ին, որին հաջորդեց Amiga-ն, որը բավականին հայտնի էր Եվրոպայում։ Այդ համակարգիչները այնքան հայտնի չէին, ինչպես PC-ն կամ նույնիսկ Apple II- ը, որը արդեն տարածված էր, երբ ես VIC- ի հետ էի խաղում:

PC-ի տարածումից առաջ, այդ օրերին, «տնային» համակարգիչների ծրագրավորման մեծ մասը կատարվում էր հավաքման լեզվով: Համակարգիչները ունեին տնային պայմաններում աշխատող իրենց սեփական համակարգը՝ DOS- ի համարժեքը համակարգչում: Կախված համակարգչից, այն կամ ռուդիմենտային ձևաչափ էր, կամ մի փոքր ավելի բարելավված:

DOS- ի նման, OS-ն ուներ ծրագրի բեռնիչ և հիմնական լեզվական միջավայր: Այն ժամանակ չկային ստանդարտներ, և մի շարք ընկերություններ ցանկանում էին վերահսկել շուկան: Commodore-ը դրանցից ամենաճանաչվածն էր:

Երբ ես արդեն վերցրել էի հնարավորինս ամեն ինչ VIC-20- ից, ես սկսեցի գումար խնայել հաջորդ սերնդի մոդելը գնելու համար:

Դա իմ կյանքի մեծ գործերից էր: Իմ ճանապարհը դեպի երկրորդ համակարգիչ մի բան էր, որը դժվար է մոռանալ: Ես գումար էի հավաքում տարբեր եղանակներով՝ Սուրբ Ծննդյան տոնի և ծննդյանս տոնի նվերները դոլլարով էի խնդրում, ամառները աշխատում էի՝ Հելսինկիի պուրակներն էի մաքրում։ Իրականում ես ամառային աշխատանքները չէի սիրում, բայց ստիպված էի կատարում։ Ընդհանուր առմամբ, ես, հավանաբար, ավելի շատ գումար էի ավելացնում խնայողություններիս վրա դպրոցական կրթաթոշակներից, որոնք ստանում էի պարզապես նրա համար, որ լավ մաթեմատիկա գիտեի:

1986 կամ 1987 թվականն էր: Ես տասնվեց կամ տասնյոթ տարեկան էի: Ես անսահման ժամանակ անցկացրեցի ոլորտը ուսումնասիրելով, նախքան որոշեցի, թե որ համակարգիչը գնել:

Տորվալդսը՝ պատանի տարիքում

Ես ընտրեցի Sinclair QL-ը, որը ձեզանից շատերը հավանաբար այնքան երիտասարդ են, որ անգամ չեն հիշի։ Sinclair-ը «տնային» օգտագործման շուկայում առաջին 32-բիթանոց համակարգիչն էր: Այն ուներ ծրագրավորման համակարգ, որը կոչվում էր Q-DOS:

Այդ ժամանակից ի վեր, սիրտս վկայում էր, որ այն գրվել է հատուկ Sinclair համակարգչի համար: Ինձ ամենից շատ զարմացրեց այն, որ օպերացիոն համակարգգը կարող էր անել մի քանի առաջադրանք միեւնույն ժամանակ՝ կարող էր միանգամից բազմաթիվ ծրագրեր կարդալ:

Համակարգիչը պարունակում էր 8 MHz 68008 չիպ, որը Motorola-ի 68000 չիպի երկրորդ և էժան տարբերակն էր: Այն ուներ 128 կիլոբայթ հիշողություն`ոչ մեգաբայթ, ինչը հսկայական էր «տնային» Համակարգիչի համար: Համեմատելու համար VIC-20-ը ուներ ընդամենը 3 կիլոբայթ հիշողություն:

Եվ քանի որ Sinclair-ը 32-բիթանոց Համակարգիչ էր, այն կարող էր օգտագործել ամբողջ հիշողությունը`առանց որևէ խնդրի ընդհանրապես, ինչը այն ժամանակ հրաշք էր: Դրա պատճառով էի ես ուզում Sinclair գնել: Տեխնոլոգիան հետաքրքիր էր, և ես սիրում էի CPU- ն:

Ես հույս ունեի, որ համակարգիչը զեղչով կգնեմ այն խանութում, որտեղ ընկերներիցս մեկը ճանաչում էր տերերին, բայց դա կարող էր երկար տևել, և ես այն գրադարանից գնեցի 2000 դոլարով։

Ես ընդունում եմ, որ դեռևս 1987 թ.-ին ես գնեցի QL-ը նաև այն պատճառով , որ այն շատ լավ տեսք ուներ: Այն փայլուն սև էր, սև ստեղնաշարով: Եվ, Աստված իմ, այն ընդգծված անկյուննե՛ր ուներ։

Այսպիսով, ես ծախսեցի մոտ $2000 Sinclair QL-ը ձեռք բերելու համար: Իմ նոր համակարգչով ես ծրագրավորման նախագծեր էի կազմում մեկը մյուսի հետևից, անընդհատ հետաքրքրաշարժ բաներ էի փնտրում: Ես ձեռքիս տակ ունեի Forth-ի ինտերպրետատորը եւ կոմպիլյատորը, մեղմ ասած՝ խաղալու համար։ Forth-ը տարօրինակ եւ անօգտակար լեզու էր, որն այլևս ոչ ոք չի օգտագործում։ EEPROM քարտը (Electrically Erasable and Programmable Read Only Memory) առաջին հավելումներից մեկն էր, որ ես գնեցի համակարգչիս համար, ինչը ինձ հնարավորություն տվեց ծրագրավորման գործիքներ (tools) ստեղծել առանց RAM-ը (Random Access Memory) օգտագործելու։


Ի՞նչն ինձ ստիպեց հետաքրքրվել օպերացիոն համակարգերով։ Ես գնեցի floppy կոնտրոլեր, որպեսզի պարտադրված չլինեմ օգտագործել միկրոդրայվերը (microdrives)։ Սակայն դրայվերը, որ եկել էր floppy կոնտրոլերի հետ շատ վատն էր, ուստի ես սկսեցի ստեղծել իմ սեփականը:

Դրայվերը գրելու գործընթացում ես գտա որոշ բագեր (վրիպակներ) QL-ի օպերացիոն համակարգում: Ես հասկացա, որ կան բագեր քանի որ իմ գրած դրայվերը չէր աշխատում:

Իմ կոդը, հմ, միշտ կատարյալ է: Այսպիսով, ես ներխուժեցի ներս եւ ապամոնտաժեցի օպերացիոն համակարգը:

Կարելի էր գնել գրքեր, որոնք պարունակում են օպերացիոն համակարգի կոդի կտորների նկարագրություն։ Դրա հետ մեկտեղ նաև անհրաժեշտ է ունենալ դիզասեմբլեր (disassembler)՝ գործիք, որը մեքենայական կոդը թարգմանում է ասեմբլերի լեզվի։ Ինձ համար աշխատանքը ավելի հեշտ դարձավ որովհետև ես ունեի իմ սեփական դիզասեմբլերը։

Հաճախ ես օգտագործում է դիզասմբլերը ոչ թե բագ փնտրելու պատճառով, այլ ուղղակի հասկանալու, թե ինչ է կատարվում ծրագրի ներսում։

Ամենից շատ ես ատում էի QL-ն այն պատճառով, որ այն ուներ միայն read-only օպերացիոն համակարգ։ Դուք չէիք կարող փոփոխել այն, բայց նա ուներ հատուկ սողանքներ։ Հատուկ տեղեր, որտեղ կարող էիք տեղադրել ձեր սեփական կոդը՝ որոշակի գործառույթներ փոխելու համար։ Ասածս այն է, որ oպերացիոն համակարգը դնել ROM-ով շատ վատ գաղափար է։ Ավելի հաճելի է, երբ այն կարող ես ամբողջությամբ փոխել։

Ես պետք է ընդլայնեի իմ RAM-ը 128 կիլոբայթից մինչև 640 կիլոբայթ, եւ արեցի դա։ Իրական փորձությունը եկավ այն ժամանակ, երբ ես նոր ասեմբլեր գնեցի, կոդս մեքենայական կոդի թարգմանելու համար (մեկերի և զրոների), և կոդի խմբագիր, որը, ըստ էության, բառ մշակելու ծրագիր է ծրագրավորման համար։

Թե՛ նոր ասեմբլերը, և թե՛ խմբագիրը լավ էին աշխատում, բայց դրանք գտնվում էին միկրոդրայվերի (microdrives) վրա և չէին կարող դրվել EEPROM-ի վրա: Այսպիսով, ես գրեցի իմ սեփական խմբագիրը և ասեմբլերը և օգտագործեցի դրանք իմ բոլոր ծրագրավորման նախագծերի համար:

Երկուսն էլ գրվել էին ասեմբլերով, ինչը աներևակայելի ապուշություն է այսօրվա չափանիշներով: Դա բարդ է և ժամանակատար։ Ասեմբլերով խնդիր լուծելու համար հարյուր անգամ ավելի ժամանակ է պահանջվում, քան C լեզվով, որը, ի դեպ, առկա էր այն ժամանակ:

Ես ավելացրեցի մի քանի հրամաններ բազային ինտերպրետատորում այնպես, որ երբ խմբագրում էի ինչ-որ բան, մեքենան իմ խմբագիրը ավտոմատ աշխատեցնում էր։ Իմ խմբագիրը ավելի արագ էր, քան այն, որ եկել էր հենց մեքենայի հետ։ Հատկապես հպարտ էի, թե ինչ արագ էի կարողանում տպել սիմվոլները էկրանին։ Սովորաբար, նման մեքենայի համար երկար էր տևում սիմվոլների արտապատկերումը էկրանին։

Իմ ահռելի աշխատանքը ստիպեց համակարգչին արագ աշխատել և ես անսահման գոհ էի։

Իմ սիրած բաներից էր նաև իմ Sinclair QL-ի համար խաղերի նմանակներ գրելը։ Իմ սիրած խաղը Asteroids-ն էր, բայց այդպես էլ չկարողացա լավ նմանակ գրել իմ մեքենայի համար։

Հիշում եմ, թե ինչպես էի ասեմբլերով Pac Man-ի նմանակ գրում։ Այնքան էլ արվեստի մարդ չեմ, գրածս Pac Man-ը նման էր իրական Pac Man-ի տգեղ և խեղճ տեսակին։ Չնայած, խաղալ լինում էր, ինչով ես հպարտ էի։ Ես ուղարկեցի կոդը համակարգչային ամսագրերից մեկին և նրանք տպագրեցին այն։ Պետք է խոստովանեմ, խաղեր գրելու համար մի քիչ ավելի տարբեր մտածելակերպ է անհրաժեշտ։ Լավ խաղը պարտադիր չէ ունենա լավ գրաֆիկա կամ արագ աշխատի, կարևորը գրավիչ լինի, որ անընդհատ քեզ կպահի խաղի մեջ։ Այն պետք է միտք ունենա, սյուժե, որը զարգանում է խաղալուն զուգահեռ։

Երեք տարի անց, ես և Sinclair QL-ը որոշեցինք բաժանվել։ Լավ, համարյա բաժանվել։ 68008-ը բավականաչափ լավ պրոցեսոր էր, բայց ես ուսումնասիրում էի հաջորդ սերնդի 68020 պրոցեսորը, որը կատարում էր հիշողության կառավարում և էջագրում (paging)։

Նոր CPU-ն գնելու փոխարեն ես վորոշեցի տրանսֆորմացիայի ենթարկել իմ 68008-ը, և ինքնուրույն ստեղծել հիշողության կառավարում և էջագրում։

Դրա համար ես պետք է վաճառեի իմ QL-ի անպետք մասերը, նորերը գնելու համար։ Ես տեղադրեցի հայտարարություն համակարգչային ամսագրում և սկսեցի աղոթել, որ գոնե մի հոգի հետաքրքրվի: Եվ այդպես ես հանդիպեցի իմ լավ ընկերոջ՝ Յուկո Վիերումակիի (Jouko Vierumaki) հետ, ով հավանաբար Ֆինլանդիայում երկրորդ մարդն էր, ով ուներ Sinclair QL։ Նա գնեց ինձանից մի քանի համակարգչային մաս և ծանոթացրեց ինձ snooker-ին։

Թարգմանությունը՝ Code Republic-ի

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here