Maombi ya asili ni nini? Programu ya rununu. Maombi ya asili. Hatua za kwanza

Siku moja, ukosefu wa maarifa ya kimsingi juu ya programu za rununu labda itakuwa tabia mbaya. Wakati huo huo, hebu tuzungumze kuhusu aina gani ya maombi kuna. Kuja kutoka mbali, tunaweza kutofautisha aina tatu tu: ni nini programu asili, utumizi wa wavuti na mseto.

Je! unajua maombi asilia ni nini?

Kwa mtumiaji, programu asilia ni zile zinazohitaji usakinishaji. Kwa ujumla, hii ni kweli, kama vile ukweli kwamba programu kama hizo zinatengenezwa mahsusi kwa majukwaa ya rununu (iOS, Android, Simu ya Windows) Kwa hiyo, msanidi anahitajika kuwa na ujuzi wa programu katika mazingira maalum ya maendeleo (xCode ya iOS, kupatwa kwa jua kwa Android).

Matokeo ni ya kupendeza mwonekano na mwingiliano usio na mshono wa programu na OS ya rununu. Programu asili pia iko mbele zaidi ya programu mseto na wavuti inapokuja suala la usalama. Programu kama hizo zilizo na utumiaji mdogo wa rasilimali hutumia kamera, maikrofoni, kipima kasi, kicheza na vitendaji vingine. Kimsingi, programu asilia inaweza kugawanywa katika vikundi viwili: programu zinazohitaji muunganisho wa Mtandao, na programu za nje ya mtandao.

Programu za wavuti ni tofauti na programu asili

Tumia tovuti ya kawaida kwenye simu mahiri bora kesi scenario ni ngumu; mbaya zaidi, mpangilio wa tovuti huanguka, na baada ya hapo haiwezekani kabisa kufanya kazi nayo. Programu za wavuti zinaundwa kwa madhumuni ya kutumia tovuti kutoka kwa simu. Kwa hivyo, kwa asili, hii ni tovuti sawa iliyoboreshwa kwa vifaa vya rununu. Tofauti na programu asili, programu za wavuti hazihitaji kusakinishwa - zinaendeshwa katika kivinjari cha simu yako. Kwa hivyo, kulingana na mfano wa simu (kutoka jukwaa la simu, kuwa sahihi zaidi) hakuna chochote kinachotegemea. Pia, bila kujali jukwaa, programu za wavuti haziwezi kufanya kazi na vitendaji vya simu asili.

Lakini ni nini basi programu asili ikilinganishwa na tovuti ya simu ya mkononi? Mstari kati ya programu ya wavuti na tovuti ya simu ni nyembamba sana. Na katika suala hili, sio watumiaji tu wanaochanganyikiwa, lakini katika hali nyingine watengenezaji wenyewe. Lakini kuna tofauti. Kuzungumza kwa kawaida, tovuti ina maelezo zaidi au machache tuli, na ni kitu kama brosha ya kidijitali. Katika programu ya wavuti, mtumiaji anaweza kudhibiti sehemu fulani ya habari hii - kuunda kurasa mwenyewe, viungo vya kubadilishana, maandishi, n.k.

Hivyo rahisi na programu za wavuti piga kila kitu kinachojulikana kama huduma za mtandaoni. Programu ya wavuti pia inaweza kuitwa kitu ambacho kilifanywa hapo awali katika Flash, na sasa katika HTML5.

Programu za mseto

Programu ya mseto inaitwa mseto kwa sababu inachanganya baadhi ya utendaji wa programu asilia na programu ya wavuti. Huu ni programu-tumizi ya jukwaa ambayo inaweza kufanya kazi na programu ya simu. Programu hizi, kama zile za asili, hupakuliwa kutoka kwa duka la programu, lakini data inasasishwa kiotomatiki. Kwa hiyo, daima wanahitaji uhusiano wa Internet - bila hiyo, kazi za mtandao hazifanyi kazi.

Nini cha kuchagua? programu asili, mseto au wavuti?

Kutengeneza programu mseto ni nafuu na haraka zaidi kuliko kuunda programu asili. Lakini watumiaji hawataona tofauti hata hivyo. Ndiyo maana teknolojia ya mseto maarufu sana. Licha ya ugumu huu wote, kuamua juu ya uchaguzi wa teknolojia kwa ajili ya kuendeleza maombi ni rahisi sana. Ikiwa programu yako haiwezi kufanya kazi bila vitendaji asili vifaa vya simu, ikiwa ni muhimu sana kasi kubwa usindikaji wa data (michezo, mitandao ya kijamii, geolocation), basi huwezi kupata chochote bora kuliko programu ya asili. Wakati kasi inaweza kupuuzwa, maombi ya mseto yanafaa. Programu ya wavuti inapaswa kuundwa wakati mtumiaji haitaji chochote kutoka kwako isipokuwa habari ambayo angeweza kupata kutoka kwa simu yake ikiwa angekuwa na Mtandao.

