Yadda Ake Canja Ma'auni na Lokacin Gudun Kernel ta Hanyar Dagewa da Mara Dagewa


A cikin Sashe na 13 na wannan yadda ake amfani da GRUB don gyara halayen tsarin ta hanyar ba da zaɓuɓɓuka zuwa kernel don aiwatar da aikin taya.

Hakazalika, zaku iya amfani da layin umarni a cikin tsarin Linux mai gudana don canza wasu sigogin kernel na lokacin aiki azaman gyare-gyare na lokaci ɗaya, ko dindindin ta hanyar gyara fayil ɗin sanyi.

Don haka, ana ba ku damar kunna ko kashe sigogin kernel akan tashi ba tare da wahala da yawa ba lokacin da ake buƙata saboda canjin da ake buƙata na yadda ake tsammanin tsarin zai yi aiki.

Gabatar da /proc Filesystem

Sabuwar ƙayyadaddun ƙayyadaddun ƙa'idodin Tsarin Tsarin Fayil yana nuna cewa /proc yana wakiltar tsohuwar hanyar sarrafa tsari da bayanan tsarin da sauran kernel da bayanan ƙwaƙwalwar ajiya. Musamman, /proc/sys shine inda zaku iya samun duk bayanai game da na'urori, direbobi, da wasu fasalolin kernel.

Haƙiƙanin tsarin ciki na /proc/sys ya dogara sosai akan kernel da ake amfani da shi, amma ana iya samun kundayen adireshi masu zuwa ciki. Bi da bi, kowannensu zai ƙunshi wasu ƙananan bayanai inda ake kiyaye ƙimar kowane nau'in siga:

  1. dev: sigogi don takamaiman na'urorin da aka haɗa da injin.
  2. fs: tsarin tsarin fayil (ƙididdiga da inodes, misali).
  3. kwaya: ƙayyadaddun tsarin kernel.
  4. net: tsarin sadarwa.
  5. vm: amfani da ƙwaƙwalwar ajiyar kernel.

Don canza sigogin lokacin aiki na kernel za mu yi amfani da umarnin sysctl. Ana iya duba ainihin adadin sigogi waɗanda za a iya gyara su tare da:

# sysctl -a | wc -l

Idan kana son duba cikakken jerin sigogin Kernel, kawai yi:

# sysctl -a 

Kamar yadda fitar da umarnin da ke sama zai ƙunshi MANYAN layuka, za mu iya amfani da bututun da ke biye da ƙasa don bincika shi da kyau:

# sysctl -a | less

Bari mu kalli layin farko. Lura cewa haruffan farko a kowane layi sun dace da sunayen kundayen adireshi a cikin /proc/sys:

Misali, layin da aka haskaka:

dev.cdrom.info = drive name:        	sr0

yana nuna cewa sr0 laƙabi ne na faifan gani. A wasu kalmomi, haka kernel \gani mai tuƙi kuma yayi amfani da wannan sunan don komawa zuwa gare shi.

A cikin sashe na gaba za mu yi bayanin yadda ake canza wasu sigogin lokacin aiki na kernel mafi mahimmanci a cikin Linux.

Yadda ake Canja ko Gyara Matsalolin Runtime na Linux Kernel

Dangane da abin da muka yi bayani zuwa yanzu, yana da sauƙi a ga cewa sunan siga ya dace da tsarin adireshi a cikin /proc/sys inda za'a iya samunsa.

Misali:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

Wannan ya ce, za mu iya duba ƙimar takamaiman sigar kwaya ta Linux ta amfani da ko dai sysctl sannan sunan siga ko karanta fayil ɗin da ke da alaƙa:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

Don saita ƙimar ma'aunin kwaya kuma muna iya amfani da sysctl, amma ta amfani da zaɓin -w sannan sunan siga, alamar daidai, da ƙimar da ake so.

Wata hanyar kuma ta ƙunshi amfani da echo don sake rubuta fayil ɗin da ke da alaƙa da sigar. A takaice dai, hanyoyin da ke biyowa daidai suke don kashe aikin isar da fakiti a cikin tsarinmu (wanda, ta hanya, ya kamata ya zama ƙimar da ta dace lokacin da akwatin bai kamata ya wuce zirga-zirga tsakanin cibiyoyin sadarwa ba):

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

