Dynamic software updating
કોમ્પ્યુટર વિજ્ઞાનમાં, ડાયનેમિક સોફ્ટવેર અપડેટિંગ (ડી. એસ. યુ.) એ કાર્યક્રમો જ્યારે ચાલી રહ્યા હોય ત્યારે તેમને અપગ્રેડ કરવા સંબંધિત સંશોધનનું ક્ષેત્ર છે. ડી. એસ. યુ. નો હાલમાં ઉદ્યોગમાં વ્યાપકપણે ઉપયોગ થતો નથી. જોકે, સંશોધકોએ ડી. એસ. યુ. ના અમલીકરણ માટે વિવિધ પ્રકારની પ્રણાલીઓ અને તકનીકો વિકસાવી છે. આ પ્રણાલીઓનું સામાન્ય રીતે વાસ્તવિક દુનિયાના કાર્યક્રમો પર પરીક્ષણ કરવામાં આવે છે. વર્તમાન ઓપરેટિંગ સિસ્ટમ્સ અને પ્રોગ્રામિંગ ભાષાઓ સામાન્ય રીતે ડી. એસ. યુ. ને ધ્યાનમાં રાખીને તૈયાર કરવામાં આવતી નથી. જેમ કે, DSU અમલીકરણ સામાન્ય રીતે કાં તો હાલના સાધનોનો ઉપયોગ કરે છે, અથવા સ્પેશિયાલિટી કમ્પાઇલર્સનો અમલ કરે છે. આ કમ્પાઇલર્સ મૂળ પ્રોગ્રામના શબ્દાર્થને જાળવી રાખે છે, પરંતુ ગતિશીલ રીતે અપડેટ કરી શકાય તેવા પ્રોગ્રામનું નિર્માણ કરવા માટે સ્રોત કોડ અથવા ઓબ્જેક્ટ કોડનું સાધન બનાવે છે. સંશોધકોએ સલામતી અને કામગીરીનું મૂલ્યાંકન કરવા માટે કાર્યક્રમોના ડી. એસ. યુ.-સક્ષમ સ્વરૂપોની સરખામણી મૂળ કાર્યક્રમ સાથે કરી છે. પરિચય કોઈપણ ચાલી રહેલા પ્રોગ્રામને ટુપલ તરીકે વિચારી શકાય છે, જ્યાં વર્તમાન પ્રોગ્રામ સ્થિતિ છે અને વર્તમાન પ્રોગ્રામ કોડ છે. ગતિશીલ સોફ્ટવેર અપડેટિંગ સિસ્ટમો ચાલી રહેલા પ્રોગ્રામને નવા સંસ્કરણમાં રૂપાંતરિત કરે છે. આ કરવા માટે, રાજ્યને પ્રતિનિધિત્વની અપેક્ષાઓમાં રૂપાંતરિત કરવું આવશ્યક છે. આ માટે સ્ટેટ ટ્રાન્સફોર્મર કાર્યની જરૂર છે. આમ, ડી. એસ. યુ. પ્રોગ્રામને તેમાં પરિવર્તિત કરે છે. જો અને માત્ર ત્યારે જ અપડેટ માન્ય માનવામાં આવે છે જો ચાલી રહેલા પ્રોગ્રામને પોઇન્ટ ટુપલ સુધી ઘટાડી શકાય છે જે પ્રોગ્રામના નવા સંસ્કરણના પ્રારંભિક બિંદુથી પહોંચી શકાય છે, પ્રોગ્રામમાં સ્થાન જ્યાં ગતિશીલ અપડેટ થાય છે તેને અપડેટ પોઇન્ટ તરીકે ઓળખવામાં આવે છે. વર્તમાન DSU અમલીકરણ સુધારા બિંદુઓની તેમની સારવારમાં વ્યાપક રીતે બદલાય છે. કેટલીક સિસ્ટમોમાં, જેમ કે અપસ્ટેર અને પોલસ, અમલ દરમિયાન કોઈપણ સમયે અપડેટ થઈ શકે છે. જિનસેંગનું કમ્પાઇલર સુધારા બિંદુઓ માટે સારા સ્થાનોનું અનુમાન કરવાનો પ્રયાસ કરશે, પરંતુ પ્રોગ્રામર-નિર્દિષ્ટ સુધારા બિંદુઓનો પણ ઉપયોગ કરી શકે છે. કિટ્સુન અને એકિડેને વિકાસકર્તાઓને જાતે જ તમામ સુધારા બિંદુઓને સ્પષ્ટ કરવા અને નામ આપવાની જરૂર છે. અદ્યતન પ્રણાલીઓ તેઓ જે પ્રોગ્રામ ફેરફારોને ટેકો આપે છે તેના પ્રકારોમાં અલગ પડે છે. ઉદાહરણ તરીકે, કેસ્પ્લાઇસ માત્ર કાર્યોમાં કોડ ફેરફારોને ટેકો આપે છે, અને રાજ્ય પ્રતિનિધિત્વમાં ફેરફારોને ટેકો આપતું નથી. આનું કારણ એ છે કે કેસ્પ્લાઇસ મુખ્યત્વે સામાન્ય સુધારાઓને બદલે સુરક્ષા ફેરફારોને લક્ષ્ય બનાવે છે. તેનાથી વિપરીત, એકિડેન પ્રોગ્રામને અમલમાં મૂકવા માટે સક્ષમ અન્ય કોઈપણ પ્રોગ્રામમાં અપડેટ કરી શકે છે, ભલે તે એક અલગ પ્રોગ્રામિંગ ભાષામાં લખાયેલ હોય. સિસ્ટમ ડિઝાઇનરો સુધારાઓના અવકાશને મર્યાદિત કરીને મૂલ્યવાન કામગીરી અથવા સલામતીની ખાતરી મેળવી શકે છે. ઉદાહરણ તરીકે, કોઈપણ અપડેટ સલામતી તપાસ અપડેટ્સના અવકાશને મર્યાદિત કરે છે જે તે સલામતી તપાસને પસાર કરે છે. કોડ અને સ્થિતિને પરિવર્તિત કરવા માટે ઉપયોગમાં લેવાતી પદ્ધતિ સિસ્ટમ કયા પ્રકારનાં સુધારાઓને ટેકો આપશે તે પ્રભાવિત કરે છે. ડી. એસ. યુ. સિસ્ટમો, સાધનો તરીકે, વિકાસકર્તાઓ માટે તેમના ઉપયોગમાં સરળતા અને સ્પષ્ટતા પર પણ મૂલ્યાંકન કરી શકાય છે. ઘણી ડી. એસ. યુ. પ્રણાલીઓ, જેમ કે જિનસેંગ, માટે વિવિધ સ્થિર વિશ્લેષણ પસાર કરવા માટે કાર્યક્રમોની જરૂર પડે છે. જ્યારે આ વિશ્લેષણ એવા કાર્યક્રમોના ગુણધર્મો સાબિત કરે છે જે ડી. એસ. યુ. માટે મૂલ્યવાન છે, તેઓ સ્વભાવથી અત્યાધુનિક અને સમજવા માટે મુશ્કેલ છે. ડી. એસ. યુ. સિસ્ટમો કે જે સ્થિર વિશ્લેષણનો ઉપયોગ કરતી નથી, તેમને વિશિષ્ટ કમ્પાઇલરનો ઉપયોગ કરવાની જરૂર પડી શકે છે. કેટલીક ડી. એસ. યુ. પ્રણાલીઓને ન તો સ્થિર વિશ્લેષણની જરૂર પડે છે અને ન તો વિશેષ સંકલનકારોની. ડી. એસ. યુ. પ્રણાલી દ્વારા સુધારવામાં આવતા કાર્યક્રમોને લક્ષ્ય કાર્યક્રમ તરીકે ઓળખવામાં આવે છે. ડી. એસ. યુ. પ્રણાલીઓના શૈક્ષણિક પ્રકાશનોમાં સામાન્ય રીતે કેસ સ્ટડી તરીકે કેટલાક લક્ષિત કાર્યક્રમોનો સમાવેશ થાય છે. વીએસએફટીપીડી, ઓપનએસએસએચ, પોસ્ટગ્રેએસક્યુએલ, ટોર, અપાચે, જીએનયુ ઝેબ્રા, મેમકચેડ અને રેડિસ એ વિવિધ સિસ્ટમો માટે ગતિશીલ સુધારા લક્ષ્યાંકો છે. કેટલાક પ્રોગ્રામ્સ ગતિશીલ અપડેટિંગને ધ્યાનમાં રાખીને લખવામાં આવતા હોવાથી, હાલના પ્રોગ્રામ્સને રીટ્રોફિટિંગ કરવું એ વ્યવહારુ ઉપયોગ માટે DSU સિસ્ટમનું મૂલ્યાંકન કરવાનું મૂલ્યવાન માધ્યમ છે. સંબંધિત ક્ષેત્રો ગતિશીલ સુધારા દ્વારા સંબોધવામાં આવેલી સમસ્યાની જગ્યાને અન્ય કેટલાકના આંતરછેદ તરીકે વિચારી શકાય છે. ઉદાહરણોમાં ચેકપોઇન્ટિંગ, ડાયનેમિક લિંકિંગ અને દ્રઢતાનો સમાવેશ થાય છે. ઉદાહરણ તરીકે, એક ડેટાબેઝ કે જે તેના ઓન-ડિસ્ક ફાઇલ ફોર્મેટની અગાઉની આવૃત્તિઓ સાથે પછાત-સુસંગત હોવું જોઈએ, તે ડાયનેમિક અપડેટિંગ સિસ્ટમથી અપેક્ષિત સમાન પ્રકારનું સ્થિતિ પરિવર્તન પૂર્ણ કરવું આવશ્યક છે. તેવી જ રીતે, પ્લગઇન આર્કિટેક્ચર ધરાવતો પ્રોગ્રામ રનટાઇમ પર નવો કોડ લોડ કરવા અને ચલાવવા માટે સક્ષમ હોવો જોઈએ. કેટલીકવાર લોડ અથવા રનટાઇમ પર શરતી રીતે મૃત અથવા પહોંચી ન શકાય તેવા કોડને દૂર કરવા માટે ડાયનેમિક ડેડ-કોડ નાબૂદીના હેતુ માટે પણ સમાન તકનીકોનો ઉપયોગ કરવામાં આવે છે, અને તેના મેમરી પદચિહ્નને ઘટાડવા અથવા ઝડપમાં સુધારો કરવા માટે બાકીના કોડને ફરીથી જોડવામાં આવે છે. ડાયનેમિક સોફ્ટવેર અપડેટિંગનો સૌથી પહેલો અગ્રદૂત બિનજરૂરી સિસ્ટમો છે. બિનજરૂરી વાતાવરણમાં, મુખ્ય પ્રણાલીની નિષ્ફળતાની સ્થિતિમાં સક્રિય ગણતરીઓનું નિયંત્રણ લેવા માટે ફાજલ પ્રણાલીઓ અસ્તિત્વ ધરાવે છે. આ પ્રણાલીઓમાં મુખ્ય મશીન અને ગરમ ફાજલ હોય છે. ગરમ ફાજલ સમયાંતરે પ્રાથમિક પ્રણાલીના ચેકપોઇન્ટ સાથે સીડેડ કરવામાં આવશે. નિષ્ફળતાની સ્થિતિમાં, ગરમ ફાજલનો કબજો થઈ જશે, અને મુખ્ય મશીન નવું ગરમ ફાજલ બની જશે. આ પેટર્નને અપડેટ કરવા માટે સામાન્યીકૃત કરી શકાય છે. અપડેટની સ્થિતિમાં, હોટ સ્પેયર સક્રિય થશે, મુખ્ય સિસ્ટમ અપડેટ થશે, અને પછી અપડેટ કરેલ સિસ્ટમ નિયંત્રણ ફરી શરૂ કરશે. સૌથી જૂની સાચી ડાયનેમિક સોફ્ટવેર અપડેટિંગ સિસ્ટમ DYMOS (ડાયનેમિક મોડિફિકેશન સિસ્ટમ) છે. 1983માં ઇન્સુપ લીના પીએચડી નિબંધમાં રજૂ કરાયેલ, DYMOS એક સંપૂર્ણ સંકલિત સિસ્ટમ હતી જેમાં ઇન્ટરેક્ટિવ યુઝર ઇન્ટરફેસ, મોડ્યુલા વેરિઅન્ટ માટે કમ્પાઇલર અને રનટાઇમ અને સોર્સ કોડની ઍક્સેસ હતી. આનાથી DYMOS વર્તમાન પ્રોગ્રામ સામે સુધારાઓ ટાઇપ-ચેક કરવા સક્ષમ બન્યું. અમલીકરણ DSU સિસ્ટમોએ ચાલી રહેલા પ્રોગ્રામમાં નવો કોડ લોડ કરવો જોઈએ, અને હાલની સ્થિતિને નવા કોડ દ્વારા સમજી શકાય તેવા ફોર્મેટમાં રૂપાંતરિત કરવી જોઈએ. ડી. એસ. યુ. ના ઘણા પ્રેરક ઉપયોગ-કિસ્સાઓ સમય-નિર્ણાયક હોવાથી (ઉદાહરણ તરીકે, જીવંત અને સંવેદનશીલ પ્રણાલી પર સુરક્ષા સુધારા ગોઠવવા), ડી. એસ. યુ. પ્રણાલીઓએ પર્યાપ્ત અદ્યતન ઉપલબ્ધતા પૂરી પાડવી આવશ્યક છે. કેટલીક ડી. એસ. યુ. પ્રણાલીઓ એ સુનિશ્ચિત કરવાનો પણ પ્રયાસ કરે છે કે સુધારાઓ લાગુ કરતા પહેલા સલામત છે. આમાંની કોઈપણ સમસ્યાનો કોઈ એક પ્રમાણભૂત ઉકેલ નથી. લાક્ષણિક રીતે, ડી. એસ. યુ. સિસ્ટમ કે જે એક સમસ્યાના ક્ષેત્રમાં સારું પ્રદર્શન કરે છે તે અન્ય લોકો સાથે ટ્રેડ-ઓફ પર કરે છે. ઉદાહરણ તરીકે, ગતિશીલ સુધારાઓનું પ્રયોગમૂલક પરીક્ષણ સૂચવે છે કે સુધારા બિંદુઓની સંખ્યામાં વધારો કરવાથી અસુરક્ષિત સુધારાઓની સંખ્યામાં વધારો થાય છે. કોડ પરિવર્તન મોટાભાગની ડી. એસ. યુ. પ્રણાલીઓ સુધારાઓ માટે કોડના એકમ તરીકે સબરૂટિનનો ઉપયોગ કરે છે; જો કે, નવી ડી. એસ. યુ. પ્રણાલીઓ સંપૂર્ણ-કાર્યક્રમ સુધારાઓને અમલમાં મૂકે છે. જો લક્ષ્ય પ્રોગ્રામ વર્ચ્યુઅલ મશીન ભાષામાં અમલમાં મૂકવામાં આવે છે, તો VM નવા કોડને લોડ કરવા માટે હાલની માળખાગત સુવિધાનો ઉપયોગ કરી શકે છે, કારણ કે આધુનિક વર્ચ્યુઅલ મશીનો DSU (મુખ્યત્વે ડીબગિંગ) ઉપરાંત અન્ય ઉપયોગના કેસો માટે રનટાઇમ લોડિંગને સપોર્ટ કરે છે. હોટસ્પોટ જેવીએમ રનટાઇમ કોડ લોડિંગને સપોર્ટ કરે છે અને જાવા (પ્રોગ્રામિંગ લેંગ્વેજ) ને લક્ષ્યાંકિત કરતી ડીએસયુ સિસ્ટમ્સ આ સુવિધાનો ઉપયોગ કરી શકે છે. સી અથવા સી + + જેવી મૂળ ભાષાઓમાં, ડી. એસ. યુ. સિસ્ટમો વિશિષ્ટ કમ્પાઇલર્સનો ઉપયોગ કરી શકે છે જે પ્રોગ્રામમાં દિશા નિર્દેશ દાખલ કરે છે. અપડેટ સમયે, આ દિશાને નવીનતમ સંસ્કરણ તરફ નિર્દેશ કરવા માટે અપડેટ કરવામાં આવે છે. જો DSU સિસ્ટમ આ દિશા નિર્દેશોને સ્થિર રીતે દાખલ કરવા માટે કમ્પાઇલરનો ઉપયોગ કરતી નથી, તો તે તેમને દ્વિસંગી પુનર્લેખન સાથે રનટાઇમ પર દાખલ કરે છે. દ્વિસંગી પુનર્લેખન એ કાર્યોને ફરીથી નિર્દેશિત કરવા માટે ચાલી રહેલા મૂળ પ્રોગ્રામની મેમરી છબીમાં નિમ્ન-સ્તરનો કોડ લખવાની પ્રક્રિયા છે. જ્યારે આને પ્રોગ્રામના કોઈ સ્થિર વિશ્લેષણની જરૂર નથી, તે ખૂબ જ પ્લેટફોર્મ-આધારિત છે. એકિડેન અને કિટસુને કાં તો ફોર્ક-એક્ઝેક અથવા ડાયનેમિક લોડિંગ દ્વારા સંપૂર્ણપણે નવો પ્રોગ્રામ શરૂ કરીને નવો પ્રોગ્રામ કોડ લોડ કરે છે. હાલની પ્રોગ્રામ સ્થિતિ પછી નવી પ્રોગ્રામ જગ્યામાં સ્થાનાંતરિત થાય છે. સ્થિતિ પરિવર્તન સુધારા દરમિયાન, કાર્યક્રમની સ્થિતિને મૂળ રજૂઆતમાંથી નવા સંસ્કરણની રજૂઆતમાં રૂપાંતરિત કરવી આવશ્યક છે. આને રાજ્ય પરિવર્તન તરીકે ઓળખવામાં આવે છે. એક કાર્ય જે સ્થિતિ પદાર્થ અથવા પદાર્થોના જૂથને પરિવર્તિત કરે છે તેને ટ્રાન્સફોર્મર કાર્ય અથવા સ્થિતિ ટ્રાન્સફોર્મર તરીકે ઓળખવામાં આવે છે. ડી. એસ. યુ. સિસ્ટમો ક્યાં તો ટ્રાન્સફોર્મર કાર્યોનું સંશ્લેષણ કરવાનો પ્રયાસ કરી શકે છે, અથવા વિકાસકર્તા દ્વારા તેમને જાતે જ પુરવઠો પૂરો પાડવાની જરૂર પડે છે. કેટલીક પ્રણાલીઓ આ અભિગમોનું મિશ્રણ કરે છે, ટ્રાન્સફોર્મર્સના કેટલાક તત્વોનું અનુમાન કરે છે જ્યારે અન્ય પર વિકાસકર્તા ઇનપુટની જરૂર પડે છે. આ ટ્રાન્સફોર્મર વિધેયો કાં તો પ્રોગ્રામની સ્થિતિને આળસથી લાગુ કરી શકાય છે, કારણ કે જૂની આવૃત્તિ સ્થિતિના દરેક ભાગને એક્સેસ કરવામાં આવે છે, અથવા આતુરતાથી, અપડેટ સમયે તમામ સ્થિતિને પરિવર્તિત કરી શકાય છે. આળસુ પરિવર્તન એ સુનિશ્ચિત કરે છે કે અપડેટ સતત સમયમાં પૂર્ણ થશે, પરંતુ ઓબ્જેક્ટ એક્સેસ પર સ્થિર-સ્થિતિ ઓવરહેડ પણ થાય છે. આતુર પરિવર્તન અપડેટના સમયે વધુ ખર્ચ કરે છે, જેમાં તમામ ટ્રાન્સફોર્મર્સ ચાલે છે ત્યારે સિસ્ટમને વિશ્વને રોકવાની જરૂર પડે છે. જો કે, આતુર પરિવર્તન કમ્પાઇલર્સને આળસુ પરિવર્તન સાથે સંકળાયેલા સ્થિર-સ્થિતિ ઓવરહેડને ટાળીને રાજ્યની પહોંચને સંપૂર્ણપણે શ્રેષ્ઠ બનાવવાની મંજૂરી આપે છે. અદ્યતન સલામતી મોટાભાગની ડી. એસ. યુ. પ્રણાલીઓ સુધારાઓ માટે કેટલાક સલામતી ગુણધર્મો બતાવવાનો પ્રયાસ કરે છે. સલામતી તપાસનો સૌથી સામાન્ય પ્રકાર પ્રકાર સલામતી છે, જ્યાં અપડેટને સલામત માનવામાં આવે છે જો તે જૂના રાજ્ય પ્રતિનિધિત્વ પર કાર્યરત કોઈપણ નવા કોડમાં પરિણમતું નથી, અથવા ઊલટું. પ્રકાર સલામતી સામાન્ય રીતે બે ગુણધર્મોમાંથી એક, સક્રિયતાની સલામતી અથવા સહ-સ્વતંત્રતાની સલામતી દર્શાવીને તપાસવામાં આવે છે. જો અપડેટ સમયે કોલ સ્ટેક પર કોઈ અપડેટેડ ફંક્શન અસ્તિત્વમાં ન હોય તો પ્રોગ્રામને સક્રિયતા-સુરક્ષિત માનવામાં આવે છે. આ સલામતી સાબિત કરે છે કારણ કે નિયંત્રણ ક્યારેય જૂના કોડ પર પાછા આવી શકતું નથી જે ડેટાની નવી રજૂઆતોને ઍક્સેસ કરશે. બિન-સ્વતંત્રતા એ પ્રકાર સલામતી સાબિત કરવાની બીજી રીત છે, જ્યાં કોડનો એક વિભાગ સલામત માનવામાં આવે છે જો તે આપેલ પ્રકારની સ્થિતિને એવી રીતે ઍક્સેસ કરતું નથી કે જેના માટે પ્રકાર પ્રતિનિધિત્વનું જ્ઞાન જરૂરી હોય. આ કોડ ચોક્કસપણે રાજ્ય સુધી પહોંચતો નથી એમ કહી શકાય, જ્યારે કે તે અમૂર્ત રીતે રાજ્ય સુધી પહોંચી શકે છે. કોડના કોઈપણ વિભાગમાં તમામ પ્રકારો માટે બિન-સ્વતંત્રતાને સાબિત કરવી અથવા નકારી કાઢવી શક્ય છે, અને ડી. એસ. યુ. સિસ્ટમ જિનસેંગ પ્રકાર સલામતી સાબિત કરવા માટે આનો ઉપયોગ કરે છે. જો કાર્ય વિપક્ષ-મુક્ત સાબિત થાય છે, તો તે સ્ટેક પર જીવંત હોય તો પણ તેને અપડેટ કરી શકાય છે, કારણ કે તે જૂની રજૂઆતનો ઉપયોગ કરીને સ્થિતિને ઍક્સેસ કરીને પ્રકાર ભૂલનું કારણ બનશે નહીં. હેડન એટ અલ દ્વારા સહ-સ્વતંત્રતા અને સક્રિયતાની સલામતીનું પ્રાયોગિક વિશ્લેષણ. દર્શાવે છે કે બંને તકનીકો સૌથી વધુ સાચા સુધારાઓને મંજૂરી આપે છે અને મોટાભાગના ખોટા સુધારાઓને નકારે છે. જો કે, મેન્યુઅલી અપડેટ પોઇન્ટ પસંદ કરવાથી શૂન્ય અપડેટ ભૂલો પરિણમે છે, અને હજુ પણ વારંવાર અપડેટની ઉપલબ્ધતાને મંજૂરી આપે છે. હાલની પ્રણાલીઓ DYMOS DYMOS નોંધપાત્ર છે કારણ કે તે સૌપ્રથમ પ્રસ્તાવિત DSU પ્રણાલી હતી. ડીવાયએમઓએસમાં મોડ્યુલાના વ્યુત્પન્નમાં લખાયેલા પ્રોગ્રામ્સ માટે સંપૂર્ણ સંકલિત વાતાવરણનો સમાવેશ થાય છે, જે સિસ્ટમને આરઈપીએલની જેમ આદેશ દુભાષિયો, સ્રોત કોડ, કમ્પાઇલર અને રનટાઇમ વાતાવરણની ઍક્સેસ આપે છે. DYMOS માં, ક્રિયાપ્રતિક્રિયા વાતાવરણમાં આદેશ ચલાવતા વપરાશકર્તા દ્વારા સુધારાઓ શરૂ કરવામાં આવે છે. આ આદેશમાં ક્યારે સુધારો થઈ શકે છે તે સ્પષ્ટ કરતા નિર્દેશો શામેલ છે, જેને ક્યારે-શરતો કહેવાય છે. DYMOS માટે ઉપલબ્ધ માહિતી તેને ચાલી રહેલા લક્ષ્ય કાર્યક્રમના સંદર્ભમાં સુધારાઓના પ્રકાર-સુરક્ષાને લાગુ કરવા માટે સક્ષમ બનાવે છે. કેસ્પ્લાઇસ, કેપેચ અને કેગ્રાફ્ટ કેસ્પ્લાઇસ એ ડી. એસ. યુ. સિસ્ટમ છે જે ફક્ત લિનક્સ કર્નલને લક્ષ્ય બનાવે છે, જે પોતાને વિશિષ્ટ ડી. એસ. યુ. સિસ્ટમ્સમાંની એક બનાવે છે જે લક્ષ્ય પ્રોગ્રામ તરીકે ઓપરેટિંગ સિસ્ટમ કર્નલને ટેકો આપે છે. કેસ્પ્લાઇસ લિનક્સ કર્નલની વર્તમાન અને અદ્યતન આવૃત્તિઓ વચ્ચેના ફેરફારો નક્કી કરવા માટે સ્રોત-સ્તરના તફાવતોનો ઉપયોગ કરે છે, અને પછી ચાલી રહેલા કર્નલમાં ફેરફારો દાખલ કરવા માટે દ્વિસંગી પુનર્લેખનનો ઉપયોગ કરે છે. કેસ્પ્લિસની જાળવણી તેના મૂળ લેખકો, કેસ્પ્લિસ ઇન્ક દ્વારા સ્થાપિત વ્યાવસાયિક સાહસ દ્વારા કરવામાં આવી હતી, જેને જુલાઈ 2011માં ઓરેકલ કોર્પોરેશન દ્વારા હસ્તગત કરવામાં આવી હતી. કેસ્પ્લાઇસનો ઉપયોગ વ્યવસાયિક ધોરણે અને ફક્ત ઓરેકલ લિનક્સ વિતરણમાં થાય છે. એસયુએસઈએ જીવંત કર્નલ પેચિંગ માટે ઓપન-સોર્સ વિકલ્પ તરીકે કેગ્રાફ્ટ વિકસાવ્યું હતું અને રેડ હેટે કેપેચ સાથે પણ આવું જ કર્યું હતું. તેઓ બંને કાર્ય-સ્તરના ફેરફારોને ચાલી રહેલા લિનક્સ કર્નલ પર લાગુ કરવાની મંજૂરી આપે છે, જ્યારે એફ. ટી. આર. એ. સી. દ્વારા સ્થાપિત જીવંત પેચિંગ પદ્ધતિઓ પર આધાર રાખે છે. કેક્રાફ્ટ અને કેપેચ વચ્ચેનો પ્રાથમિક તફાવત એ છે કે જ્યારે હોટ પેચ લાગુ કરવામાં આવે છે ત્યારે તેઓ અપડેટ કરેલા કોડ વિભાગોની રનટાઇમ સુસંગતતાની ખાતરી કરે છે. કેગ્રાફ્ટ અને કેપેચ અનુક્રમે એપ્રિલ 2014 અને મે 2014 માં લિનક્સ કર્નલ મેઇનલાઇનમાં સમાવેશ કરવા માટે રજૂ કરવામાં આવ્યા હતા, અને લાઇવ પેચિંગ માટેના લઘુતમ પાયાને કર્નલ વર્ઝન 4 માં લિનક્સ કર્નલ મેઇનલાઇનમાં મર્જ કરવામાં આવ્યા હતા, જે 12 એપ્રિલ, 2015 ના રોજ રજૂ કરવામાં આવ્યા હતા. એપ્રિલ 2015 થી, લિનક્સ કર્નલ મેઇનલાઇન દ્વારા પૂરા પાડવામાં આવેલ સામાન્ય લાઇવ પેચિંગ કોરમાં કેપેચ અને કેગ્રાફ્ટને પોર્ટ કરવા પર કામ ચાલી રહ્યું છે. જો કે, કાર્યોના મૂળ અને પેચ કરેલા સંસ્કરણો વચ્ચેના સલામત સંક્રમણો માટે જરૂરી કાર્ય-સ્તરની સુસંગતતા પદ્ધતિઓના અમલીકરણમાં વિલંબ થયો છે કારણ કે લિનક્સ કર્નલ દ્વારા પૂરા પાડવામાં આવેલ કોલ સ્ટેક્સ એવી પરિસ્થિતિઓમાં અવિશ્વસનીય હોઈ શકે છે જેમાં યોગ્ય સ્ટૅક ફ્રેમ્સ વિના એસેમ્બલી કોડ સામેલ હોય; પરિણામે, પોર્ટિંગ કાર્ય પ્રગતિમાં રહે છે. કર્નલના કોલ સ્ટેક્સની વિશ્વસનીયતામાં સુધારો કરવાના પ્રયાસરૂપે, કર્નલની કમ્પાઇલ-ટાઇમ ઓબ્જેક્ટ ફાઇલોને તપાસવા અને કોલ સ્ટેક હંમેશા જાળવવામાં આવે છે તેની ખાતરી કરવાના હેતુથી એક વિશિષ્ટ સેનિટી-ચેક યુઝરસ્પેસ યુટિલિટી પણ વિકસાવવામાં આવી છે; તે કર્નલ ઓપ્સ સંદેશાઓના ભાગ રૂપે વધુ વિશ્વસનીય કોલ સ્ટેક્સ પ્રાપ્ત કરવાની સંભાવના પણ ખોલે છે. જિનસેંગ જિનસેંગ એક સામાન્ય હેતુ માટેની ડી. એસ. યુ. પ્રણાલી છે. તે એકમાત્ર ડી. એસ. યુ. સિસ્ટમ છે જે વિપક્ષ-સ્વતંત્રતા સલામતી તકનીકનો ઉપયોગ કરે છે, જ્યાં સુધી તેઓ અદ્યતન પ્રકારો માટે કોંક્રિટ ઍક્સેસ ન કરે ત્યાં સુધી તેને સ્ટેક પર જીવંત કાર્યોને અપડેટ કરવાની મંજૂરી આપે છે. જિનસેંગને ઓસીએએમએલમાં સી મધ્યવર્તી ભાષા માળખાનો ઉપયોગ કરીને લખાયેલા સ્રોત-થી-સ્રોત સંકલનકાર તરીકે અમલમાં મૂકવામાં આવે છે. આ કમ્પાઇલર તમામ ફંક્શન કૉલ્સ અને ટાઇપ એક્સેસીસ પર દિશા નિર્દેશ દાખલ કરે છે, જે જિનસેંગને સમગ્ર પ્રોગ્રામના અમલીકરણ માટે સતત-સમય ઓવરહેડ લાદવાની કિંમત પર આળસપૂર્વક સ્થિતિને પરિવર્તિત કરવા માટે સક્ષમ બનાવે છે. જિનસેંગનું કમ્પાઇલર સમગ્ર પ્રારંભિક પ્રોગ્રામ અને ગતિશીલ પેચોના વિપક્ષ-સ્વતંત્રતાના ગુણધર્મોને સાબિત કરે છે. જિનસેંગના પછીના સંસ્કરણો પણ વ્યવહાર સલામતીની કલ્પનાને ટેકો આપે છે. આ વિકાસકર્તાઓને લોજિકલ એકમ તરીકે ફંક્શન કૉલ્સના ક્રમની ટિપ્પણી કરવાની મંજૂરી આપે છે, જે પ્રોગ્રામ સિમેન્ટિક્સનું ઉલ્લંઘન કરતા અપડેટ્સને એવી રીતે અટકાવે છે જે સક્રિયતાની સલામતી અથવા બિન-સ્વતંત્રતાની સલામતી દ્વારા શોધી શકાતી નથી. ઉદાહરણ તરીકે, જિનસેંગના લેખકો દ્વારા તપાસવામાં આવેલી ઓપનએસએસએચની બે આવૃત્તિઓમાં, મહત્વપૂર્ણ વપરાશકર્તા ચકાસણી કોડને અનુક્રમમાં કહેવાતા બે કાર્યો વચ્ચે ખસેડવામાં આવ્યો હતો. જો પ્રથમ કાર્યનું પ્રથમ સંસ્કરણ ચલાવવામાં આવ્યું હોય, તો સુધારો થયો હોય અને બીજા કાર્યનું નવું સંસ્કરણ ચલાવવામાં આવ્યું હોય, તો પછી ચકાસણી ક્યારેય કરવામાં આવશે નહીં. આ વિભાગને વ્યવહાર તરીકે ચિહ્નિત કરવાથી ખાતરી થાય છે કે સુધારાથી ચકાસણી થતી અટકશે નહીં. અપસ્ટેર અપસ્ટેર એ એક ડી. એસ. યુ. સિસ્ટમ છે જે એક અનન્ય અપડેટિંગ મિકેનિઝમ, સ્ટેક રિકન્સ્ટ્રકશનનો ઉપયોગ કરે છે. અપસ્ટેર સાથે પ્રોગ્રામને અપડેટ કરવા માટે, વિકાસકર્તા કોઈપણ સંભવિત સ્ટૅક ફ્રેમ્સ વચ્ચે મેપિંગને સ્પષ્ટ કરે છે. અપસ્ટેર આ મેપિંગનો ઉપયોગ કોઈપણ સમયે પ્રોગ્રામને તાત્કાલિક અપડેટ કરવા માટે કરી શકે છે, કોઈપણ સંખ્યામાં થ્રેડો સાથે, અને કોઈપણ કાર્યો સ્ટેક પર જીવંત રહે છે. પોલસ પોલસ એ સી માટે દ્વિસંગી-પુનઃલેખન ડી. એસ. યુ. પ્રણાલી છે જે તેમના અમલીકરણના કોઈપણ તબક્કે બિનપરિવર્તિત કાર્યક્રમોને અપડેટ કરવામાં સક્ષમ છે. કાર્યોને અપડેટ કરવા માટે, તે લક્ષ્ય કાર્યની પ્રસ્તાવના નવા કાર્ય પર રીડાયરેક્ટ કરવા માટે ફરીથી લખે છે, આ રીડાયરેક્શન્સને બહુવિધ આવૃત્તિઓ પર સાંકળ કરે છે. આ એવા કાર્યોમાં સ્થિર-સ્થિતિ ઓવરહેડને ટાળે છે જે અપડેટ કરવામાં આવ્યાં નથી. કટાના કટાના એ એક સંશોધન પ્રણાલી છે જે વપરાશકર્તા-મોડ ઇએલએફ દ્વિસંગી માટે મર્યાદિત ગતિશીલ સુધારા (કેસ્પ્લાઇસ અને તેના કાંટાની જેમ) પ્રદાન કરે છે. કટાના પેચિંગ મોડેલ ઇએલએફ ઓબ્જેક્ટ્સના સ્તર પર કામ કરે છે, અને આમ જ્યાં સુધી સંકલનનું લક્ષ્ય ઇએલએફ હોય ત્યાં સુધી તે ભાષા-અજ્ઞેયવાદી બનવાની ક્ષમતા ધરાવે છે. કિટ્સુન અને એકિડેન એકિડેન અને કિટ્સુન એ એક જ ડી. એસ. યુ. પ્રણાલીના બે પ્રકારો છે જે સીમાં લખાયેલા કાર્યક્રમો માટે ડી. એસ. યુ. ની રાજ્ય-સ્થાનાંતરણ શૈલીનો અમલ કરે છે. એક જ કાર્યક્રમની અંદર કાર્યોને અપડેટ કરવાને બદલે, એકિડેન અને કિટ્સુન સમગ્ર કાર્યક્રમો પર સુધારા કરે છે, બે અમલ વચ્ચે જરૂરી સ્થિતિને સ્થાનાંતરિત કરે છે. જ્યારે એકિડેન ફોર્ક-એક્ઝેકના યુનિક્સ રૂઢિપ્રયોગનો ઉપયોગ કરીને નવો પ્રોગ્રામ શરૂ કરીને, લક્ષ્ય પ્રોગ્રામની સ્થિતિને શ્રેણીબદ્ધ કરીને અને તેને સ્થાનાંતરિત કરીને આ પરિપૂર્ણ કરે છે, ત્યારે કિટ્સુન "ઇન-પ્લેસ" સ્ટેટ ટ્રાન્સફર કરવા માટે ડાયનેમિક લિંકિંગનો ઉપયોગ કરે છે. કિટ્સુન એકિડેનના કોડબેઝમાંથી લેવામાં આવ્યું છે, અને તેને એકિડેનનું પછીનું સંસ્કરણ ગણી શકાય. એકિડેન અને કિટસુને પણ નોંધપાત્ર છે કે તેઓ મુખ્યત્વે વિશિષ્ટ રનટાઇમ અથવા કમ્પાઇલર્સને બદલે એપ્લિકેશન-સ્તરના પુસ્તકાલયો તરીકે અમલમાં મૂકવામાં આવે છે. જેમ કે, એકિડેન અથવા કિટસ્યુનનો ઉપયોગ કરવા માટે, એપ્લિકેશન ડેવલપરે જાતે જ સ્થાનાંતરિત કરવાની સ્થિતિને ચિહ્નિત કરવી આવશ્યક છે, અને પ્રોગ્રામમાં જાતે જ બિંદુઓ પસંદ કરવા જોઈએ જ્યાં અપડેટ થઈ શકે છે. આ પ્રક્રિયાને સરળ બનાવવા માટે, કિટસુને એક વિશિષ્ટ કમ્પાઇલરનો સમાવેશ કરે છે જે સ્ટેટ ટ્રાન્સફોર્મર્સ લખવા માટે ડોમેન-વિશિષ્ટ ભાષાનો અમલ કરે છે. એર્લાંગ એર્લાંગ ડાયનેમિક સોફ્ટવેર અપડેટિંગને સપોર્ટ કરે છે, જોકે આને સામાન્ય રીતે "હોટ કોડ લોડિંગ" તરીકે ઓળખવામાં આવે છે. એર્લાંગને સુધારાઓ પર કોઈ સલામતીની બાંયધરીની જરૂર નથી, પરંતુ એર્લાંગ સંસ્કૃતિ સૂચવે છે કે વિકાસકર્તાઓ રક્ષણાત્મક શૈલીમાં લખે છે જે સુધારા દ્વારા પેદા થતી પ્રકારની ભૂલોને આકર્ષક રીતે સંભાળશે. પાઇમોલ્ટ પાઇમોલ્ટ એ પાયથોનમાં લખાયેલ ગતિશીલ સુધારા માટેનું પ્રોટોટાઇપિંગ પ્લેટફોર્મ છે. તે અન્ય પ્રણાલીઓમાંથી ઘણી તકનીકો એકત્રિત કરે છે, જે તેમના સંયોજન અને રૂપરેખાંકનને મંજૂરી આપે છે. આ મંચનો ઉદ્દેશ વિકાસકર્તાઓને તેમની જરૂરિયાતો માટે વધુ યોગ્ય લાગતી સુધારા તકનીકો પસંદ કરવા દેવાનો છે. ઉદાહરણ તરીકે, કિટસુને અથવા એકિડેનની જેમ એપ્લિકેશનનો સંપૂર્ણ કોડ બદલતી વખતે જિનસેંગની જેમ રાજ્યના આળસુ અપડેટને જોડી શકાય છે. માઈક્રોસોફ્ટ વિઝ્યુઅલ સી + + માઈક્રોસોફ્ટ માઈક્રોસોફ્ટ વિઝ્યુઅલ સી + + માટે આંતરિક પેચિંગ તકનીકનો ઉપયોગ કરી રહ્યું છે જે પેચની કાર્યાત્મક શુદ્ધતા જાળવી રાખીને વ્યક્તિગત સી + + કાર્યોને પેચિંગને સપોર્ટ કરે છે. હાલમાં જાણીતી એપ્લિકેશનો એઝ્યુર એસક્યુએલ ડેટાબેઝમાં એસક્યુએલ સર્વર છે. પર્સિસ્ટન્સ (કોમ્પ્યુટર સાયન્સ) રનટાઇમ વેરિફિકેશન સંદર્ભો બાહ્ય કડીઓ કેસ્પ્લિસ હોમપેજ કેસ્પ્લિસ સોર્સ કોડ જિનસેંગ પ્રોજેક્ટ પેજ અને સોર્સ કોડ/અપસ્ટેર પેપર/પોલસ પેપર હોમપેજ એર્લાંગ હોમપેજ કટાના હોમપેજ વિઝ્યુઅલ સી + + પેચિંગ સિસ્ટમ એડમિનિસ્ટ્રેશન પર વ્હાઇટપેપર બ્લોગ પોસ્ટ