Vagadziri vepurogiramu, enda kubvunzurudzo

Vagadziri vepurogiramu, enda kubvunzurudzo
Mufananidzo unotorwa kubva muvhidhiyo kubva kuchiteshi "Militant AmethystsΒ»

Ndakashanda sesystem programmer yeLinux kweanenge makore gumi. Aya ndiwo kernel modules (kernel space), madhimoni akasiyana-siyana uye kushanda nehardware kubva munzvimbo yemushandisi (mushandisi nzvimbo), akasiyana bootloaders (u-boot, nezvimwewo), controller firmware uye zvimwe zvakawanda. Kunyangwe dzimwe nguva zvaiitika kucheka webhu interface. Asi kazhinji zvakaitika kuti ndaifanira kugara nesimbi yekunyungudutsa uye kupindirana nevagadziri vakadhindwa redunhu. Rimwe rematambudziko nebasa rakadaro nderokuti zvakaoma kuongorora chiyero chekugona kwako, sezvo iwe unogona kuziva basa rimwe zvakadzika, asi iwe unogona kunge usingazivi imwe zvachose. Nzira chete yakakwana yekunzwisisa kwekuenda uye kuti ndeapi mazuvano aripo kuenda kubvunzurudzo.

Muchinyorwa chino ndinoda kupfupisa ruzivo rwangu rwekubvunzurudza kwechinzvimbo seLinux system programmer, iyo chaiyo yekubvunzurudza, basa, uye maitiro ekuongorora yako pachako ruzivo rwekuziva nekutaurirana neamangwana mushandirwi uye zvausingafanire. tarisira kubva kwazviri.

Nyaya yacho ichabatanidza makwikwi maduku ane mibairo.

Zviratidzo zvebasa racho

A system programmer, mune chaiyo ndima yandakashanda, izere generalist: ndaifanira kunyora kodhi uye debug hardware. Uye kazhinji paive nekudikanwa kwekutengesa chimwe chinhu iwe pachako. Nguva nenguva, zvakaitika kuti zvigadziriso zvangu kune hardware zvakabva zvaendeswa kune vanogadzira. Naizvozvo, kuti ushande munzvimbo ino unoda hwaro hwakanaka hweruzivo, zvese mumunda wedhijitari wedunhu uye mukuronga. Nekuda kweizvi, kubvunzurudzwa kweiyo system programmer chinzvimbo kunowanzo kutaridzika sekutsvaga nyanzvi yemagetsi.

Vagadziri vepurogiramu, enda kubvunzurudzo
Yakajairika nzvimbo yekushandira yeanogadzira masisitimu.

Mufananidzo uri pamusoro unoratidza nzvimbo yangu yebasa painogadzirisa vatyairi. Iyo logic analyzer inoratidza iko kurongeka kwemameseji anofambiswa, iyo oscilloscope inotarisisa chimiro chechiratidzo chemipendero. Zvakare, iyo jtag debugger haina kuverengerwa mufuremu, iyo inoshandiswa kana yakajairwa debugging maturusi asingachakwanise. Uye iwe unofanirwa kukwanisa kushanda nemidziyo iyi yese.

Zvinowanzoitika kuti zvinokurumidza uye zviri nyore kutengesa zvakare zvimwe zvinhu uye kugadzirisa zvikanganiso zvetopology iwe pane kuendesa chigadzirwa kune chinoisirwa. Uye ipapo chiteshi chekutengesa chinotorawo kugara panzvimbo yako yebasa.

