উত্স কোড এবং পসিক্স স্ট্যান্ডার্ডে খনন করার পরে, আমি @ এন্টজে-এম এবং @ গিলস দ্বারা উত্তরটি বেশিরভাগই সঠিক say
POSIX.1-2-2008 থেকে মন্তব্যটি উদ্ধৃত করার মতো মূল্য , সংক্ষেপ হিসাবে:
512-বাইট ইউনিটগুলির ব্যবহার historicalতিহাসিক অনুশীলন এবং POSIX.1-2008 এর এই ভলিউমে ls এবং অন্যান্য ইউটিলিটিগুলির সাথে সামঞ্জস্যতা বজায় রাখে। এটি হ্যান্ডেল করে না যে ফাইল সিস্টেম নিজেই 512-বাইট ব্লকের উপর ভিত্তি করে। আপত্তিজনক ব্যবস্থা হিসাবে -k বিকল্পটি যুক্ত করা হয়েছিল। এটি স্ট্যান্ডার্ড বিকাশকারীদের দ্বারা একমত হয়েছিল যে সিস্টেম ভি এর সম্পূর্ণ historicalতিহাসিক ধারাবাহিকতার (বিএসডি সিস্টেমগুলিতে মিশ্র 512/1024-বাইট ব্যবহারের বিপরীতে) 512 বাইটই সেরা ডিফল্ট ইউনিট ছিল এবং 1024- বাইট ইউনিট একটি ভাল আপস ছিল। যে ব্যবহারকারীরা আরও লজিকাল 1024-বাইট পরিমাণ পছন্দ করেন তারা 512-বাইট ইউনিটে নির্ভর করে অনেক historicalতিহাসিক স্ক্রিপ্টগুলি না ভেঙে খুব সহজেই df -k এ df -k করতে পারেন
ব্লকের আকারের জন্য ls -s
:
পসআইএক্স বলে যে ডিফল্ট ব্লক আকারটি প্রয়োগ-সংজ্ঞায়িত হয়, যদি না -k
অপশন দেওয়া হয়।
বাস্তবায়িত ডিফল্ট ব্লক আকারটি GNU coreutils
ls
এখানে সংজ্ঞায়িত করা হয় GNU gnulib
:
gnulib/lib/human.c
/* The default block size used for output. This number may change in
the future as disks get larger. */
#ifndef DEFAULT_BLOCK_SIZE
# define DEFAULT_BLOCK_SIZE 1024
#endif
একটি পুরানো প্রতিশ্রুতি থেকে আসে:
commit 96e78d1f64d7c8d2acc5ad27dc3e73b96ae80585
Author: Jim Meyering <jim@meyering.net>
Date: Mon Jun 29 15:23:04 1998 +0000
প্রতিশ্রুতি বার্তা নিজেই 1024 নম্বর সম্পর্কে কিছুই বলেনি।
এবং মনে রাখবেন যে ব্লক আকারটি ব্যবহৃত হয়েছে du
এবং df
এটি 1024, ls
কেবল তাদের সাথে সমন্বিত থাকতে বেছে নিয়েছে। যদিও জন্য du
এবং df
এটা POSIX মান করার জন্য একটি confliction আছে (তাই এখানে এনভায়রনমেন্ট ভেরিয়েবল POSIXLY_CORRECT
আসে)। এটি জিএনইউ দলের সিদ্ধান্ত বলে মনে হয়, এই বিতর্ক সম্পর্কে উইকিপিডিয়া পৃষ্ঠা পসিক্স দেখুন ।
কমান্ডের জন্য stat
।
এটি পসিক্স স্ট্যান্ডার্ডের একটি অংশ নয়, তবে সিস্টেম কল । তবে ব্লকের আকারের ইউনিট মানক করা হয়নি ( sys_stat.h ):stat
স্ট্যাট স্ট্রাকচারের st_blocks সদস্যের ইউনিটটি POSIX.1-2-2008 এর মধ্যে সংজ্ঞায়িত করা হয়নি।
stat
কমান্ড কেবল দ্বারা উপলব্ধ তথ্য প্রদর্শন stat
সিস্টেম কল, এবং কয়েক বাদে 512 ব্লক আকার ব্যবহার করে (তারা অ লিনাক্স, যেমন এইচপি-ইউএক্স, আইবিএম, AIX ইত্যাদি দেখতে ম্যাক্রো সংজ্ঞায়িত gnulib/lib/stat-size.h
)।
সুতরাং 512 সংখ্যাটি আরও aতিহাসিক পছন্দ এবং লিনাক্স কনভেনশন।
GNU coreutils
(অত: পর ls
কমান্ড) লিনাক্স কার্নেল (অত: পর একটি অংশ নয় stat
কল), তারা বিভিন্ন ব্যবস্থা দৃষ্টিভঙ্গি লক্ষ্য করে করা হয়, GNU coreutils
মানুষের জন্য আরো (সহজ পড়তে), এবং হার্ডওয়্যার বিমূর্ত লিনাক্স কার্নেলে (অত: পর হার্ডওয়্যার কাছাকাছি)।
সম্পাদনা করুন: 4096 ব্লকের আকার হ'ল "আইও ব্লক" আকার, প্রকৃত শারীরিক ব্লকের আকার সম্ভবত এখনও 512 বাইট এই প্রশ্নটিতে বর্ণিত ।