bin၊ sbin၊ usr/bin၊ usr/sbin အကြား ကွာခြားချက်

နိုဝင်ဘာလ 30 ရက် 2010 တွင် David Collier က ရေးသားခဲ့သည်

busybox တွင် လင့်ခ်များကို ဤလမ်းညွှန်လေးခုအဖြစ် ခွဲထားသည်ကို သတိပြုမိသည်။
ဘယ် directory မှာ ဘယ် link တွေ လိမ်ရမယ်ဆိုတာ ဆုံးဖြတ်ဖို့ ရိုးရှင်းတဲ့ စည်းမျဉ်းအချို့ ရှိပါသလား။
ဥပမာအားဖြင့် kill သည် /bin တွင်ရှိပြီး killall သည် /usr/bin တွင်ရှိသည်... ဤဌာနခွဲတွင် မည်သည့်ယုတ္တိကိုမျှ မတွေ့ပါ။

Ken Thompson နှင့် Dennis Ritchie တို့သည် Unix ကို PDP-7 တွင် 1969 ခုနှစ်တွင် ဖန်တီးခဲ့ကြောင်း သင်သိပေမည်။ ထို့ကြောင့် 1971 ခုနှစ်ဝန်းကျင်တွင် ၎င်းတို့သည် RK11 disks တစ်စုံ (05 megabytes တစ်ခုစီ) ဖြင့် PDP-1,5 သို့ အဆင့်မြှင့်တင်ခဲ့သည်။

လည်ပတ်မှုစနစ် ကြီးထွားလာပြီး ပထမဒစ်တွင် အံမဝင်တော့သည့်အခါ ( root FS တွင်တည်ရှိသည် )၊ ၎င်းတို့သည် ပင်မလမ်းညွှန်များတည်ရှိရာ ဒုတိယအပိုင်းသို့ ရွှေ့ပြောင်းသွားသည် (ထို့ကြောင့် mount point ကို /usr ဟူသောစကားလုံးမှ ခေါ်သည် ။ အသုံးပြုသူကို)။ ၎င်းတို့သည် ထိုနေရာတွင် လိုအပ်သော OS လမ်းညွှန်များ (/bin, /sbin, /lib, /tmp ...) ကိုပွားပြီး ဖိုင်အဟောင်းသည် နေရာလွတ်ကုန်သွားသောကြောင့် ဒစ်ခ်အသစ်တစ်ခုပေါ်တွင် တင်ထားကြသည်။ ထို့နောက် ၎င်းတို့တွင် တတိယဒစ်တစ်ခုရှိကာ၊ ၎င်းတို့သည် ၎င်းကို /home directory တွင် တပ်ဆင်ပြီး OS သည် ကျန်ရှိသော disk နှစ်ခုတွင် နေရာလွတ်အားလုံးကို ယူနိုင်စေရန်အတွက် အသုံးပြုသူများ၏ home directory များကို ထိုနေရာတွင် ရွှေ့လိုက်ကြပြီး၊ သုံးမီဂါဘိုက် (အလို!)။

ဟုတ်ပါတယ်၊ သူတို့က " operating system boot သောအခါ၊ ၎င်းသည် ဒုတိယ disk ကို /usr တွင် mount လုပ်နိုင်ရမည်၊ ထို့ကြောင့် ဒုတိယ disk တွင် mount ကဲ့သို့သော program များကို /usr တွင်မထည့်ပါနှင့် သို့မဟုတ် သင့်တွင်ရှိမည်ဖြစ်သည်။ ကြက်နှင့်ဥပြဿနာ။" အဲဒါ ရိုးရှင်းပါတယ်။ ၎င်းသည် လွန်ခဲ့သော 6 နှစ်က Unix V35 တွင်ဖြစ်သည်။

/bin နှင့် /usr/bin (ထိုကဲ့သို့သောလမ်းညွှန်များအားလုံးကိုခွဲထုတ်ခြင်း) သည် ဗျူရိုကရက်များဆယ်စုနှစ်များကြာအောင် ကူးယူထားသော 70s မှ အကောင်အထည်ဖော်မှုအသေးစိတ်တစ်ခုဖြစ်သည်။ သူတို့ ဘယ်တော့မှ မေးခွန်းမမေးဘူး။ ဘာကွောငျ့သူတို့ကပဲလုပ်တယ်။ Linux မဖန်တီးမီကပင် ဤဌာနခွဲသည် အကြောင်းပြချက်များစွာဖြင့် အဓိပ္ပါယ်မရှိခဲ့တော့ပါ။

  1. boot လုပ်သောအခါတွင်၊ "ကျွန်ုပ်တို့သည် ထိုဖိုင်ကို အရင်လိုအပ်သည်" ကဲ့သို့သော ပြဿနာများကို ဂရုစိုက်သည့် initrd သို့မဟုတ် initramfs ကို အသုံးပြုပါသည်။ ဒါကြောင့် ကျွန်တော်တို့မှာ ရှိတယ်။ ရှိပြီးသား အခြားအရာအားလုံးကို တင်ရန်အသုံးပြုသည့် ယာယီဖိုင်စနစ်။
  2. မျှဝေထားသော စာကြည့်တိုက်များ (Berkley ရှိ အမျိုးသားများမှ Unix သို့ ပေါင်းထည့်ထားသည့်) သည် သင့်အား /lib နှင့် /usr/lib ၏ အကြောင်းအရာများကို လွတ်လပ်စွာ ပြောင်းလဲခွင့်မပြုပါ။ ဤအပိုင်းနှစ်ပိုင်းသည် တိုက်ဆိုင်ရမည် သို့မဟုတ် အလုပ်မဖြစ်ပါ။ တည်ငြိမ်သော ချိတ်ဆက်မှုများကြောင့် ၎င်းတို့သည် ထိုအချိန်က လွတ်လပ်ရေးရခဲ့သောကြောင့် ၁၉၇၄ ခုနှစ်တွင် ဖြစ်ပွားခဲ့ခြင်း မရှိပါ။
  3. စျေးပေါသော hard drive များသည် 100 ခုနှစ်ဝန်းကျင်တွင် 1990 megabyte barrier ကို ချိုးဖျက်ခဲ့ပြီး ထိုအချိန်တွင် partition ကို ပြန်လည်အရွယ်အစားဆော့ဖ်ဝဲလ် ပေါ်လာသည် (partition magic 3.0 သည် 1997 ခုနှစ်တွင် ထွက်လာသည်)။