Chimwe chinhu chekusimudzira pamutyairi uye hardware level ndechekuti Google haibatsire. Kazhinji iwe unofanirwa kutsvaga ruzivo nezvedambudziko rako, uye kune matatu malink, maviri acho ari mibvunzo yako pane imwe foramu. Kana zvakatonyanya kuipa, paunosangana nemubvunzo kubva kune murombo mumwechete akaibvunza makore mashanu apfuura pane iyo kernel yetsamba runyorwa uye haana kumbowana mhinduro. Mune basa iri, kuwedzera kune zvikanganiso mukugadzirwa kwezvose zviri zviviri hardware uye software, zvikanganiso zvezvinyorwa zvinowanzosangana nazvo - izvi zvingangodaro zvinetso zvakanyanya uye zvisingafadzi. Dzimwe nguva marejista anotsanangurwa zvisizvo, kana kuti hapana rondedzero kwavari zvachose. Matambudziko akadai anogona kugadziriswa chete nesainzi kupinza nhamba dzisina kurongeka mune mamwe marejista (rudzi rwereverse). Zvinowanzoitika kuti processor ine mamwe maitiro, asi hapana mumwe kunze kwako iwe waita basa iri (kunyanya kana processor iri nyowani). Uye izvi zvinoreva kufamba mumunda nereki, 5% yacho ndeyevana. Asi kana paine zvinyorwa, kunyangwe paine zvikanganiso, izvi zvatove kufambira mberi. Kazhinji zvinoitika kuti hapana magwaro zvachose, uye ndipo apo kufamba muminda yezvimbambaira kunotanga kana simbi iri kupisa. Uye hongu, ini ndakabudirirawo kugadzirisa matambudziko akadaro.

Hurukuro

Mafungiro angu ndeekuti iwe unofanirwa kuenda kubvunzurudzo kamwechete kamwe chete mwedzi mitanhatu yega yega, kunyangwe iwe uchinamata basa rako uye usingade kurichinja. Hurukuro inobvumidza iwe kuti unzwisise nhanho yako senyanzvi. Ndinotenda kuti kubvunzurudzwa kwakakosha ndiko kukundikana. Ndivo vanonyatso ratidza kuti ndeapi mabhodhoro muruzivo rwako anoda kuvandudzwa.

Chimwe chinhu chinonakidza hunhu hwebvunzurudzo. Uku ndiko kuona kwangu, uye hachisi chokwadi, ndinobvuma kuti ndakaita rombo rakanaka. Kana iyo bvunzurudzo ikaenda zvinoenderana nemamiriro ezvinhu:

  • tiudze nezvako;
  • Tine mabasa akadaro;
  • unofarira?

Uye kana mushure meiyi nhaurirano iwe uchida mumwe nemumwe, iwe unoenda kubasa, saka, sekutonga, kambani nemabasa zvinova zvinofadza uye zvakakwana. Kana kubvunzurudza kwakafanana nekufamba nepakati pemadenderedzwa gumi nemaviri egehena: yekutanga kubvunzurudzwa naHR, ipapo kubvunzurudzwa neboka revagadziri, ipapo mutungamiriri, basa remumba, nezvimwe, saka sekutonga aya aive akakundikana masangano andisina kushanda. kwenguva refu. Zvakare, uku kucherechedzwa kwemunhu, asi sekutonga, hutungamiriri hwakawandisa uye chirongwa chekuhaya chinokwevera chinoratidza kuti iwo chaiwo maitiro anoitika mukati mekambani. Sarudzo dzinoitwa zvishoma nezvishoma uye zvisingashande. Paivawo nemamiriro ezvinhu akapesana, apo pakanga paine madenderedzwa ekubvunzurudzwa kwegehena, uye kambani yakave yakakura, uye apo, mushure mekurohwa pachiwoko, kambani yakave dhayi, asi izvi hazviwanzo.

Kana iwe uchifunga kuti mamiriro ezvinhu: akasangana, akaudzwa nezvako uye akabhadharwa, aripo chete mumakambani madiki, saka kwete. Ndakaona izvi mumakambani makuru kwazvo anoshandisa vanhu vanopfuura mazana uye anomiririrwa pamisika yenyika. Iyi inzira yakajairwa, kunyanya kana uine rekodhi rekodhi uye uine mukana wekufonera vashandirwi vako vekare uye kubvunza nezvako.