Yana da mahimmanci a lura cewa sigogin kernel waɗanda aka saita ta amfani da sysctl za a aiwatar da su ne kawai yayin zaman na yanzu kuma za su ɓace lokacin da aka sake kunna tsarin.

Don saita waɗannan ƙimar har abada, shirya /etc/sysctl.conf tare da ƙimar da ake so. Misali, don kashe tura fakiti a /etc/sysctl.conf a tabbata wannan layin ya bayyana a cikin fayil ɗin:

net.ipv4.ip_forward=0

Sa'an nan kuma gudanar da bin umarni don amfani da canje-canje zuwa tsarin da ke gudana.

# sysctl -p

Sauran misalan mahimman sigogin lokacin aikin kernel sune:

fs.file-max yana ƙayyadad da iyakar adadin fayilolin da kernel zai iya rarrabawa tsarin. Dangane da abin da aka yi niyya na tsarin ku (web/database/server fayil, don suna wasu misalai), kuna iya canza wannan ƙimar don biyan bukatun tsarin.

In ba haka ba, za ku sami saƙon kuskure Buɗewa fayiloli da yawa a mafi kyau, kuma yana iya hana tsarin aiki yin boot a mafi munin.

Idan saboda kuskure mara laifi kun sami kanku a cikin wannan yanayin na ƙarshe, yi boot a yanayin mai amfani guda ɗaya (kamar yadda aka bayyana a cikin Sashe na 14 - Saka idanu da Sanya Iyakan Amfani da Tsarin Linux na wannan jerin.

Ana amfani da kernel.sysrq don kunna maɓallin SysRq a cikin madannai naka (wanda kuma aka sani da maɓallin allo na bugawa) don ba da damar wasu maɓallai masu haɗawa don kiran ayyukan gaggawa lokacin da tsarin ya zama mara amsa.

Ƙimar da aka saba (16) tana nuna cewa tsarin zai girmama haɗin Alt SysRq+ tare da aiwatar da ayyukan da aka jera a cikin takaddun sysrq.c da aka samu a kernel.org (inda maɓalli ɗaya ne a cikin b-z). Misali, Alt+SysRq+b zai sake kunna tsarin da karfi (amfani da wannan a matsayin makoma ta ƙarshe idan uwar garken ba ta da amsa).

Gargadi! Kada kayi ƙoƙarin danna wannan haɗin maɓalli akan injin kama-da-wane saboda yana iya tilasta tsarin mai masaukin ku don sake yi!

Lokacin saita zuwa 1, net.ipv4.icmp_echo_ignore_all zai yi watsi da buƙatun ping kuma ya sauke su a matakin kernel. Ana nuna wannan a cikin hoton da ke ƙasa - lura da yadda ake asarar buƙatun ping bayan saita wannan sigar kernel:

Hanya mafi kyau kuma mafi sauƙi don saita sigogin lokaci guda ɗaya shine ta amfani da fayilolin .conf a cikin /etc/sysctl.d, tara su ta rukuni.

Misali, maimakon saita net.ipv4.ip_forward=0 da net.ipv4.icmp_echo_ignore_all=1 a cikin /etc/sysctl.conf, zamu iya ƙirƙirar sabon fayil mai suna net.conf ciki /etc/ sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

Idan kun zaɓi yin amfani da wannan hanyar, kar ku manta da cire waɗannan layi ɗaya daga /etc/sysctl.conf.

Takaitawa

A cikin wannan labarin mun yi bayanin yadda ake canza sigogin lokaci na kernel, duka na dagewa da marasa naciya, ta amfani da sysctl, /etc/sysctl.conf, da fayiloli a ciki /etc/sysctl.d.

A cikin sysctl docs zaku iya samun ƙarin bayani akan ma'anar ƙarin masu canji. Waɗancan fayilolin suna wakiltar mafi kyawun tushen takaddun bayanai game da sigogi waɗanda za'a iya saita su ta hanyar sysctl.

Shin kun sami wannan labarin yana da amfani? Muna fatan kun yi. Kada ku yi shakka a sanar da mu idan kuna da wasu tambayoyi ko shawarwari don ingantawa.