Ilitafsiriwa kutoka kwa Kiingereza, asili inamaanisha "asili". Programu ya asili imeundwa kwa simu za rununu kwa mfumo maalum wa kufanya kazi. Hii inafanywa na wataalamu ambao wana ujuzi na ujuzi fulani katika eneo hili. Kwa maombi ya asili muundo mzuri, zinaingiliana kwa uhuru na mfumo wa uendeshaji wa simu na zinaweza kufanya kazi kupitia muunganisho wa Mtandao au nje ya mtandao.

Hii ni nini?

Programu asilia ni usanidi unaopatikana kwa jukwaa la kifaa kimoja. Kwa mfano, kuna programu za simu ambazo zimeundwa mahsusi kwa ajili ya majukwaa ya Android au iPhone. Pamoja na maendeleo teknolojia za kisasa, mwonekano maombi mbalimbali(asili, mseto, wavuti) sasa kuna chaguzi za kuchagua. Maombi ya asili yanapakuliwa kupitia duka maalum ( Duka la Programu, Google Play) na imewekwa kwenye simu mahiri.

Upekee ni kwamba zinatengenezwa kwa jukwaa maalum, kwa kutumia lugha za "asili" za programu wakati wa kuziandika. Ikiwa programu imeundwa kwa mfumo maalum wa uendeshaji, inafanya kazi vizuri na inaonekana kikaboni. Kwa kuongezea, programu hutumia kwa urahisi vitendaji vya programu mahiri, kama vile kamera, maikrofoni, kichezaji na kuhifadhi rasilimali za kifaa.

Moja ya wengi mifano maarufu maombi ya asili - Shazam. Inatambua ni wimbo gani unacheza kwenye kifaa kingine. Shazam imesakinishwa kutoka kwa duka, inahitaji ufikiaji wa Mtandao, na inahitaji kinasa sauti cha smartphone kufanya kazi. Instagram ni programu maarufu asilia ambayo inahitaji muunganisho wa Mtandao kufanya kazi.

Kusudi

Programu ya simu V ulimwengu wa kisasa ni njia ya mawasiliano kati ya watu na makampuni. Wanahitajika katika biashara. Kupitia kwao unaweza kuuza huduma au bidhaa, kuwasiliana na wateja, na kuunda muundo wa biashara na washirika. Programu za simu husaidia kuboresha mawasiliano ya ndani ndani ya kampuni. Leo, kupitia maombi ya simu unaweza kusoma magazeti, kujua habari za mwisho, tazama vipindi vya televisheni, sinema. Na hii yote bila kujali wakati wa siku na eneo. Maombi ni njia za kukuza bidhaa na huduma za sasa. Hii ni zana bora ya uuzaji. Kwa kuongeza, kupitia programu za simu unaweza kutembelea mtandao wa kijamii, kuwasiliana na marafiki na kufanya biashara. Upekee ni kwamba watengenezaji wanaweza kutengeneza programu maalum kwa ajili ya simu mahiri, mahususi kwa mradi mahususi.

Ukuzaji wa maombi asilia ya biashara hupitia hatua kuu tatu. Ya kwanza ni kurekebisha tovuti iliyopo kwa smartphone (kuunda programu ya wavuti). Hatua ya pili ni uundaji wa programu za mseto zinazochanganya teknolojia za wavuti na kazi za vifaa vya rununu. Hatua ya tatu ni kuandika maombi asilia ya Simu ya rununu. Ni rasilimali inayohitaji sana, lakini hukuruhusu kutambua uwezekano mfumo wa uendeshaji kifaa na kufikia matokeo yaliyokusudiwa kupitia utendakazi uliopanuliwa wa simu mahiri. Umaarufu wa programu asili hutegemea utendakazi wao wa juu, utatuzi, uthabiti na uwezo wa kufanya kazi bila Mtandao. Upakiaji unaofuata kwenye duka la programu huruhusu msanidi programu kufuatilia takwimu za mauzo. Tumia programu asilia ikiwa unahitaji kuchakata kiasi kikubwa cha data na kasi kubwa kazi.

Aina

Aina za programu za rununu: asili, wavuti na mseto zina mfanano. Za asili zimeandikwa mahsusi kwa mifumo ya uendeshaji kama vile iOS. Android, Shinda Simu. Zinapakuliwa kupitia maduka ya programu na kuzingatia mahitaji yao. Programu asilia hufanya kazi haraka na vizuri, kutokana na uboreshaji wa mifumo mahususi ya uendeshaji. Wana uwezo wa kufikia vipengele vya kifaa. Programu hizi zinaweza kufanya kazi kutoka kwa Mtandao au kwa kujitegemea.