Kwandiri, chiratidzo chakanaka chekambani pavanokumbira kuratidza mienzaniso yemapurojekiti avo uye kodhi. Chiyero chekudzidziswa kweanonyorera chinoratidzwa pakarepo. Uye, kana ndirini, kubva pakuona kwekusarudza vavhoti, iyi ndiyo nzira yakanakisa yekusarudza pane yekubvunzurudza. Muchokwadi, iwe unogona kukundikana pabvunzurudzo kubva mukufara, kana, pane zvinopesana, buda pane adrenaline. Asi mubasa rechokwadi haugone kurarama nemabasa chaiwo. Uye ndakasanganawo neizvi pandakabvunzurudza vanhu ini. Nyanzvi inouya, inozviratidza kuve shasha, ndaimuda, akatida. Uye ndakanetseka nedambudziko rakareruka kwemwedzi, uye semhedzisiro, mumwe mugadziri akarigadzirisa mumazuva mashoma. Ndaifanira kusiyana nemugadziri wepurogiramu uya.

Ndinonyanya kukoshesa mapurogiramu emabasa mubvunzurudzo. Uye izvo zvinofanirwa kugadziriswa mukati memusangano chaiwo, mukushushikana, uye basa remumba. Yekutanga inoratidza kuti wakagadzirira sei kukurumidza uye nenzira kwayo kugadzirisa matambudziko mumamiriro ekudzvinyirira uye nekukurumidzira. Yechipiri inoratidza nhanho yako yekugona uye kugona kutsvaga ruzivo uye kugadzirisa matambudziko aripo.

Mabasa ainyanya kunakidza andaiva nawo aiva munzvimbo yekudzivirira nyika yedu. Mukuita basa, ndaifanira kugadzirisa zvinongonakidza matambudziko izvo zvekutengesa programmer vaive vasina kana kumborota nezvazvo. Supercomputers, kugadzira marouters, akasiyana node kurwisa masisitimu - izvi zvinonakidza zvinoshamisa. Kana panguva yeparadhi iwe unoona yakaoma inochengeta kodhi yako, yakanaka chaizvo. Zvinoshamisa kuti, kubvunzurudza nemakambani akadaro kunowanzo kuve kwakapusa, chaiko kuuya, saizvozvi, kugamuchirwa (zvichida izvo zvemauto, vasingadi kutaura zvakanyanya), zvakasimudzwa. Matambudziko andaisangana nawo ipapo ainakidza uye aindinetsa. Neruzivo, zvakazoitika kuti ivo vakanaka pakudzidza kuve yepamusoro-mhando system programmer. Kunewo zvipingamupinyi, uye izvi hazvisi kunyange mubhadharo wakaderera. Parizvino, muhoro mune yekudzivirira yakaoma, ine mabhonasi uye mabhenefiti. Sezvo mutemo, kune huwandu hwehutongi, maawa ekushanda kwenguva refu, mabasa asingagumi ekumhanya, uye kushanda pasi pekunetseka kukuru. Mune zvimwe zviitiko, kuvanzika hakugone kubviswa, izvo zvinowedzera mamwe matambudziko ekufamba kunze kwenyika. Uyezve, hongu, hudzvinyiriri hwevakuru, uye izvi, nhamo, zvinoitikawo. Kunyangwe ruzivo rwangu rwekushanda nemumiriri wevatengi rwakanyanya kunakidza. Uyu ndiwo fungidziro yakabatana yemasangano matatu akasiyana ekutsvagisa uye makambani ane hukama nemirairo yekudzivirira yenyika.

Hurukuro mabasa

Kuti ndidzivise kusanzwisisana uye kuti ndisafumura makambani andakabvunzurudza, ini handizoyedze mafambiro uye kuratidza iwo maficha. Asi ndinotenda nekubvunzurudzwa kwese, kwenguva iyo vanhu vakapedza pandiri, nemukana wekuzvitarisa kubva kunze. Ndinogona kungotaura kuti mabasa acho aive emakambani makuru epasi rose aimiririrwa munyika dzakasiyana.

