իւնիքս պրոցեսները ունենում են վիճակ։ օրինակ, կարող են լինել կանգնեցուած, կամ տուեալ պահին գործող։ կարող են լինել վրիպազէրծուող։

իսկ կարող են ունենալ պրոցեսների աղիւսակի մէջ որպէս D նշուած վիճակ, որի մասին ձեռնարկում ասւում ա՝ uninterraptible I/O wait։

ու uninterraptible ա այն բառացիօրէն՝ այն չի լինում ընդհատել։

հարցն այն ա, որ պրոցեսը՝ որը ծրագիր ա կատարման ընթացքում, անում ա տարբեր գործողութիւններ՝ օրինակ ինչ֊որ տուեալներ ա ստանում եւ մշակում։ մշակելու ալգորիթմը ձեւակերպում ա ծրագրաւորողը, իսկ ինչպէ՞ս ա տուեալներ ստանում՝ օրինակ դիսկից, կամ համացանցից։

դիսկից կամ համացանցից կարդալ ամէն ծրագիրը չպիտի կարողանայ՝ էդ օհ֊ի պարտականութիւնն ա՝ դիսկից մի բան կարդալ ու տալ ծրագրին։

այդ պատճառով ծրագիրը կանչում ա, դիցուք read() օհ֊ի API֊ի կանչ, ու երբ այն կանչում ա այդ ֆունկցիան, բնական ա, պիտի սպասի, մինչեւ օհ֊ը կարդայ, դիցուք մի բայթ, դիսկի որեւէ ֆայլից, ու տայ ծրագրին։ այս պահին արդէն ծրագիրը գործ չի անում՝ անում ա գործ կերնելը՝ միջուկը։

զի ժամանակակից օպերացիոն համակարգերը պետութեան կամ լուրջ կազմակերպութեան պէս են՝ ծրագիրը չի կարող ցանկացած ռեսուրսի դիմել, ինչպէս ընկերութեան աշխատողը չի կարող տեսնել HR֊ի կամ հաշուապահութեան տուեալները, իսկ ոստիկանութեան աշխատողը չի կարող առանց հատուկ հայցի դիմել փողոցային խցիկներից տուեալներ ստանալու համար։

այսպէս, DOS֊ի ծրագիրը փաստացի կարող էր օգտագործել համակարգի բոլոր հնարաւոր ռեսուրսները։ դա ծրագրին սովորաբար сходило с рук/it could get away with it հաջողւում էր առանց շատ խնդիրների, շնորհիւ նրա, որ այն միակ կատարուող ծրագիրն էր։

աւելի բեթար բարդ վիճակ էր windows95֊ոտ համակարգերում, ուր եւ ակտուալ էին BSOD֊ն ու viral դարձան վիրուսները։

բայց եւ աւելի հին, Unix համակարգերում, նման հարցերը վաղուց ինչ֊որ ձեւ լուծուած էին եւ էդ լուծումները դարձան մէյնսթրիմ այսօր (այլ հարց ա որ դրանք լուծելու այլ ժամանակակից տեսակէտներ կան)։

էսօր սովորական լուծումն այն ա, որ ծրագիրը չի կարող օգտագործել որեւէ ռեսուրս առանց օհ֊ի թոյլտւութեան, զի բոլոր ռեսուրսները՝ ֆայլերը, յիշողութիւնը, նկարչութիւնը (վիդեօ յիշողութիւնը), ցանցը՝ տրամադրում ա միջուկը, հաւանութիւն տալով ծրագրի հայտին, կամ մերժում ա, չի տրամադրում՝ համարելով որ այդ պրոցեսը (որն աշխատում այդ օգտատիրոջ անունից) չի կարող դիմել ռեսուրսի համար, կամ որ աւել ռեսուրս իրան չի հասնում՝ չափազանց շատ ա արդէն օգտագործել, եւ այլն։

այսպէս, նիշքից կարդալու համար, նախ պէտք ա օհ֊ին խնդրել այդ նիշքը տրամադրել, իսկ երբ այն թոյլ տայ՝ օկ, բացիր նիշքը, պիտի ամէն անգամ խնդրես օհ֊ին որ կարդայ, ու քեզ ասի ինչ ա մէջը գրուած։ ինքնուրոյն քիթդ խոթել դրա մէջ չես կարող՝ ամէնն արւում ա օհ֊ի միջոցով։