Maombi ya mtandao yana vipengele vya kawaida Na matoleo ya simu tovuti, lakini wamepanua mwingiliano. Zimeundwa ili uweze kutumia tovuti kupitia smartphone. Tofauti yake kuu: programu haina haja ya kusakinishwa. Kazi yote inafanywa kupitia kivinjari. Tofauti kati ya programu asili na ya wavuti ni uwezo wa kudhibiti habari kwa uhuru.

Mseto huchanganya kazi za mbili zilizopita. Programu inafanya kazi na programu ya smartphone kama ni jukwaa-mtambuka. Imepakuliwa kutoka kwa duka la programu, inafanya kazi kupitia mtandao. Programu ya mseto ni maarufu zaidi kati ya watumiaji. Asili hutumiwa ikiwa kasi ya juu ya usindikaji wa habari inahitajika (mitandao ya kijamii, michezo au geolocation). Kumbuka huyo mzawa Programu za Android Haifai kwa iPhone au simu mahiri zilizo na jukwaa lingine.

Faida

Programu asili ina faida kadhaa. Utendaji wa juu, mwingiliano na mfumo maalum wa uendeshaji, matumizi ya chini ya nishati, kumbukumbu ya simu, urahisi wa matumizi. Faida za programu hii ni pamoja na utendaji wa juu na kasi bora kazi, ufikiaji programu smartphone, katika hali nyingine muunganisho wa Mtandao hauhitajiki kwa matumizi. Unaweza kupakua na kusanikisha programu tu kupitia duka maalum.

Mapungufu

Programu asili ina hasara. Inachukua muda mwingi kuendeleza, na gharama ya maombi hayo ni ya juu. Msanidi anahitajika kuwa na ujuzi wa mazingira maalum ya programu. Kwa kuongeza, asili hufanya kazi na mfumo mmoja wa uendeshaji. Ikiwa unahitaji kubadilisha chochote katika programu, lazima utoe sasisho.

Jinsi ya kufunga?

Programu ya asili ya simu imewekwa kwa kuzingatia mfumo wa uendeshaji wa smartphone. Kuchagua maombi yanayohitajika, nenda kwenye duka lolote, kama vile Google Play, na uchague linalofaa. Pakua na usakinishe. Kwa ujumla, programu itafanya kazi mradi tu kuna muunganisho wa Mtandao. Ikiwa usakinishaji utashindwa, angalia uwezo wa kumbukumbu wa smartphone yako. Inapaswa kutosha kwa ajili ya ufungaji.

Msimbo wa asili

Je, "programu asili" inamaanisha nini? Kwa wengi, kifungu hiki kitaonekana kipya, lakini kwa kweli, karibu kila kitu watumiaji wa kisasa gadgets zinakabiliwa nayo kila siku. Kwa operesheni sahihi watengenezaji huandika kuhusu programu asilia kanuni maalum. Mfumo huu wa amri lugha ya mashine, ambayo itafasiriwa na smartphone. Maagizo yaliyomo kwenye programu yataruhusu mtumiaji kutambua uwezo wake nguvu kamili. Amri zinazotolewa na msanidi zinaweza kuwa za urefu na safu tofauti. Programu asilia ni za haraka kwa sababu ya msimbo wao mnene lakini mdogo.

Programu hizi ni Java. Inatoa watengenezaji fursa kubwa. Mchanganyiko wake na urahisi hukuruhusu kuunda haraka iwezekanavyo rahisi maombi ya biashara. Jambo jema kuhusu maendeleo ya Java ni kwamba zana zake zinapatikana kwenye mifumo yote ya uendeshaji ya PC, ambayo ni pamoja na Linux na MacOS. Ikiwa unataka kukuza programu kwa kutumia Lugha ya Java, utahitaji kompyuta inayoendesha inayoendesha MacOS X. Asili Programu ya iOS hutofautiana na Android katika muda unaotumika kwenye usanidi.

Bei

Mbuni wa bure wa programu asilia za rununu husaidia watumiaji kuunda wenyewe. Kuna idadi kubwa ya wabunifu kwenye mtandao. Maarufu zaidi na wanaojulikana ni My-apps, Net2Share, BuildApp, MobiumApps, Appsa4u. Kwa mfano, kijenzi cha My-apps hukusanya kwa kujitegemea programu ya mifumo ya uendeshaji mifumo ya iOS na Android. Watumiaji wanaweza kuchagua moja ya kumi templates tayari, kulingana na madhumuni ya maombi. Matokeo ya mwisho yanaweza kuchapishwa kwenye duka ili kupakua.