Ini ndichakuudza chinhu chinonyanya kufadza: ndeapi mabasa anopiwa panguva yekubvunzurudza. Kazhinji, mibvunzo inowanzo zivikanwa yevacancy yesystem programmer uye microcontroller programmer ndeye bhiti mashandiro, mune zvese zvinogoneka mutsauko. Naizvozvo, zvigadzirire iwe zvakanyanya munzvimbo iyi.

Yechipiri inonyanya kuomesa musoro ndeye zvikwangwani, izvi zvinofanirwa kusvetuka kubva pamazino ako. Kuti vakumutse pakati pehusiku uye iwe unogona kutaura uye kuratidza zvese.

Ndakaba mibvunzo kubva kubvunzurudzo dzakati wandei mumusoro mangu, uye ndichairatidza pano, sezvo ndichiiwana ichinakidza. Ini nemaune handipe mhinduro kumibvunzo iyi kuitira kuti vaverengi vapindure mibvunzo iyi pachavo mumashoko uye vave nehupfu hushoma pavanenge vachipfuura nemubvunzurudzo chaiwo.

Mibvunzo Nha

I. Kuziva kweSI. Zvinorevei zvinyorwa zvinotevera:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Manyorerwo ese akarurama here?

II. Sei chirongwa ichi chichizokanda kukanganisa kwechikamu?

int main ()
{
       fprintf(0,"hellon");
       fork();
       return(0);
}

III. Kuva akachenjera.

Pane kamuti kureba mita imwe chete. Majuru gumi anongowira paari, achikambaira nenzira dzakasiyana. Kumhanya kwesvosve rimwe chete i1 m/s. Kana svosve rasangana nerimwe svosve rinotendeuka ronanaira richienda kune rimwe divi. Ndeipi nguva huru yaunoda kumirira kuti majuru ose adonhe padanda?

Kubvunzurudza kwakatevera kwakakundikana kwandiri, uye ndinoiona seyakanyanya kubatsira mukuita kwangu zvirongwa. Zvairatidza kudzama kwekusagona kwangu. Pamberi pebvunzurudzo iyi, ndaiziva imwe neimwe yemibvunzo iyi uye vaigara vachiuya mukuita kwangu, asi neimwe nzira handina kuisa kukosha kwakawanda kwavari, uye nekudaro, handina kunyatsoinzwisisa. Naizvozvo, ndakafoira bvunzo iyi zvinonyadzisa. Uye ndinoonga zvikuru kuti kukundikana kwakadaro kwakaitika; kwakava nomuuyo unopengereka zvikurusa pandiri. Iwe unofunga kuti iwe uri nyanzvi inotonhorera, iwe unoziva dhizaini yedunhu, mainterface, uye kushanda nekernel. Uye ipapo iwe une mibvunzo chaiyo uye iwe unoyangarara. Saka ngationei.

Bvunzurudzo Mibvunzo #2

Hardware nyaya.

  • Iyo linux system yekufona inorongwa sei mumutauro wegungano pane ARM processor, pa x86. Chii chakasiyana?
  • Ndeapi maturusi ekubatanidza aripo? Ndeapi maturusi ekuwiriranisa anogona kushandiswa mukati mekukanganisa mamiriro, ayo asingagone, uye nei?
  • Ndeupi musiyano uripo pakati pei2c bhazi nespi bus?
  • Sei paine materminator mubhazi rei2c uye kukosha kwavo chii?
  • Iyo RS-232 interface inogona kushanda CHETE pawaya mbiri: RX neTX? Pano ini ndichapa mhinduro: Zvinoitika kuti zvakaipa, pa9600, asi zvinogona !!!
  • Uye zvino mubvunzo wechipiri: sei?
  • Ndeipi nzira yakanakisa yekuronga mitsara yechiratidzo uye simba mumabhodhi akawanda uye nei? Simba mukati mezvikamu, kana mitsetse yechiratidzo mukati mezvikamu? (Mubvunzo unowanzo taura nezve dhizaini yedunhu).
  • Sei mitsetse yakasiyana-siyana ine makwara anoenda pamwe kwese kwese?
  • RS-485 bhazi. Kazhinji pane materminator pamutsara wakadaro. Nekudaro, isu tine nyeredzi yedunhu, ine nhamba yakasiyana yeplug-in modules. Ndedzipi nzira dzekudzivisa kubonderana uye kupindira dzinofanira kushandiswa?
  • Chii chinonzi miti mitsvuku nemabhinari?
  • Nzira yekushanda ne cmake?
  • Mibvunzo nezve kuvaka yocto Linux.