(windows֊ի աշխարհում դա սկսուեց windows nt֊ից, որն աւելի մասնագիտական, ոչ մէյնսթրիմ մայքրոսոֆթի օհ էր։։ իննսունականներին nt օգտագործող ծրագրաւորողները հպարտանում էին որ իրենց կարգիչներն անհամեմատ աւելի անխոցելի էին զանազան վիրուսների հանդէպ, իսկ windows 2000֊ից նոյն մօտեցումը կիրառուեց աւելի մէյնսթրիմ՝ ոչ միայն մասնագէտների համար։ իսկապէս, win{95,98} ընտանիքի օհ֊ի համար վիրուս գրելն առանձնապէս բարդ չէր՝ արա ինչ ուզում ես, ոչ ոք ձեռքերիդ չի խփի։ nt ընտանիքի օհ֊երի համար վիրուս գրելն արդէն էդքան տրիւիալ գործ չէր, բայց ինչպէս տեսնում ենք մինչ այսօր՝ լրիւ իրատեսական։)

հիմա հասանք այն պահին, որ խնդրում ենք օհ֊ից կարդալ բայթ՝ նիշքից։ ասացինք՝ read(), մեր ծրագիրն էս պահին այլեւս սպասում ա։ եթէ սպասելը երկար ա՝ դուք դա նկատում էք՝ ինտերֆէյսը սառում ա, երբ ծրագրաւորողը multithreaded ձեւով չի գրում։ սկսում էք կտացնել տարբեր տեղեր, եւ գիտէք, ձեր կտոցները պահւում են հատուկ բուֆերի մէջ, որը կոչւում ա message queue, որ յետոյ, երբ ծրագիրն վերսկսի աշխատանքը, էդ ձեր message֊ները պրոցես անի։

արեցինք read() ու այս պահին արդէն գնդակը միջուկի դաշտում ա, պիտի սպասենք մինչեւ մի բան վերադարձնի։ իսկ ի՞նչ անի էդ խեղճ միջուկը, եթէ էս պահին ֆայլը հասանելի չի՝ օրինակ դիսկն ա վատացել, ու չի պատասխանում, կամ դիսկը հեռավար ա, ու կապն ա անջատուել, եւ նիշքը չի երեւում։ կամ ցանցային այլ ռեսուրսից ենք օգտւում, ինտերնետ սոքեթից ենք բան կարդում։

էս էն պահն ա, երբ պրոցեսն ընդունում ա uninterraptible I/O wait կարգավիճակ։ ինչի՞ ա uninterraptible՝ հարցն այն ա, որ էդ պրոցեսը սպանել չի լինի, զի միջուկի ներսի կարդացող պրոցեսը, ըստ միջուկի ծրագրաւորողների սպանել չի կարելի։ այդ դէպքում՝ միջուկի պրոցեսի ընդհատումը կը բերի միջուկի յիշողութեան անկանխատեսելի վիճակին, որը կարող ա բերել ընդհանուր օպերացիոն համակարգի անկանխատեսելի վիճակին։ եւ միջուկի նախագծողները համարեցին (բնականաբար) որ աւելի լաւ ա թոյլ չտալ որոշ պրոցեսներ ընդհատել, կամ այդ ընդհատումը կարող ա բերել այն աղէտալի վիճակի, որ աւելի լաւ ա մարդը, եթէ իրան իսկապէս պէտք ա՝ կոճակը սեղմելով կարգիչը վերամեկնարկի։

ինչի՞ կոճակը սեղմելով՝ զի միջուկը ինքը չի կարող ազատուել, հիմնականում, այդ իր միջի չարաբաստիկ պրոցեսից՝ զի միջուկը չի կարող շարունակել նորմալ աշխատանք եթէ ընթերցող պրոցեսն ընդհատի։

հետեւաբար նման համակարգ չի էլ լինի հրամանով(shutdown, poweroff, halt) անջատել։

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

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

դէ մինչ։