Ukuzaji kamili wa programu asili sio nafuu. Kabla ya kuipanga, amua juu ya bajeti yako. Inapaswa kujumuisha fedha za kukuza bidhaa iliyokamilishwa na maendeleo yenyewe. Ikiwa programu imeandaliwa kwa mifumo mingi ya uendeshaji, gharama yake huongezeka mara mbili. Ni kuhusu kuhusu maendeleo kwa vyombo vya kisheria, Kwa mfano, makampuni ya biashara. Programu mseto zinagharimu 30% zaidi ya programu asili, wakati programu za wavuti bei ya chini kwa sababu ya msingi mmoja wa nambari, kwa hivyo ni faida zaidi kuziendeleza kuliko za asili.

Kuunda programu asilia kila wakati ni upotezaji mkubwa wa pesa na hakuna miradi ya kawaida; maombi hutengenezwa kibinafsi kwa kila mteja. Bei ni pamoja na muundo, idadi ya mifumo ya uendeshaji, matumizi ya teknolojia ya kuandika msimbo, ugumu wa kazi, upimaji, uchapishaji na nuances nyingine. Complex maombi inaweza kugharimu rubles milioni kadhaa. Na haya ni maendeleo tu. Uchapishaji, majaribio na huduma zingine zinahitaji ufadhili wa ziada. Ndiyo maana maombi yanaamriwa na makampuni makubwa ya biashara ambayo yako tayari kumudu faida hiyo. Maombi huleta zaidi mapato mazuri na kulipa kwa muda. Kufanya biashara, kupanua, kuongeza mahitaji ya bidhaa, kujenga picha nzuri ni faida za maombi ya simu.

Utendaji

Jinsi programu itafanya kazi inategemea utendaji wa smartphone. Wenyeji wanaweza kufikia moja kwa moja mfumo na vipengele vya simu, jambo ambalo huathiri vyema tija yao. Programu mseto, zikifanywa kwa usahihi, zinaweza kubadilisha wavuti kuwa za asili. Utendaji wa programu za wavuti hutegemea kasi ya muunganisho wa Mtandao, kwa hivyo inaweza kufanya kazi tofauti kwa watumiaji tofauti.

Kueneza

Baada ya maendeleo ya asili Programu ya Windows, Android, iOS lazima ziwafikie watumiaji. Usambazaji kupitia maduka ya programu ndio wengi zaidi chaguo bora. Zipo mahitaji maalum kwa bidhaa iliyokamilishwa, ambayo msanidi anapaswa kufuata mapema. Wanategemea sera ya ndani ya duka. Ikiwa programu imefanikiwa, watumiaji huipakua, na mmiliki hupokea faida na viwango vya kuongezeka. Kumbuka kwamba kuongeza maudhui yoyote (maendeleo asilia na mseto) kwenye duka la programu kunahitaji utaratibu wa uthibitishaji.

Maombi ya asili- hizi ni programu zilizopangwa kutekelezwa kwenye mifumo ya uendeshaji Mifumo ya Windows Familia ya NT (NT/2000/XP/2003/Vista/7), yenye uwezo wa kuanza mapema kwenye kuwasha Windows, kabla ya dirisha la kuingia, na hata kabla ya mfumo wowote wa Windows kuanza. Skrini ya bluu katika kuanzisha Windows XP, ambayo, kwa mfano, hundi ya disk hutokea, ni hali sawa. Programu asilia hutumia API Asilia pekee, zinaweza tu kutumia vitendaji vilivyotumwa kutoka kwa maktaba ya ntdll.dll. Vitendaji vya WinAPI havipatikani kwao.

Programu asili huendesha kwenye skrini inayoonekana kabla ya dirisha la kuingia kuonekana. Mfano wa maombi ya asili ni programu ya chkdsk, ambayo huendesha kabla ya kuingia kwenye Windows ikiwa kizigeu cha mfumo kiliangaliwa hapo awali kwa makosa na kuahirishwa hadi kuwasha tena. Programu inaendesha kwa kuonyesha ujumbe kwenye skrini, na kisha Windows huanza kawaida.

Faida za kutumia modi hii: nyingi Vipengele vya Windows bado haijazinduliwa, kuna vikwazo vingi vinavyokosekana. Hali hii, kwa mfano, hutumiwa katika programu zinazotaka kufanya kitu na mfumo Sehemu ya Windows, lakini hawawezi wakati mfumo wa uendeshaji unafanya kazi: defragmenters, converters mfumo wa faili, na huduma zinazofanana.

Hufanya kazi katika ntdll.dll kuwa na viambishi awali Zw Na NT, pamoja na wengine. Inaweza kuonekana kuwa vitendaji vya Zw na Nt vina majina ya nakala. Kwa kweli, hizi ni kazi sawa. Ikiwa unatafuta mtandaoni kwa mfano wa kutumia kazi, unapaswa kutafuta kwanza na kiambishi awali kimoja, kisha kwa mwingine, vinginevyo unaweza kukosa kitu. Kwa nini wao viambishi awali tofauti- hadithi tofauti, kwa ajili ya programu ya maombi ya asili haina jukumu muhimu.