Zvinangwa zvebvunzurudzo iyi:

1. Nyora basa rinoshandura ku uint32_t zvimedu zvese. (kushanda nemabits kwakakurumbira zvikuru pabvunzurudzo, ndinozvikurudzira)
2.

int32_t a = -200;
uint32_t b = 200;
return *(uint32_t) * (&a)) > b;

Chii chichadzosa basa iri? (mhinduro pabepa, pasina komputa)

3. Basa rekuverenga masvomhu zvinoreva nhamba mbiri int32_t.

4. Ndedzipi nzira dzekubuda muzvirongwa, kusanganisira. kupinda murukova rwezvikanganiso.

Sarudzo yechitatu yaive ichangoburwa, uye handingashamisi kana pachine mubvunzo wakadaro ipapo, saka ini handisi kuzozivisa kambani kuitira kuti ndisavafumura ... Asi kazhinji ini ndichapa muenzaniso. yemibvunzo inogona kuitika, uye kana iwe uchiziva mibvunzo yako, saka ndinoti mhoro :).

Bvunzurudzo Mibvunzo #3

  1. Muenzaniso wekodhi yemuti unopihwa; zvinodikanwa kuti utaure zviri kuitwa mukodhi iyi uye kuratidza zvikanganiso.
  2. Nyora muenzaniso we ls utility. Nesarudzo yakapusa "-l".
  3. Ipa muenzaniso wekuita static uye dynamic linking. Chii chakasiyana?
  4. RS-232 inoshanda sei? Ndeupi musiyano uripo pakati peRS-485 neRS-232? Ndeupi musiyano uripo pakati peRS-232 neRS-485 kubva pakuona kwemugadziri?
  5. USB inoshanda sei (kubva pakuona kwemugadziri)?
  6. Dudziro yezvinyorwa zvehunyanzvi kubva muchiRussian kuenda kuChirungu.

Bvunzurudzo inobudirira haisi vimbiso yebasa rinobudirira

Ichi chitsauko chinogona kunge chisiri chevagadziri (kunyangwe kwavariwo), asi zvimwe zveHR. Makambani akanyanya kukwana haatarise zvine hungwaru pamhedzisiro yebvunzurudzo. Zvakajairika kuita zvikanganiso; kazhinji vanotarisa kuti munhu anoziva sei kugadzirisa matambudziko uye kufunga.

Rimwe rematambudziko akakosha nderekuti mukwikwidzi anobudirira kugadzirisa matambudziko panguva yekubvunzurudzwa, anozviratidza kuva nyanzvi yakanakisa, asi anokundikana pabasa rekutanga chairo. Handinganyepi, izvi zvakaitika kwandiri zvakare. Ndakabudirira kuburikidza nematenderedzwa ese egehena, ndikagadzirisa ese ebvunzo mabasa, asi mumamiriro ezvinhu chaiwo basa rakazove rakanyanya kuoma nekuda kwekusava neruzivo. Kukwira muchikepe harisi basa rakaoma zvikuru. Chinhu chakanyanya kuoma kugara mubhodhi rekambani iyi.

