[linux-network] Re: linux ile 4 gb büyüklüğünde ki dosyaları indirebilen var mı?

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KOYLU (serdar@uludag.org.tr)
Date: Fri 30 Apr 2004 - 13:56:20 EEST


Selamlar..

> Selam,
>
> 32 bitlik sistemlerde en büyük dosya boyu 2GB'dır.
> Bu nedenle indirme işlemi 2GB'da duruyor.

DOS, 16 Bit'tir ama onda dosya boyu limiti 4GB'dir. SEEK_SET ve SEEK_CUR
limitide 2GB'dir. 2GB SEEK_SET sonrasinda 2GB SEEK_SET Yaparak 4GB
kullanabilirsiniz.

32 Bitlik bir sistem olmasi onemli degil, onemli olan gerekli sistem
cagrilarinin yeterince buyuk "long long integer" gibi degerlerle
yapilabilmesi. Tipik syscall registerler uzerinden exceptionlarla
yapiliyor malum. Burada iki registeri birden kullanmak gerekiyor. glibc
seviyesinde bu sorunu asmak uzere "int pos" kullanan "fseek" yerine
"off_t pos" kullanan "fseeko" (SUSv2 compliant) kullanilirsa bu sorun
olusmayabilir. Diger yandan 32 Bit sistemler uzerinde calisan linux
kernel icin "_llseek" (Linux-spesific) kullanimida mumkundur. deFacto
standart ext2 dosya sistemi icin, 1KB Blok boyu ile dosya boyu limiti
(INCOMPAT modunda) 16GB'dir. Blok boyu 8kb olursa, dosya boyu limitide
2TB'ye ulasir. Ama blok boyu CPU PageSize'dan buyuk olamaz ve bu sadece
SPARC gibi big pagesize destekleyen donanimlarda mumkundur. ext2 icin
partisyon buyuklugu 16TB (4k blok) ve 32 TB (8k blok) seklindedir ama
2.4 kernelde blok cihazlarin 2TB'den buyuk olamadiklarini hatirliyor
gibiyim.

Kisacasi sistem 32 bit oluncai dosya/partisyon boyu 32 bit'ten fazla
olamaz gibi bir yaklasim yok. Bu bir hayli bilesene baglidir ve guncel
durumda 64 Bit erisim mumkundur. 64 Bit, 64 Bit uzunlukta dosyalar demek
anlamina da gelmez. 2TB, 64 Bit'icin kucuk degerlerdendir (42 Bit filan
sadece)..

Saygi ve sevgiler...


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.