Upangaji programu unahitaji prototypes za vitendaji vya API Asilia, lakini sio ufafanuzi wote uliopo kwenye faili za vichwa vya WDK. Ni muhimu kutumia faili mbadala za vichwa, ikiwa ni pamoja na ufafanuzi wa kazi zisizo na kumbukumbu na aina za data. Kwa mfano, unaweza kutumia faili za kichwa za Native Development Kit (NDK) ambazo zinapatikana.

Kupanga kutumia API safi ya Asilia hakufai. Huwezi kufanya bila maktaba ambayo tayari inatekeleza baadhi ya vitendo vya kawaida. Kuna maktaba yenye chanzo wazi- Unaweza kuitumia. Maktaba fulani ya NDL pia ilitangazwa kwenye ukurasa wa NDK, lakini haipo kwenye tovuti.

Ili programu asilia ianze lini Kuanzisha Windows, unahitaji kuiweka kwenye saraka ya system32, na uandike jina lake la faili na hoja, ikiwa ipo, katika ufunguo wa Usajili HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute. Ufunguo ni wa aina ya MULTI_SZ na unaweza kuwa na mistari kadhaa. Mstari wa kwanza kuna Autocheck Autochk * . Baada yake unaweza kuandika programu yako. Programu iliyosajiliwa katika ufunguo huu inaelekea kukimbia hata katika mazingira salama. Hali ya Windows (hali salama), kwa hivyo unahitaji kuwa mwangalifu. Hitilafu katika programu - na mfumo hautaanza. Lakini unaweza kufuatilia ukweli wa kuzindua kwa hali salama ndani ya programu na kusindika hali hii kando, kwa mfano, kusitisha programu ikiwa inajitambua inayoendesha katika hali salama. Kwa kuongezea, ingawa programu huanza na inaweza kufanya vitendo kadhaa, matokeo ya koni haifanyi kazi katika hali hii. Mwingiliano wa mtumiaji hauwezekani. Hii inapaswa kuzingatiwa.

Ikiwa ni lazima, programu ya asili inaweza kuzinduliwa bila kuanzisha upya kompyuta. Ili kufanya hivyo, tumia matumizi ya nrun.exe. Lakini hii haitasababisha skrini ya upakiaji kuonekana, na utalazimika kujua jinsi nyingine ya kuingiliana na programu yako ikiwa mwingiliano unahitajika. KATIKA msimbo wa chanzo nrun unaweza kuona jinsi uzinduzi wa michakato asilia unatekelezwa kwa kutumia vitendaji vya API ya Asilia ambavyo havina kumbukumbu.

Kwa matumizi ya asili, mahali pa kuingilia sio kuu au wmain, lakini NtProcessStartup. Kichwa cha PE cha faili ya EXE kina uwanja maalum unaoonyesha mfumo mdogo ambao programu inaendesha. Kwa programu asilia, uga huu umewekwa kwa thamani maalum, kumaanisha kuwa EXE haihitaji mfumo mdogo. U maombi ya kawaida thamani inayolingana na mfumo mdogo imewekwa " Windows GUI" au "Windows console". Programu asilia hazifanyiki hali ya kawaida Uendeshaji wa Windows. Wakati wa kujaribu kukimbia Programu ya Windows inaonyesha ujumbe "Programu haiwezi kuzinduliwa katika hali ya Win32."

Kuonyesha alfabeti ya Cyrilli kwenye skrini kwa chaguo-msingi hakuwezi kutumika katika hali hii. Kuna njia ya kuzunguka kizuizi hiki, hata hivyo, njia hiyo ni ngumu na kwa sasa inafanya kazi tu kwenye Windows XP.

Kuandaa mradi wa maombi ya asili

Niliunda kiolezo cha mradi wa programu Asilia - seti ya faili ambazo zinaweza kutumika kama msingi wa kuunda programu yako ya asili. Kiolezo kina faili ya native.c iliyo na mahali pa kuingilia programu. Faili zilizosalia ni faili za maktaba za ZenWINX ambazo zimerekebishwa ili kutumia ufafanuzi wa utendakazi kutoka kwa NDK badala ya faili zao za ufafanuzi. Hii inakuruhusu kutumia vitendaji vyote viwili vya maktaba yenyewe na vitendaji vya API Asilia ambavyo watengenezaji wa ZenWINX walisahau kujumuisha katika faili zao za kichwa. Kwa kweli, NDK ni zaidi katalogi kamili Asili Vipengele vya API kuliko faili iliyotolewa na ZenWINX. Unahitaji kukusanya workpiece kwa kutumia shirika la kujenga kutoka WinDDK (Ninatumia toleo la WinDDK 1.1.6001.000). Unapaswa kujumuisha faili za kichwa cha NDK, ukibainisha njia za saraka nazo.