#ծրագրաւորում #տեքնոլոգիաներ #գիքոր #սամովար #զուգահեռութիւն #միջուկ #կերնել #իւնիքս #օպերացիոն_համակարգեր #օհ #ծրագրակազմ

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

այսօր էլ էս էպիզոդը դիտեցի, ու մտածեցի՝ տեսէք, երբ լենտան փակում էին՝ անձնակազմը պարզապէս հաւաքուեց, գնաց ռիգա, ու բացուեցին նոր՝ մեդուզա, անուան տակ։

դա նրա շնորհիւ էր, որ լրատուական կայքին շատ բան պէտք չի՝ հիմնականում ազատ տեքնոլոգիաներ են, ու նման կայք կարելի ա մի քանի օրում սարքել։

իսկ երբ եանդէքսն էին ճնշում՝ էդ մարդիկ չէին կարող դուրս գալ, գնալ այլ տեղ, այլընտրանքային եանդէքս բացել, որը իրան էնպէս ա պահելու, որ ինուեստորները փողը չհանեն։ զի իրենք փակ են պահել իրենց նախագծածները, ու այդ փակ կոդը մնում էր նոր եանդէքսին։

էսպէս, մտածում եմ, որ քո կոդը բացելը քեզ նոյնիսկ ապահովագրում ա, շեշտելով ինչքան են կարեւոր ընկերութեան մարդիկ, ու մարդիկ են որ անում են, կազմում են ընկերութիւնը։

նախկին գրառումներն այդ ֆիլմը նշելով՝ սա ու սա։

#ինտերնետ #համացանց #ազատութիւն #խօսքի_ազատութիւն #ազատ_ծա #ծրագրակազմ #կայք #լրատուամիջոց #գրաքննութիւն #ռուսաստան #վաւերագրական #պատմութիւն

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

ապշելու ա, ինչքան ա կարեւոր շուկան ու տնտեսութիւնը։

ես վաղուց զգում էի, որ ազատ ծրագրակազմի շարժումը կարող էր կենսունակ լինել հէնց ամն֊ում, որովհետեւ այդ առաջին ազատ ծա֊ի նմուշները պահանջուած էին, իսկ հեղինակները վատ չէին վաստակում իրենց գրածի տեք․ աջակցութեամբ՝ ազատ ծա աճեցնելու համար պէտք էր զարգացած տնտեսութեան պարարտ հողը։

եւ ահա իմացայ ինչպէս ծնուեց ռուսական «էմբոքս» օպերացիոն համակարգը՝ ինչ֊որ մարդիկ ունէին լինուքսի տակ գրած֊աշխատւղ կոդ, եւ համակարգը պիտի սերտիֆիկացիա անցնէր մինչեւ արդիւնաբերութիւնում ներդրուելը։

բաւական շուտ պարզ եղաւ որ չի լինի լինուքս միջուկը կտրել էնքան, որ տողերի քանակը կրճատուի էն չափով որ լինի այն սերտիֆիկացիա անել ռդ֊ում։

ապա յիշեցին ծանօթների մասին որ ունէին աւտոմատացում կառաւարող կոդ, որն ունէր օհ֊ի մի երկու հատկանիշ եւ առաջարկեցին նախագծողներին դարձնել այն օհ եւ սերտիֆիկացիա անցնել։

նախագծողներն իրենք էլ չէին սպասում որ իրենց գրածն ինչ֊որ մէկին պէտք կը գայ այնչափ, որ կը դառնայ օհ։

այսպէս շուկան, տնտեսութիւնը, կապերը եւ լուծումների պահանջը ստեղծեցին մի նոր նախագիծ։

իսկ մենք ոչ նախանձելի վիճակում ենք ոչ միայն այն պատճառով, որ բաւական «խելացի» չենք, այլ եւ այն, որ չունենք այդ տնտեսութիւնը, չունենք այդ գործերը, որոնց համար պէտք էր գրել այն կոդը, որը, երբ պահանջարկ ստեղծուէր, կը փոխակերպուէր այսպէս կոչուած իրական ժամանակի օպերացիոն համակարգի։

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

կարճ ասած՝ ինչպէս էլեմենտների աղիւսակ ամէն մարդ երազում չի տեսնում, այնպէս էլ նախագծի բախտը բերելու համար պէտք ա այդ բախտի հաւանականոոթիւնը իրատեսական դարձնող միջավայր։

