- Katılım
- 17 Tem 2006
- Mesajlar
- 1,866
- Reaction score
- 0
- Puanları
- 0
Düşük Bellekli Bilgisayarlarda Linux Kullanımı
Giriş :
Bu dökümanın amacı, düşük hafızaya sahip ya da hafıza arttırımına gidilmesi henüz düşünülmeyen donanımlarda Linux'un nasıl kullanılacağı ve hafıza kullanımı düşürücü nasıl önlemler alınması gerektiğini açıklamaktır.
Linux Çekirdegi :
=================
Tüm Linux dagıtımları ile gelen çekirdekler (kernel)genellikle cok sisirilmistir ve kullanmayacagımız bir çok parçacık ile gelmektedir. Eger ilk kurdugunuzdan beri çekirdeginizi hiç yeniden derlemediyseniz, hemen yeniden derlemenizi tavsiye ederim. "Çekirdek - NASIL (Gorkem Cetin , Sertan Girgin )" bu Türkçe döküman size kendi çekirdeginizi derlemeniz konusunda yardımcı olacaktır. Yeniden derleyeceginiz çekirdekte dikkat etmeniz gerekenler; sadece isinize yarayacak olan eklentileri derleme islemine katmaktır. Örnek olarak : SCSI arabirimi bulundurmayan bir makinede, SCSI destekli bir çekirdek derlemek anlamsızdır...
Çekirdek ile ilgili olarak deginecegim son nokta mödüller.Aynen derleme isleminde oldugu gibi, modül seçiminde de dikkatli olunması gerekmekte. Eger iyi bir sekilde modül ve salt derlenmis kod paylasımı yapılırsa, çekirdek ile hafıza arasındaki sorun giderilmis olacaktır. Mödüller hakkında daha fazla bilgi için : "Modules mini-HOWTO, by Riley H. Williams" dökümanına basvurabilirsiniz.
Sanal Konsollar :
=================
Sanal konsollar, hafıza kullanımını düsürebilmeniz için, en iyi yollardan birisidir. Genellikle Linux dagıtımlarında 6 adet sanal konsol gelmektedir. (CTRL + F(1-6)) Ne kadar çok beklemede sanal konsolunuz varsa, o kadar çok hafızanız kullanılıyor demektir.6 adet sanal konsol, yaklasık 4 megabyte hafıza gerektirmektedir. Bunlardan bir kaçını devreden çıkaratarak, hafızadan kazanç saglayabilirsiniz.
Nasıl :
* Herhangi bir metin düzenleyicisi (text editor) ile
/etc/inittab dosyasını açın.
* İçindeki satırlara göz atın.
'c1:12345:respawn:/sbin/getty tty1 38400 linux' gibi satırlar göreceksiniz. En yüksek numaralı;
Örneğin : c6 ile başlayan benzer satırların başına '#' işareti koyarak, bu konsolları devre dışı bırakın.
--
'# c6:12345:respawn:/sbin/getty tty6 38400 linux' gibi...
--
Eğer birden çok işi aynı anda yapmayacaksanız veya çok kullanıcılı, sunucu bir makineniz yoksa, 3 sanal konsol yeterli olacaktır.
* Makinenizi yeniden başlattığınızda, daha az sanal konsolu ama daha fazla boş hafızası olan bir Linux makineye sahip olacaksınız.
Sunucular :
Birçok Linux dağıtımı , belki de hiç bir zaman kullanmayacağınız, çalışır haldeki sunucularla gelmekte. Arka planda duran ve bağlantı durumunda çalışmaya başlayan bu sunucular da hafızanızı boş yere dolduranlardan.
Bu sunucular bir betik (script) aracılığı ile çalıştırılır. Bu betiklerin dosya yapısı olarak nerede tutulduğu dağıtımdan dağıtıma değişmekte. Kendi makinemde (Slackware) bu betikler
/etc/rc.d/rc.* altında yer alıyor.
Eğer Unix Kabuk Programlama konusunda önceden bilgi sahibi iseniz bu size yararlı olacak. Ama hiç bilmeyenler için bir kaç küçük açıklama ile bazı temel noktaları anlatmak istiyorum.
(Unix Kabuk Programlama konusunda daha fazla Türkçe kaynak için Linux İşletim Sistemi isimli kitaptan yaralanabilirsiniz http://www.linux.org.tr/belgeler/lis )
# ile başlayan satırlara comment adı verilir ve kabuk (shell) bu satırları işlemez. Sunucuları başlatan betikler çoğunlukla gereken derlenmiş dosyaların dizin yapısı içinde olup olmadığını
ve çalıştırma izinlerini kontrol edip, durumların hepsi sağlanıyorsa ilgili sunucuyu başlatırlar.
if [durum]
[gerekenleri yap]
fi
Burada kabuk, istediği durumların sağlanıp sağlanmadığını if deyimi ile kontrol ediyor. Eğer durumlar sağlanmış ise [gerekenleri yap] kısmına geçip, ilgili sunucuyu gereken parametreleri ile başlatıyor. Sizin yapmanız gereken bu sunucuyu devre dışı bırakmak ve bunu yaparken , sadece kontrol mekanizmasını devre dışı bırakmak. if deyiminden başlayarak, if i sona erdiren fi deyimine kadar # (comment) koyarsanız bu sunucu devre dışı kalmış olacaktır.
Sisteminizde hangi sunucuların calıştığını ps aux komutu ile öğrenebilirsiniz. Bu komut size o an devredeki "process" leri gösterecektir. Buradan isimlerine bakarak hangilerinin sizin kendi
"procsess" lerinizi olduğunu hangilerinin olmadığını anlayabilirsiniz.
Bir sunucunun hangi betik aracılğı ile çalıştırıldığını öğrenmek için :
1) cd /etc/rc.d
2) grep -n [sunucu-ismi] rc.*
komutlarını sırası ile verin.
(Dikkat : Burada /etc/rc.d olarak Slackware sürümündeki betik yeri verilmiştir. Farklı bir sürümde bu dosya yerleri çok daha değişik olabilir. )
grep komutu çıktısına bakarak aradığınız sunucunun hangi betikte olduğunu ve betiğin neresinde yer aldığını görebilirsiniz.
Bazı Sunucular ve Görevleri :
inetd :
inetd sunucusu makinenizdeki telnet, ftp, talk gibi servislere uzaktan erişimi sağlar. Eğer makinenizi bir sunucu olarak kullanmayacaksanız ve uzaktan erişim sağlamasını istemiyorsanız bu sunucuyu kaldırabilirsiniz.
ldp :
ldp sunucusu Linux makinenizden 'lpr' komutu ile yazıcı çıktısı almanızı sağlar. Eğer bir yazıcınız yoksa, bu sunucuyu rahatlıkla devre dışı bırakabilirsiniz. Ama bir yazıcınıza varsa ve çıktı almanız gerekiyorsa, dj-printcap isimli sunucuyu size tavsiye ederim. Herhangi bir SUNSITE (*1) yansısı altında /pub/Linux/system/Printing/ dizininden dj-printcap.tar.gz adlı dosyaya ulaşabilirsiniz.
nfs ve mountd :
Bu iki sunucu NFS ( Network File System ) için kullanılır. Eğer makinenizi bir ağda dosya sunucusu olarak calıştırmayacaksanız veya uzaktaki diğer UNIX makinelere direkt olarak harddiskinizi açmayacaksanız, bu iki sunucuyu kaldırmanızda bir sakınca yok.
(*) NFS hakkında daha fazla bilgi için H.Çağlar Bilir tarafından çevrilmiş NFS-Kök ve NFS-Kök-İstemci dökümanlarından yararlanabilirsiniz.
portmap :
portmap sunucusu RPC servislerini karşılama ve kullandırma amaçlı bir sunucudur. Eğer bir NFS sunucusuna bağlanmayacaksanız ve kullandığınız programlar RPC servislerini gerektirmiyorsa, bu sunucularu devre dışı bırakabilirsiniz.
sendmail :
Sendmail en fazla hafıza kullanan sunuculardan birisidir. Sendmail, elektronik posta alıp verme işlemlerinizi gerçekleştiren sunucudur. Eğer makinenizi bir elektronik posta sunucusu olarak çalıştırmayacaksanız bu sunucuyu kaldırabilirsiniz.Ayrıca, bazı programlar elektronik posta göndermek için makinenizde çalışan, sendmail programını kullanırlar. Bu programlara başka bir elektronik posta sunucusu gösterirseniz problem oratadan kalkmış olacaktır.
httpd :
Birçok Linux dağıtımı Apache WWW sunucusu ile geliyor. Eğer makinenizi bir WWW sunucusu olarak kullanmayacaksanız, bu sunucuyu kaldırmanızı tavsiye ederim. Bir ev kullanıcısı iseniz ve sadece Internet'te dolaşıp, ofis işlerinizi yürütüyorsanız, zaten bu sunucuya hiç ihtiyacınız olmaz.
DİĞERLERİ :
Sisteminizde çalışan diğer sunucular da olabilir. Bunlara artık kendiniz karar vermek
durumdasınız. Eğer gereksiz gorüyorsanız, hiç acımayın.
(!) DİKKAT : klogd ve syslogd sunucularına mutlaka acıyın. Çünkü bu sunucular, sistem loglarını tutmak ve kernel dinamik modül işlemlerini yürütmek için çok gerekli...
Sonuç :
Yukarıda bahsettiklerimizin tümü, hafıza kullanımını biraz daha azaltmak için ne gibi önlemler alabileceğimizdi. Umarim ki sizlere sınırlı hafızanızı nasıl daha verimli kullanabileceğiniz konusunda bir yol göstermişimdir.
Todd Burgess
[email protected]
http://eddie.cis.uoguelph.ca/~tburgess
Çeviren :
~~~~~~~~~
Berk Demir
Giriş :
Bu dökümanın amacı, düşük hafızaya sahip ya da hafıza arttırımına gidilmesi henüz düşünülmeyen donanımlarda Linux'un nasıl kullanılacağı ve hafıza kullanımı düşürücü nasıl önlemler alınması gerektiğini açıklamaktır.
Linux Çekirdegi :
=================
Tüm Linux dagıtımları ile gelen çekirdekler (kernel)genellikle cok sisirilmistir ve kullanmayacagımız bir çok parçacık ile gelmektedir. Eger ilk kurdugunuzdan beri çekirdeginizi hiç yeniden derlemediyseniz, hemen yeniden derlemenizi tavsiye ederim. "Çekirdek - NASIL (Gorkem Cetin , Sertan Girgin )" bu Türkçe döküman size kendi çekirdeginizi derlemeniz konusunda yardımcı olacaktır. Yeniden derleyeceginiz çekirdekte dikkat etmeniz gerekenler; sadece isinize yarayacak olan eklentileri derleme islemine katmaktır. Örnek olarak : SCSI arabirimi bulundurmayan bir makinede, SCSI destekli bir çekirdek derlemek anlamsızdır...
Çekirdek ile ilgili olarak deginecegim son nokta mödüller.Aynen derleme isleminde oldugu gibi, modül seçiminde de dikkatli olunması gerekmekte. Eger iyi bir sekilde modül ve salt derlenmis kod paylasımı yapılırsa, çekirdek ile hafıza arasındaki sorun giderilmis olacaktır. Mödüller hakkında daha fazla bilgi için : "Modules mini-HOWTO, by Riley H. Williams" dökümanına basvurabilirsiniz.
Sanal Konsollar :
=================
Sanal konsollar, hafıza kullanımını düsürebilmeniz için, en iyi yollardan birisidir. Genellikle Linux dagıtımlarında 6 adet sanal konsol gelmektedir. (CTRL + F(1-6)) Ne kadar çok beklemede sanal konsolunuz varsa, o kadar çok hafızanız kullanılıyor demektir.6 adet sanal konsol, yaklasık 4 megabyte hafıza gerektirmektedir. Bunlardan bir kaçını devreden çıkaratarak, hafızadan kazanç saglayabilirsiniz.
Nasıl :
* Herhangi bir metin düzenleyicisi (text editor) ile
/etc/inittab dosyasını açın.
* İçindeki satırlara göz atın.
'c1:12345:respawn:/sbin/getty tty1 38400 linux' gibi satırlar göreceksiniz. En yüksek numaralı;
Örneğin : c6 ile başlayan benzer satırların başına '#' işareti koyarak, bu konsolları devre dışı bırakın.
--
'# c6:12345:respawn:/sbin/getty tty6 38400 linux' gibi...
--
Eğer birden çok işi aynı anda yapmayacaksanız veya çok kullanıcılı, sunucu bir makineniz yoksa, 3 sanal konsol yeterli olacaktır.
* Makinenizi yeniden başlattığınızda, daha az sanal konsolu ama daha fazla boş hafızası olan bir Linux makineye sahip olacaksınız.
Sunucular :
Birçok Linux dağıtımı , belki de hiç bir zaman kullanmayacağınız, çalışır haldeki sunucularla gelmekte. Arka planda duran ve bağlantı durumunda çalışmaya başlayan bu sunucular da hafızanızı boş yere dolduranlardan.
Bu sunucular bir betik (script) aracılığı ile çalıştırılır. Bu betiklerin dosya yapısı olarak nerede tutulduğu dağıtımdan dağıtıma değişmekte. Kendi makinemde (Slackware) bu betikler
/etc/rc.d/rc.* altında yer alıyor.
Eğer Unix Kabuk Programlama konusunda önceden bilgi sahibi iseniz bu size yararlı olacak. Ama hiç bilmeyenler için bir kaç küçük açıklama ile bazı temel noktaları anlatmak istiyorum.
(Unix Kabuk Programlama konusunda daha fazla Türkçe kaynak için Linux İşletim Sistemi isimli kitaptan yaralanabilirsiniz http://www.linux.org.tr/belgeler/lis )
# ile başlayan satırlara comment adı verilir ve kabuk (shell) bu satırları işlemez. Sunucuları başlatan betikler çoğunlukla gereken derlenmiş dosyaların dizin yapısı içinde olup olmadığını
ve çalıştırma izinlerini kontrol edip, durumların hepsi sağlanıyorsa ilgili sunucuyu başlatırlar.
if [durum]
[gerekenleri yap]
fi
Burada kabuk, istediği durumların sağlanıp sağlanmadığını if deyimi ile kontrol ediyor. Eğer durumlar sağlanmış ise [gerekenleri yap] kısmına geçip, ilgili sunucuyu gereken parametreleri ile başlatıyor. Sizin yapmanız gereken bu sunucuyu devre dışı bırakmak ve bunu yaparken , sadece kontrol mekanizmasını devre dışı bırakmak. if deyiminden başlayarak, if i sona erdiren fi deyimine kadar # (comment) koyarsanız bu sunucu devre dışı kalmış olacaktır.
Sisteminizde hangi sunucuların calıştığını ps aux komutu ile öğrenebilirsiniz. Bu komut size o an devredeki "process" leri gösterecektir. Buradan isimlerine bakarak hangilerinin sizin kendi
"procsess" lerinizi olduğunu hangilerinin olmadığını anlayabilirsiniz.
Bir sunucunun hangi betik aracılğı ile çalıştırıldığını öğrenmek için :
1) cd /etc/rc.d
2) grep -n [sunucu-ismi] rc.*
komutlarını sırası ile verin.
(Dikkat : Burada /etc/rc.d olarak Slackware sürümündeki betik yeri verilmiştir. Farklı bir sürümde bu dosya yerleri çok daha değişik olabilir. )
grep komutu çıktısına bakarak aradığınız sunucunun hangi betikte olduğunu ve betiğin neresinde yer aldığını görebilirsiniz.
Bazı Sunucular ve Görevleri :
inetd :
inetd sunucusu makinenizdeki telnet, ftp, talk gibi servislere uzaktan erişimi sağlar. Eğer makinenizi bir sunucu olarak kullanmayacaksanız ve uzaktan erişim sağlamasını istemiyorsanız bu sunucuyu kaldırabilirsiniz.
ldp :
ldp sunucusu Linux makinenizden 'lpr' komutu ile yazıcı çıktısı almanızı sağlar. Eğer bir yazıcınız yoksa, bu sunucuyu rahatlıkla devre dışı bırakabilirsiniz. Ama bir yazıcınıza varsa ve çıktı almanız gerekiyorsa, dj-printcap isimli sunucuyu size tavsiye ederim. Herhangi bir SUNSITE (*1) yansısı altında /pub/Linux/system/Printing/ dizininden dj-printcap.tar.gz adlı dosyaya ulaşabilirsiniz.
nfs ve mountd :
Bu iki sunucu NFS ( Network File System ) için kullanılır. Eğer makinenizi bir ağda dosya sunucusu olarak calıştırmayacaksanız veya uzaktaki diğer UNIX makinelere direkt olarak harddiskinizi açmayacaksanız, bu iki sunucuyu kaldırmanızda bir sakınca yok.
(*) NFS hakkında daha fazla bilgi için H.Çağlar Bilir tarafından çevrilmiş NFS-Kök ve NFS-Kök-İstemci dökümanlarından yararlanabilirsiniz.
portmap :
portmap sunucusu RPC servislerini karşılama ve kullandırma amaçlı bir sunucudur. Eğer bir NFS sunucusuna bağlanmayacaksanız ve kullandığınız programlar RPC servislerini gerektirmiyorsa, bu sunucularu devre dışı bırakabilirsiniz.
sendmail :
Sendmail en fazla hafıza kullanan sunuculardan birisidir. Sendmail, elektronik posta alıp verme işlemlerinizi gerçekleştiren sunucudur. Eğer makinenizi bir elektronik posta sunucusu olarak çalıştırmayacaksanız bu sunucuyu kaldırabilirsiniz.Ayrıca, bazı programlar elektronik posta göndermek için makinenizde çalışan, sendmail programını kullanırlar. Bu programlara başka bir elektronik posta sunucusu gösterirseniz problem oratadan kalkmış olacaktır.
httpd :
Birçok Linux dağıtımı Apache WWW sunucusu ile geliyor. Eğer makinenizi bir WWW sunucusu olarak kullanmayacaksanız, bu sunucuyu kaldırmanızı tavsiye ederim. Bir ev kullanıcısı iseniz ve sadece Internet'te dolaşıp, ofis işlerinizi yürütüyorsanız, zaten bu sunucuya hiç ihtiyacınız olmaz.
DİĞERLERİ :
Sisteminizde çalışan diğer sunucular da olabilir. Bunlara artık kendiniz karar vermek
durumdasınız. Eğer gereksiz gorüyorsanız, hiç acımayın.
(!) DİKKAT : klogd ve syslogd sunucularına mutlaka acıyın. Çünkü bu sunucular, sistem loglarını tutmak ve kernel dinamik modül işlemlerini yürütmek için çok gerekli...
Sonuç :
Yukarıda bahsettiklerimizin tümü, hafıza kullanımını biraz daha azaltmak için ne gibi önlemler alabileceğimizdi. Umarim ki sizlere sınırlı hafızanızı nasıl daha verimli kullanabileceğiniz konusunda bir yol göstermişimdir.
Todd Burgess
[email protected]
http://eddie.cis.uoguelph.ca/~tburgess
Çeviren :
~~~~~~~~~
Berk Demir