Inawezekana pia kukuza na kujenga programu za Asili moja kwa moja ndani Studio ya Visual, bila kutumia mkusanyaji wa WDK. Jinsi ya kufanya hivyo imeandikwa katika makala

Umewahi kujiuliza nini kinatokea kwa mfumo wa uendeshaji wakati unapochora nembo yake na kusema "Kuanzisha Windows"? Na kwa ujumla, kwa nini inachukua muda mrefu kupakia? Baada ya yote, wakati mfumo unapoanza, hakuna matatizo ambayo ni magumu kutoka kwa mtazamo wa computational yanatatuliwa!

Je, upakiaji wa mfumo wa uendeshaji unamaanisha nini? Kwa sehemu kubwa, hii ni kupanga moduli zinazoweza kutekelezwa katika kumbukumbu na kuanzisha miundo ya huduma data. Miundo ya data huishi kwenye kumbukumbu, kwa hivyo shughuli nazo zinapaswa, kwa nadharia, kuwa haraka. Kila kitu kinapendekeza kuwa wakati unatumiwa kwa usahihi na mchakato wa kupakia moduli zinazoweza kutekelezwa kwenye kumbukumbu.

Kwa kujifurahisha, hebu tujue ni moduli gani, kwa kiasi gani na kwa utaratibu gani hupakiwa wakati OS inapoanza. Ili kujua, unaweza, kwa mfano, kupata logi ya boot ya mfumo. OS ya majaribio katika kesi yangu ni Windows 7 Enterprise x64. Tutaweka mchakato wa boot kwa kutumia debugger ya kernel. Kuna chaguzi kadhaa za utatuzi wa kernel, kibinafsi napendelea WinDbg. Pia tutahitaji baadhi ya zana ili kubadilisha kichawi logi kuwa kitu cha kupendeza zaidi machoni.

Uchimbaji madini na ufundi

Kuweka utatuzi ni rahisi kwa Google, kwa hivyo sitaelezea mchakato huu kwa undani. Kwa kuwa tunavutiwa na kila kitu kinachotokea tangu mfumo unapoanza, tunahitaji kuangalia kipengee cha "Mzunguko wa Awali", kwa usaidizi ambao kitatuzi kitaacha mara tu mfumo mdogo wa utatuzi wa kernel unapopakiwa kwenye mfumo unaotatuliwa. . Kuiga pato kwenye faili kunaweza kufanywa kwa kutumia amri za ".logopen" na ".logclose", ni rahisi. Nyingine amri muhimu- ".cls". Inafuta skrini ya amri, na ndiyo, skrini ya amri tu.

Chaguo la kukokotoa ambalo tunavutiwa nalo ni "MiCreateImageFileMap". Hii ni kazi ya ndani ya meneja wa kumbukumbu ambayo huweka faili inayoweza kutekelezwa kwenye kumbukumbu. Makadirio ya kumbukumbu hutokea wakati sehemu imeundwa, kwa mfano, wakati wa kuanza faili inayoweza kutekelezwa. Walakini, tafadhali kumbuka kuwa kwa sababu faili inayoweza kutekelezwa imechorwa kwenye kumbukumbu haihakikishi kuwa nambari yake itatekelezwa! Kazi hii inaunda tu makadirio, mara nyingi "katika hifadhi," ili ikiwa mtu anaamua kuendesha moduli kwa ajili ya utekelezaji, inaweza kuokoa muda wa upakiaji. Wacha tuweke kikomo cha ukataji miti kwenye chaguo hili la kukokotoa.

Ikiwa unayo mana ya kutosha, ingiza amri ifuatayo:
bu nt!MiCreateImageFileMap "dt nt!_EPROCESS -d ImageFileName @$proc; dt nt!_FILE_OBJECT -d FileName @rcx; g"
Mstari wa uchawi unamaanisha yafuatayo:

  • bu (Weka Sehemu ya Kuvunja Isiyotatuliwa) - weka sehemu ya kuvunja ambayo haijatatuliwa. Sio kwamba mtu au kitu hairuhusu, ni kwamba tu kuiweka unahitaji kuamua kwenye anwani gani ya kuiweka. Ukweli ni kwamba haijulikani mapema kwa anwani gani inapaswa kuwa iko. Wakati wa kupakia moduli yoyote, uwepo wa kazi inayohitajika, na ikiwa kitendakazi kama hicho kitapatikana, sehemu ya kukatika huwekwa kiotomatiki. Mbinu hii ya usakinishaji ni muhimu sana wakati ASLR imewashwa - kubahatisha nafasi ya anwani, kwa kuwa moduli zitapakiwa katika anwani tofauti kila wakati, na sehemu ya kukatiza kuwekwa anwani ya kudumu, kuna uwezekano mkubwa kuwa hana kazi.
  • nt!MiCreateImageFileMap ni ishara ya kuacha. WinDbg inakubali ingizo katika fomu ya "module_name!function_name". KATIKA kwa kesi hii nt ni lakabu iliyofafanuliwa awali ya ntoskrnl.exe.
  • Ifuatayo ni sehemu ya hati ya WinDbg, ambayo itatekelezwa kila wakati chaguo hili la kukokotoa linaposimamishwa. "dt nt!_EPROCESS -d ImageFileName @$proc" kwa Kirusi inamaanisha "onyesha sehemu ya ImageFileName ya muundo wa _EPROCESS kutoka kwa sehemu ya nt, mradi itaonyeshwa kwenye anwani iliyofafanuliwa katika "mchakato wa sasa" rejista bandia." Ifuatayo baada ya kitenganishi ";" amri ina maana takriban kitu kimoja, tu anwani ya muundo inachukuliwa kutoka kwa rejista ya rcx, ambayo parameter ya kwanza ya kazi hupitishwa kwa Microsoft x64 ABI. "g" inamaanisha "kwenda", i.e. kuendelea na utekelezaji.