անշուշտ, բախտի բան էր, որ էմբոքսը ստեղծուեց, բայց այդ բախտը բերելու համար նախադրեալներ էին պէտք։

#ծրագրակազմ #նախագծում #օպերացիոն_համակարգեր #էմբոքս #տնտեսութիւն #շուկայ #նախադրեալներ #բախտ #արդիւնաբերութիւն #կապ #պատմութիւն

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

According to Hudson Institute researchers Richard W. Judy and Robert W. Clough, the situation in the Soviet software industry was such that “it does not deserve to be called an industry”.

ըստ հիւդսոնի ինստիտուտի հետազօտողների՝ ռիչարդ ջուդիի եւ ռոբերտ քլոֆի, խորհրդային ծրագրակազմի արդիւնաբերութեան վիճակն այնպիսին էր, որ այն «արժանի չէր կոչուել արդիւնաբերութիւն»։

աղբիւր

#սովետ #սովէտ #խսհմ #մէջբերում #արդիւնաբերութիւն #ծրագրակազմ #պատմութիւն #հետազօտութիւն

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

երէկ social dilemma֊ն եմ դիտել։ հիմնականում անդրադառնում ա մարդու՝ կախուածութիւն ձեռք բերելուն, եւ սոց․ ցանցերի ալգորիթմներին եւ արհեստական բանականութեանը, որը նախագծուած ա էդ կախուածութիւնը ստեղծելու, եւ ներգրաւուածութիւնն աւելացնելու համար։

դրանից մի օֆթոփ միտք՝ միշիկը մինասեանը իմ հասկանալով՝ AI էր աշխատում։ մտածում էր՝ եկէք մեդիայում դիցուք էմօների մասին քննարկում սկսենք։ ու բոլորը վազեցին էմօներից խօսելու՝ մի մասը թէ «վտանգաւոր են հանրութեան եւ իրենք իրենց համար»՝ մի մասն էլ թէ՝ «թողէք խեղճ էրեխեքին հանգիստ»։

ի դէպ, այդ մասին՝ յիշո՞ւմ էք մեր հանրութիւնը ինչ էժան կտեր ա կերել ընդամէնը մի քանի տարի առաջ։ ահա՝ զարգացում։ էսօր արդէն խօսում են էն մասին, թէ արթուր մանուկեանը՝ իմ քայլի պատգամաւորն՝ իրեն տուն ա առել։ ու դէ պարզւում ա որ ժառանգութիւն ստացած տունը վաճառել ա՝ աւելի էժան տուն ա առել, եւ ոչ մի յանցանք՝ բայց երեւի թէ՝ քննարկումների այլ մակարդակ։ էլի էժան ա, անշուշտ, բայց էմօների կամ լգբտ֊ի հետ համեմատելի չի՝ գոնէ կոռուպցիոն ռիսկերի մասին ա։

ու հիմնական միտքս՝ վերջերս habr֊ում յօդուած եմ կարդացել այն մասին որ/ինչու ազատ ծա֊ն սովորաբար զիջում ա ux֊ով եւ ui֊ով՝ սեփականատիրական նախագծերին։

ու social dilemma֊ն դիտելուց յետոյ մտածեցի որ եւ դիասպորան, եւ մաստոդոնը, եւ ջաբերը՝ մարդկանց բարդ են։ մի քանի օր առաջ մէկը գրանցուել ա թթում՝ ու էսօր գրել ա՝ ափսոս, երեւում ա ստեղ միայն դու ես գրում։ որովհետեւ միայն ինձ էր հետեւում, ու չի նկատել որ տեղական եւ համաշխարհային հոսքեր կան՝ առաջադէմ ինտերֆէյսը լռելեայն անջատուած ա։ ես երկար ժամանակ եմ ծախսում, ուղեկցում եմ մարդկանց, երբ հրաւիրում եմ՝ «հիմա տես էստեղ սէնց բան կայ, իսկ սա այսպէս ա աշխատում», ու իրենք շատ հարցեր են ունենում։