ဟုတ်ပါတယ်၊ ကွဲပြားမှုတစ်ခုရှိတာကြောင့် လူတချို့က အဲဒါကို မျှတစေမယ့် စည်းမျဉ်းတွေ ပေါ်လာတယ်။ ကဲ့သို့ပင်၊ ယေဘုယျ OS အင်္ဂါရပ်အားလုံးအတွက် root partition လိုအပ်ပြီး သင်၏ local files များကို / usr တွင်ထည့်ထားရန်လိုအပ်သည်။ သို့မဟုတ် AT&T ဖြန့်ဝေသည့်အရာ၊ နှင့် /usr တွင် သင်၏ဖြန့်ဖြူးသောအရာ၊ IBM AIX၊ သို့မဟုတ် Dec Ultrix၊ သို့မဟုတ် SGI Irix ပေါင်းထည့်ထားပြီး /usr/local တွင် သင့်စနစ်အတွက် သီးခြားဖိုင်များပါရှိသည်။ ပြီးတော့ တစ်ယောက်ယောက်က /usr/local က ဆော့ဖ်ဝဲအသစ်ကို ထည့်သွင်းဖို့ သင့်တော်တဲ့နေရာမဟုတ်ဘူးလို့ ဆုံးဖြတ်လိုက်တယ်၊ ဒါကြောင့် /opt ထည့်လိုက်ကြရအောင်။ /opt/local ပေါ်လာရင် အံ့သြမှာမဟုတ်ပါဘူး...

ဟုတ်ပါတယ်၊ အနှစ် 30 အတွင်းမှာ၊ ဒီခွဲထွက်မှုကြောင့် စိတ်ဝင်စားစရာကောင်းတဲ့ ဖြန့်ဖြူးရေးဆိုင်ရာ စည်းမျဉ်းတွေ အားလုံးဟာ ပျောက်ကွယ်သွားခဲ့ပါပြီ။ ဥပမာအားဖြင့်၊ "/tmp ကို reboot တွင် ရှင်းလင်းထားသော်လည်း /usr/tmp မဟုတ်ပါ။" ( Ubuntu တွင်မူအရ /usr/tmp တွင်မရှိပါ၊ Gentoo /usr/tmp သည်ယခုစည်းမျဉ်းအရ /var/tmp သို့သင်္ကေတလင့်ခ်တစ်ခုဖြစ်ပြီး၊ ၎င်းကို reboot တွင်ရှင်းလင်းခြင်းမရှိပါ။ root FS သည် read-only ဖြစ်နေသည်၊ ထို့နောက်တွင် သင်သည် /usr သို့ ဘာမှရေးရန် မလိုအပ်ဘဲ /var သို့ ရေးရန် လိုအပ်ပါသည်။ အခြေခံအားဖြင့် တခါတရံ /var သို့ပြောင်းရန် ကြိုးစားခဲ့သော /etc မှလွဲ၍ ရေး၍မရပါ။)

Linux ဖောင်ဒေးရှင်းကဲ့သို့ (လွန်ခဲ့သည့်နှစ်များအတွင်းက အခမဲ့စံနှုန်းများအဖွဲ့ကို မြိုချခဲ့သည့်) ဗျူရိုကရက်များသည် ၎င်းတို့ထိုနေရာတွင် ရှိနေသည်ကို အဖြေရှာရန် မကြိုးစားဘဲ ဤစည်းမျဉ်းများကို မှတ်တမ်းတင်ပြီး ရှုပ်ထွေးအောင်လုပ်ဆောင်ရန် ပျော်ရွှင်ကြသည်။ PDP-05 ရှိ RK11 ဒစ်ခ်သည် သေးငယ်လွန်းသောကြောင့် Ken နှင့် Dennis တို့သည် OS ၏ အစိတ်အပိုင်းကို ၎င်းတို့၏ home directory သို့ ရွှေ့လိုက်ခြင်းဖြစ်သည်ကို သူတို့မသိကြပေ။

busybox က ဖိုင်တွေကို သမိုင်းကြောင်းအတိုင်း တီထွင်ထားသလိုပဲ ထားတယ်ဆိုတာ သေချာပါတယ်။ ယခုအချိန်အထိ ထိုသို့ပြုလုပ်ရန် အမှန်တကယ် အကြောင်းပြချက်မရှိပါ။ ကိုယ်တိုင်ကိုယ်ကျ၊ ကျွန်ုပ်သည် /bin၊ /sbin နှင့် /lib လင့်ခ်ကို /usr တွင် အလားတူလမ်းညွှန်များ ပြုလုပ်ထားသည်။ နောက်ဆုံးအနေနဲ့ embedded software နဲ့အလုပ်လုပ်တဲ့သူတွေက နားလည်ပြီး ရိုးရှင်းအောင်ကြိုးစားပါတယ်..။

source: www.habr.com

မှတ်ချက် Add