Kidokezo cha haraka cha kutumia vizuizi vya ukataji miti: jaribu kutotumia viendelezi vya utatuzi (amri zinazoanza na "!"), kwani hii itafanya ukataji wa miti kuwa wa polepole.

Nenda! Toa breki ya kuvunja na usubiri. Nilisubiri hadi desktop ipakie, i.e. Nimeingia. "Mavuno" yanayotokana yanahaririwa kidogo, yote yasiyo ya lazima yamekatwa kwa urahisi wa usindikaji zaidi na kulishwa kwa python. Wacha tuzingatie kuchanganua logi. Hebu tukumbuke tu kwamba grafu inafaa katika sura ya Archimedes spiral na marekebisho zaidi ya mwongozo, kwani nodi ziliingiliana. Grafu inayotokana inazingatia utaratibu ambao maktaba hupakiwa. Kwa bahati mbaya, tulilazimika kujitolea kwa kuzingatia mpangilio wa upakiaji wa faili zinazoweza kutekelezwa zinazohusiana na maktaba kwa ajili ya usomaji wa grafu.

Nyota ramani


Wacha tuchague kwa uangalifu vikundi kadhaa vya upakiaji.

OS huanza kufanya kazi katika moduli ya ntoskrnl.exe, ambayo ni msingi wa OS. Na kuwa maalum zaidi - kutoka kwa KiSystemStartup() kazi. Pamoja na kupakuliwa vipengele vya mfumo hufanya msingi wa OS: mgawanyiko wa njia za uendeshaji, huduma za msingi kwa maombi maalum Nakadhalika. Kikundi hiki pia kinajumuisha viendeshi vilivyowekwa alama ya kupakiwa wakati wa kuanzisha mfumo. Kwa kifupi, Windows OS inazaliwa kwenye ganda hili.

Njia inayofuata ni meneja wa kikao ( meneja wa kikao) Anatambulishwa na wa kwanza baada ya mchakato wa mfumo, kuanzia Windows - smss.exe. Mchakato huo unajulikana kwa kuwa asili. Mchakato wa Windows, yaani, haitumii mfumo mdogo wa Win32, ambao kwa ujumla haujapakiwa bado. Utaratibu huu unatumia tu huduma za asili mfumo wa uendeshaji kupitia ntdll.dll, ambayo ni kiolesura cha hali ya mtumiaji kwa huduma za OS. Utaratibu huu pia ni sehemu ya kuaminika ya mfumo wa uendeshaji na ina haki za kipekee, kwa mfano, inaweza kuunda ishara za usalama. Lakini kusudi lake kuu ni kuunda vikao na kuanzisha mifumo ndogo, ya picha na anuwai inayoweza kutekelezwa (Windows, POSIX). Gamba hili linakidhi mahitaji ya kila mtu.

Kundi la logon lina michakato kadhaa. Kwa ujumla, wana jukumu la kuanzisha vikao. Hii ni pamoja na kuonyesha skrini ya kukaribisha, kuunda kompyuta za mezani, kuanzisha michakato ya kuanzisha na kuanzisha mfumo mdogo wa usalama, n.k. Ufagio huu unafagia wageni wote.

Kikundi cha huduma kiligeuka kuwa kikubwa zaidi. Inadaiwa kiasi cha kiasi chake Huduma ya SuperFetch. Hii ndio ambayo wanasema kwamba yeye hupakia mapema wikendi chumba cha ofisi, na mwanzoni mwa wiki ya kazi - Steam na vinyago. Superfetch hupakia idadi kubwa ya moduli mfumo unapoanza, ili baadaye "kila kitu kifanye kazi haraka." Na badala yake, mfumo una kutosha maombi ya huduma na madereva ya autorun. Nadhani kila mtu ameona Huduma na Programu zikiingia. Nyota hii ya maisha huleta kwenye mfumo kila kitu kinachohitajika na sio sana.