ընդհանուր առմամբ՝ նկատեցի որ մեր այլընտրանքային սոցիալական ցանցերն էնպէս են դիզայն արուած, որ չես էլ հասկանում ոնց օգտուել՝ ուր մնաց՝ կպնես։

#դիասպորա #մաստոդոն #սփիւռք #թութ #դիզայն #նախագծում #համացանց #ֆիլմ #անկապ #քաղաքականութիւն #հանրութիւն #պատմութիւն #ծրագրակազմ #ազատ_ծա #ազատութիւն

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

արդէն երկու նոութբուքս անց կացրի #ֆանթու ֊ից #ջենթու ֊ի, ու նկատում եմ որ փորթըջ ծառը ընդհանուր առմամբ աւելի լաւ վիճակում ա ու աւելի քիչ խնդիրներ են լինում։

բայց ասածս այլ ա՝ ջենթու֊ում ինձ մօտ նաեւ աշխատեց #մաելսթրոմ #խաղ֊ը, որ #1992֊ի խաղ ա, ու ես այն խաղացել եմ դեռ redhat-5.2֊ի (չշփոթել rhel֊ի հետ, այն թողարկուել ա #1998֊ի նոյեմբերին) վրայ։

այս խաղը դիստրիբուտիւների մեծամասնութիւնում բացակայում ա՝ չի կազմարկւում ոչ ժամանակակից կոմպիլեատորներով, եւ 64 բիթ համակարգերում, պահանջում ա հին SDL գրադարան։

սակայն ջենթու եբիլդներ կան, որ այն կազմարկում են։ այս հին ծրագրերից նաեւ սիրում եմ xv֊ն։

ու մտածեցի, որ սա նման ա «հին քաղաք» պահելուն, երբ մարդիկ կարող են գնալ, կամ ապրել քաղաքի հին մասում, որը մենթէյն են անում, ու մինչեւ այսօր պահել են։

սա պատմութեան եւ նախկին ժամանակի հետ կապի մասին ա, որը կորցնում ենք ու չենք զգում շատ ժամանակակից քաղաքներում՝ օրինակ երեւանում, եւ նաեւ էն պատճառով որ շատ պատմական ծրագրեր կամ մշակոյթ կապուած են եղել այլ երկաթի կամ օպերացիոն համակարգերի հետ՝ օրինակ աթարիի կամ ամիգայի աշխարհից են։

մաելսթրոմը, xv֊ն ու ուինդոումէյքերը՝ unix աշխարհից են ու դրանք հնարաւոր ա մենթէյն անել, ու այսօր օգտագործել, ու ինձ շատ դուր ա գալիս, որ մարդիկ կան որ դա անում են։ xv֊ն, ի դէպ, 1994֊ի ծրագիր ա, ու էն ժամանակ չկար png ֆորմատը, բայց այսօր այն ունի ժամանակակից փաթչեր եւ սատարում ա նոր նկարների ֆորմատներին, որը շատ հաւէս ա։

#իւնիքս #պատմութիւն #ժառանգութիւն #կապ #լինուքս #մշակոյթ #ծրագրակազմ

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)

այսօր ակտուալ վերջին կայուն միջուկն եմ քաշում (5.6.11) որ հաւաքեմ, ու մտածեցի՝

ազատ ծրագրակազմի հետ գործ ունենալիս չունես էդ նոր վարկածներից վախը՝ զի չեն տանի քեզնից ոչ մի բան, իսկ եթէ տանեն բինար թողարկման մէջ՝ կարող ես հաւաքել այնպէս, որ լինի։ չեն զրկի հնարաւորութիւններից, յաճախ կաշխատի աւելի արագ, աւելի յուսալի, ու ընդհանուր առմամբ դու միշտ կուզես վերջին ստաբիլ վարկածներն ունենալ։ առհասարակ սովորում ես գնահատել նորը, հետաքրքրուել նորով, հետեւել նորին։ ի տարբերութիւն անազատ ծրագրակազմի, երբ կարող ա կառչես հին վարկածներից, ու անհանգիստ լինես։

#ծրագրակազմ #ազատ_ծա #տեքնոլոգիաներ #ազատութիւն

բնօրինակ սփիւռքում(եւ մեկնաբանութիւննե՞ր)