Nokudaro, ndinovimba mamwe makambani anoita mabvunzurudzo akareruka nemumiriri uye anoti: mushure memwedzi wekutanga webasa, zvichava pachena kana iwe wakakodzera kwatiri kana kwete. Iyi ndiyo nzira yakakwana, hongu, zvichida inodhura zvishoma, asi inokurumidza kujeka kuti ndiani.

Pane imwe sarudzo yekubvunzurudza: kana iwe ukabudirira kuipfuura, asi zvichienderana nemigumisiro yebvunzurudzo iwe unonzwisisa kuti mushandirwi haana kukwana zvachose. Ndinobva ndaramba basa kana ndikanzi ndishande semuzvinabhizimisi, ndichivimbisa mari yakawanda. Iyi inzira yekunzvenga mitero yesangano rinoshanda, uye nei matambudziko emushandirwi achifanira kundinetsa ini semugadziri wepurogiramu? Imwe sarudzo ndeye masangano ehurumende akasiyana. Ndakaita interview, zvakazoita kuti ndipihwe muhoro wakanaka, asi vakati the previous programmer akasiya, akarwara, akafa, akaenda kunodyisa nekuda kwekuremerwa nebasa, uye zuva rako rekushanda rinotanga na8 mangwanani. . Achibva panzvimbo yakadaro akamhanyawo zvekuti zvitsitsinho zvake zvaipenya. Hongu, HR, ndapota cherechedza kuti vagadziri vakagadzirira kuramba kunyange basa rinonaka zvikuru kana zuva rekushanda richifanira kutanga mangwanani-ngwanani.

Pakupedzisira, ini ndichapa yakanakisa vhidhiyo yekusarudza programmer, iyo skrini inopihwa pakutanga kwechinyorwa chino. Ndakaitawo interview yakadai kanopfuura kamwe. Kana iwe ukaona hudzvinyiriri padanho remibvunzo, saka zviremekedze, simuka, tora zvinhu zvako uende - izvi zvakajairika. Kana HR nemaneja vakazvisimbisa pamubhadharo wako panguva yekubvunzurudzwa, izvi zvinoratidza kuti kambani ine muchetura uye haufanirwe kushanda ipapo kunze kwekunge iwe uchida maboss asina kukwana.

zvakawanikwa

Vagadziri vepurogiramu, enda kubvunzurudzo! Uye nguva dzose edza kusimudzirwa. Ngatitii kana ukawana mari yeN, woenda kubvunzurudzo yeinenge N * 1,2, kana nani N * 1,5. Kunyangwe iwe ukasatora iyi vacancy ipapo, iwe unonzwisisa izvo zvinodiwa padanho iri rekubhadhara.
Zvandinoona zvakaratidza kuti ruzivo rwakanaka rwemutauro weChirungu, ruzivo rwakakwana rwakapfuma muindasitiri uye kuzvivimba vanosarudza. Iyo yekupedzisira ndiyo hunhu hukuru, sekwese kwese muhupenyu. Semutemo, mumiriri ane chivimbo anogona kuita zvirinani mubvunzurudzo, kunyangwe nemhosho dzakawanda, pane akanakisa, asi anonyara uye anoshingairira kunyorera. Rombo rakanaka nebvunzurudzo dzako!

P/S Makwikwi

Kana iwe uine inonakidza mienzaniso yematambudziko ayo HR akakuremedza nawo, wobva wagashira mune zvakataurwa. Isu takagadzirira makwikwi madiki - mamiriro ari nyore: unonyora iro risingaite basa rawaive naro panguva yekubvunzurudzwa, vaverengi vanoiongorora (pamwe chete), uye mushure mevhiki tinopeta mhedzisiro uye tinopa mubairo anokunda nezvinhu zvinonakidza.

Vagadziri vepurogiramu, enda kubvunzurudzo

Vagadziri vepurogiramu, enda kubvunzurudzo

Source: www.habr.com

Voeg