Ya mwisho nitakayotaja ni explorer.exe inayopendwa na kila mtu. Ni vyema kutambua kwamba wakati inapoanza, moduli zote zinazotumia tayari zimepakiwa kwenye kumbukumbu. Picha ya skrini pia ilijumuisha vcredist_x64.exe fulani - maskini jamaa huyo alikuwa amelala kwenye eneo-kazi la mashine ya majaribio ya majaribio na ilipakiwa kwenye kumbukumbu na kondakta.

Kwa ujumla, kuna njia nyingi za moduli kupakiwa kwenye kumbukumbu. Kwa mfano, inatosha kuomba habari kutoka kwa rasilimali za faili inayoweza kutekelezwa, pamoja na ikoni yake. Hasa katika katika mfano huu Explorer alikagua kama programu hii inahitaji mapendeleo ya juu, i.e. Je, ni thamani ya kuongeza picha sambamba na ngao ya njano-bluu kwenye icon? Wacha nikumbuke tena kuwa kupakia moduli kwenye kumbukumbu haimaanishi kutekeleza nambari yake!

Binafsi, ninaweka picha inayosababisha karibu. Inaonyesha wazi utegemezi, kwa mfano, wa madereva. Pia, ikiwa imeunganishwa na matumizi ya Sysinternals Autoruns, unaweza kuona katika hatua gani ya kupakia moduli fulani hutolewa.

Grafu ya upakiaji iliundwa kwa Windows 7 Enterprise x64 OS iliyosakinishwa kwenye mtandao Mashine ya VMware. Chini ni picha ya vekta graph na faili moja kwa moja katika umbizo la gml, ambayo unaweza kucheza nayo katika kihariri chochote cha grafu.

Sio vipengele vyote kwenye ukurasa wa wavuti vina umuhimu sawa wakati wa kupakia. Maudhui ambayo yanaonekana kwa mtumiaji hutanguliwa kuliko maudhui yaliyo chini ya ukurasa.

"Upakiaji wa uvivu" au upakiaji wa uvivu sio teknolojia mpya. Inatumiwa na baadhi ya tovuti kwenye mtandao ili kuharakisha upakiaji wa kurasa za wavuti. Badala ya kupakua yaliyomo yote mara moja, mbinu hii hukuruhusu kupakia baadhi ya vitu vinapohitajika au muda mfupi kabla ya kuhitajika.

Kwa mfano, wacha tuchukue nakala inayojumuisha kurasa tatu. Picha kwenye ukurasa wa tatu zinaweza kupakiwa mara moja wakati mtumiaji anafungua makala, au zinaweza kupakiwa wakati mtumiaji anaenda kwenye ukurasa wa pili. Katika kesi ya pili, wakati wa kupakia ukurasa wa nyumbani itapungua.

Upakiaji wa uvivu kwenye Chrome

chrome://flags/#enable-lazy-image-loading
  • Washa bendera ili kuwezesha upakiaji wa uvivu wa picha kwenye Chrome.
chrome://flags/#enable-lazy-frame-loading
  • Washa bendera ili kuwezesha upakiaji wa uvivu wa fremu katika Chrome.
  • Anzisha upya kivinjari chako cha Chrome.

Kwa hivyo, Chrome itapakia picha na fremu kadri mtumiaji anavyosogeza ukurasa.

Je, ni faida gani kwa watumiaji wa Chrome?

Mbinu ya upakiaji ya Uvivu inaweza kuboresha muda wa upakiaji wa baadhi ya kurasa kwa kuzuia baadhi ya vipengele kutoka kupakia ukurasa unapofunguliwa na kuvipakia tu unaposogeza ukurasa. KATIKA Chrome imetolewa Mbinu hiyo inatumika tu kwa picha na muafaka.

Upakiaji wa uvivu ni muhimu sana kwa miunganisho ya polepole. Kwenye PC na uunganisho wa kasi ya juu Ni vigumu kutambua tofauti kwenye mtandao. Ikiwa unatumia njia dhaifu ufikiaji (5 Mbps) au chini, utaona faida za upakiaji wa uvivu, haswa kwenye kurasa zilizo na kiasi kikubwa picha na muafaka.

Kwa kuongeza, upakiaji wa Uvivu utaokoa trafiki ndani viunganisho vya mita kwa mtandao. Mtumiaji akifunga ukurasa bila kusogeza, picha na fremu zilizo chini hazitawahi kupakiwa.

Bado haijawa wazi jinsi gani kipengele kipya itafanya kazi kwenye tovuti ambazo tayari zinatumia upakiaji wa uvivu. Je, kutakuwa na mtu wa asili? Kipengele cha Chrome kukatwa au kutakuwa na migogoro inayowezekana?

Je, umepata kosa la kuandika? Bonyeza Ctrl + Ingiza