Yanayi mai canzawa

Wani canji na muhalli shine darajar mai amfani wanda zai iya shafar yadda hanyoyin gudanarwa zasu nuna a kwamfuta. Masu canjin muhalli suna daga cikin yanayin da tsari ke gudana. Misali, tsari mai gudana na iya tambayar darajar canjin yanayin TEMP don gano wurin da ya dace don adana fayiloli na wucin gadi, ko kuma HOME ko USERPROFILE canji don neman tsarin adireshin mallakar mai amfani da ke gudanar da tsari.

An gabatar da su a cikin tsarin zamani a cikin 1979 tare da Version 7 Unix, don haka an haɗa su a cikin duk tsarin aiki na Unix da bambance-bambance daga wannan lokacin zuwa gaba ciki har da Linux da macOS. Daga PC DOS 2.0 a cikin 1982, duk tsarin aiki na Microsoft da ya yi nasara, gami da Microsoft Windows, da OS/2 suma sun haɗa da su a matsayin fasalin, kodayake suna da ɗan bambancin haɗin kai, amfani da kuma daidaitattun sunayen canji.

 Tsarin 
A cikin dukkan tsarin Unix da Unix-kamar tsarin, da kuma Windows, kowane tsari yana da nasa saiti daban-daban na masu canji yanayi. Ta hanyar tsoho, lokacin da aka halicci tsari, yana gaji yanayin lokaci-lokaci na tsarin iyayensa, ban da canje-canje da iyaye suka yi lokacin da ya halicci yaro. A matakin API, dole ne a yi waɗannan canje-canje tsakanin gudana da exec. A madadin haka, daga harsashi na umarni kamar bash, mai amfani na iya canza canjin yanayi don wani kira na umarni ta hanyar kai tsaye ta hanyar env ko amfani da ENVIRONMENT_VARIABLE=VALUE <command> notation. Shirin mai gudana na iya samun damar dabi'un masu canji na muhalli don dalilai na daidaitawa.

Rubutun shell da fayilolin rukuni suna amfani da masu canjin yanayi don sadarwa da bayanai da abubuwan da suka fi so ga matakai na yara. Hakanan ana iya amfani da su don adana dabi'u na wucin gadi don tunani daga baya a cikin rubutun harsashi. Koyaya, a cikin Unix, ana fi son masu canji waɗanda ba a fitar da su ba don wannan saboda ba sa fita waje da tsari.

A cikin Unix, canjin yanayi wanda aka canza a cikin rubutun ko shirin da aka tattara zai shafi wannan tsari kuma mai yiwuwa matakai na yaro. Tsarin iyaye da duk wani tsari mara alaƙa ba zai shafi ba. Hakazalika, canzawa ko cire darajar canji a cikin fayil ɗin DOS ko Windows zai canza canji na tsawon COMMAND.COM CMD.Kasancewar EXE, bi da bi.

A cikin Unix, ana fara sauye-sauyen muhalli a lokacin farawa na tsarin tsarin farawa, sabili da haka duk sauran matakai a cikin tsarin suka gaji. Masu amfani na iya, kuma sau da yawa suna yin, haɓaka su a cikin rubutun bayanan don harsashin umarni da suke amfani da shi. A cikin Microsoft Windows, ana adana ƙimar ƙimar ƙididdigar kowane yanayi a cikin Windows Registry ko saita a cikin AUTOEXEC.Bayanan BAT.

A kan Unix, ana ba da shirin setuid yanayin da mai kira ya zaɓa, amma yana gudana tare da iko daban-daban daga mai kira. Mai haɗi mai ƙarfi yawanci zai ɗora lambar daga wuraren da aka ƙayyade ta hanyar canjin yanayi $LD_LIBRARY_PATH da $LD_PRELOAD kuma ya gudanar da shi tare da ikon tsari. Idan shirin setuid ya yi haka, ba zai kasance mai aminci ba, saboda mai kira zai iya sa ya gudanar da lambar da ba ta dace ba kuma saboda haka ya yi amfani da ikonsa ba. Saboda wannan dalili, libc ya cire waɗannan masu canjin yanayi a farawa a cikin tsari na setuid. shirye-shiryen setuid yawanci ba a daidaita masu canjin yanayi da ba a sani ba kuma bincika wasu ko saita su zuwa dabi'u masu ma'ana.

Gabaɗaya, tarin masu canjin yanayi suna aiki azaman jerin haɗin gwiwa inda duka maɓallan da ƙimar kirtani ne. Fassarar haruffa a cikin kowanne kirtani ya bambanta tsakanin tsarin. Lokacin da tsarin bayanai kamar jerin suna buƙatar wakiltar su, ya zama ruwan dare don amfani da jerin colon (ya zama ruwan dare a kan Unix da Unix-kamar) ko semicolon-deslineated (ya zama sananne a kan Windows da DOS).

Manazarta