আপডেট 19 এপ্রিল 2015:
দু'বছর পরে এখনও এই ক্ষেত্রটিতে খুব কম আগ্রহ দেখা যাচ্ছে। তবে হ্যাকিনটোস সম্প্রদায়টি এখনও সক্রিয় রয়েছে, এর অর্থ হল যে এক্সএনও (চামিলিয়ন এবং কাঁটাচামচ) বুট করতে সক্ষম কয়েকটি ওপেন সোর্স নন-অ্যাপল বুটলোডারগুলির মধ্যে একটি এখনও বজায় রয়েছে এবং যোসেমাইট বুট করতে পারে। কিউইএমইউর মধ্যে ওএস এক্স ইয়োসেমাইট বুট করার সাফল্যের গল্পও রয়েছে। তদ্ব্যতীত, হ্যান্ডেল উইনোকম দিয়ে যাওয়া একজন (বর্তমানে অ্যাপল-নিযুক্ত) বিকাশকারীকে ধন্যবাদ , আমাদের কাছে xnu কার্নেলের একটি এআরএম পোর্ট রয়েছে । তিনি এই অঞ্চলে আমি সবচেয়ে বেশি সক্রিয় বিকাশকারী হিসাবে পরিচিত।
এছাড়া এই ছবির বিষয়বস্তু হল অমিত সিংয়ের Mac OS X এর internals শীঘ্রই আসছে। আমি সাধারণত মানুষের ব্যক্তিগত পৃষ্ঠাগুলি উল্লেখ করতে পছন্দ করি না; তবে সমস্ত তথ্য সহ ব্লগ সার্ভারটি কিছুটা অবিশ্বাস্য বলে মনে হচ্ছে, তাই অ্যামাইজোর টুইটার পৃষ্ঠায় তথ্য বাক্সটি দেখুন ।
আমি অ্যাপলের বিকাশ সরঞ্জামচেনটি পরিচালনা করতে পেরেছি (একটি স্ব-হোস্ট, তবে "ডারউইন এসডিকে" লিনাক্সেও পোর্ট করা হয়েছে )। আমি বিশ্বাস করি যে একটি ডারউইন ওএস এখনও স্ক্র্যাচ থেকে তৈরি করা সম্ভব হতে পারে - আমরা যে সমস্ত অনুপস্থিত হতে পারি সেগুলি হ'ল কয়েকটি ওপেনসোর্স কেেক্সটস। এই স্থানটি দেখুন, এবং যদি আপনি কীভাবে আগ্রহী umোল করতে জানেন তবে আমাকে জানান! :)
এই প্রশ্নের সংক্ষিপ্ত উত্তর:
প্রযুক্তিগতভাবে: হ্যাঁ
ব্যবহারিকভাবে: না *
বাইনারি চিটসের সাথে: সম্ভবত, তবে আইনীও নয় (অনির্ধারিত)
জেনেরিক হার্ডওয়ারের জন্য বাইনারি চিট সহ: উপরে হিসাবে (অনির্ধারিত)
* যদি না আপনি অ্যাপলে কাজ করেন (* ক্যালিফোর্নিয়ার সাধারণ দিক থেকে গলা পরিষ্কার করে *)
দীর্ঘ উত্তর:
এটি বরং দীর্ঘ হতে চলেছে। আমি কফি প্রস্তাব। আপনার যদি এটি পড়ার সময় / প্রবণতা না থাকে তবে আপনি "সমাপ্ত মন্তব্যগুলি" এ চলে যেতে পারেন।
ব্যবহারিকভাবে সম্ভব (না):
দুঃখের বিষয়, ডারউইনের ওএসের সংকলনটিকে নির্ভুলভাবে সম্ভব থেকে সংকলন করার জন্য অ্যাপল ডারউইনের প্রয়োজনীয় অনেকগুলি KEXTs এবং বাইনারিগুলির উত্স কোডটি প্রত্যাহার করেছে । এটি এখনও প্রযুক্তিগতভাবে সম্ভব (আপনি যথাযথভাবে এটি প্যাচ করার জন্য উত্সটি নিজেরাই লিখতে পারেন), তবে এটি করার জন্য আমার কাছে সময়, দক্ষতা বা ঝোঁক নেই কেবল (এবং আমি সন্দেহ করি যে ভিড় তহবিল সম্প্রদায়টি খুব আগ্রহী হবে)।
আশ্চর্যজনকভাবে মূল টিপিং পয়েন্টটি ছিল ডারউইন 10 এর মুক্তি, যা xnu কে x86_64-জমিতে নিয়ে এসেছিল। বেশিরভাগ প্রয়োজনীয় উত্স তখনকার আগে ছিল তবে কেবল x86। সময়ের সাথে সাথে, অ্যাপলের "ওপেন সোর্স" এর অর্থ "কেবলমাত্র ওপেন সোর্স কেবলমাত্র অ্যাপল এর হার্ডওয়্যার" তে স্থানান্তরিত হয়েছে বলে মনে হচ্ছে অ্যাপলের কেএকএসটি এখন বাইরের বড় হার্ডওয়্যার-নির্দিষ্ট, এমনকি আপনি যদি সমস্ত কিছু অর্জন করতে পারেন এবং চলমান (নীচে দেখুন) আপনি এখনও অ্যাপল হার্ডওয়্যারের মধ্যে সীমাবদ্ধ থাকবেন।
প্রযুক্তিগতভাবে সম্ভব (হ্যাঁ):
তবে সব হারিয়ে যায় না। এলএফএস গাইডটি কাজে আসেনি এবং অবশ্যই ডারউইন ওএস তৈরি না করে প্রয়োজনীয় সমস্ত সেটআপ করা যেতে পারে। তবুও উপস্থাপিত পদক্ষেপগুলি আপনাকে সামনের পথটির প্রায় সঠিক-সঠিক রোডম্যাপ, কার্নেল, বিয়োগ এবং বুটলোডার বিয়োগ করে দেয়। আমি বুটলোডার সমস্যা সমাধান করার ব্যবস্থা করেছিলাম, যদিও (কমপক্ষে অ্যাপল হার্ডওয়ারের জন্য)।
আপনি যদি আগ্রহী হন তবে আপনাকে কী করতে হবে তার একটি সম্পূর্ণ ওভারভিউ এখানে:
- একটি ড্রাইভে একটি পার্টিশন (8 জিবি বা তার চেয়ে বেশি বড়) মুছুন (অভ্যন্তরীণ বা বাহ্যিক - কোনও বিষয় নয়) এবং এটিকে ম্যাক ওএস এক্সটেন্ডেড (জর্নলেড) (এইচএফএস +) হিসাবে ফর্ম্যাট করুন।
নিশ্চিত করুন যে এটির একটি জিআইডি পার্টিশন টেবিল (জিপিটি) রয়েছে এবং আপনি যখন এটি করেন তখন এটি একটি ইএফআই পার্টিশন থাকে। এটি করার সহজতম উপায় হ'ল অ্যাপলের ডিস্ক ইউটিলিটি, তবে আপনি চাইলে কমান্ড লাইনে এটি করতে পারেন (এটি করার জন্য টিউটোরিয়াল অন্য কোথাও রয়েছে)। গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি যখন চালান distil list diskNsM
, নিম্নলিখিত তথ্যগুলি সঠিক হওয়া উচিত:
পার্টিশনের ধরণ: অ্যাপল_এইচএফএস
ওএস ইনস্টল করা যায়: হ্যাঁ
পঠনযোগ্য মিডিয়া: না No
পঠনযোগ্য খণ্ড: না
এখন এলএফএস গাইড অনুসরণ করুন (অভিযোজন সহ)।
Intoোকান (প্রকৃত মাউন্ট পয়েন্ট ব্যবহার করে, অবশ্যই) এবং এর মধ্যেDFS=/Volumes/DarwinOS
.bashrc
.bash_profile
ব্যবহারকারীর ডিরেক্টরি তৈরি করুন ( chown
একেবারে শেষে 0: 0 এ):
sudo mkdir -v "$DFS"/usr
প্রবেশ করুন root
:
sudo su -
উত্স ডিরেক্টরি তৈরি করুন এবং স্টিকি বিট সেট করুন:
mkdir -v "$DFS"/sources # Make sure you still have $DFS defined; if not, redefine it.
chmod -v a+wt "$DFS"/sources
সরঞ্জামগুলি ডিরেক্টরি তৈরি করুন এবং এটিতে একটি সিমিলিংক তৈরি করুন যাতে আমরা এটিকে সহজেই $ PATH- এ পরে যুক্ত করতে পারি (এখনও root
পথে চলতে পারি):
mkdir -v "$DFS"/tools
ln -sv "$DFS"/tools /
logout # Leave root
আপনি চান সমস্ত প্যাকেজগুলির উত্স ডাউনলোড করুন। এটি অবশ্যই, যেখানে আপনি আটকে যান। সমস্ত প্রয়োজনীয়গুলি সেখানে নেই। (ঘটনাচক্রে, আমি binutils
যাইহোক জিএনইউর পছন্দ করি ))
ধরে নিই যে বাস্তবে আপনার প্রয়োজনীয় সমস্তগুলি ডাউনলোড করতে পারেন, আসুন টিপুন।
বিশেষত ডিএফএসের জন্য সুবিধাবঞ্চিত ব্যবহারকারী তৈরি করুন (এলএফএস দ্বারা প্রস্তাবিত):
sudo dscl . -create /Users/lfs
sudo dscl . -create /Users/lfs UserShell /bin/bash
sudo dscl . -create /Users/lfs RealName "LFS DFS"
sudo dscl . -create /Users/lfs UniqueID "2070" # whatever you like
sudo dscl . -create /Users/lfs PrimaryGroupID 20 # Default 'staff'
sudo dscl . -create /Users/lfs NFSHomeDirectory /Users/lfs
sudo dscl . -passwd /Users/lfs dfs # Again to taste.
নোট করুন আপনাকে ম্যাকের মাধ্যমে নতুন ব্যবহারকারীর হোমডির নিজেই তৈরি করতে হবে:
sudo mkdir /Users/lfs
sudo chown -R lfs:staff /Users/lfs/
এখন নতুন ব্যবহারকারীকে উত্স এবং সরঞ্জামগুলিতে অ্যাক্সেসের অনুমতি দিন
sudo chown -v lfs $DFS/tools
sudo chown -v lfs $DFS/sources
প্রবেশ করুন:
su - lfs
Password: dfs
পরিবেশ পরিষ্কার করার জন্য নিম্নলিখিত কমান্ডটি চালান (এলএফএস থেকে):
cat > ~/.bash_profile << "EOF"
echo "Entering clean environment…"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
এখন নিম্নলিখিত কমান্ডটি চালান (যদি আপনি নিশ্চিত না হন তবে এটি কী করে তার জন্য এলএফএস দেখুন):
cat > ~/.bashrc << "EOF"
set +h
umask 022
DFS=/Volumes/*DarwinOS* # As previously
LC_ALL=POSIX
LFS_TGT=$(uname -m)-dfs-darwin1242 # Look inside gcc/configure for possibilities!
PATH=/tools/bin:/bin:/usr/bin # Note symlink from before
export LFS LC_ALL LFS_TGT PATH
echo ".bashrc script complete. Environment is ready."
EOF
জিসিসি /configure
বেশ নমনীয়। *-
প্যাটার্নটি গ্রেপ করার চেষ্টা করুন বা gcc -v
আপনার হোস্ট মেশিনটি কীভাবে কনফিগার করা হয়েছে তা দেখার জন্য এটি চালান এবং সেটিকে অনুলিপি করুন।
- এখন lfs ব্যবহারকারীর লগআউট করুন এবং আবার লগ ইন করুন You আপনার এখন পরিষ্কার পরিবেশ থাকা উচিত।
- এখন থেকে সমস্ত কিছু এলএফএস ব্যবহারকারীর ভিতরে স্থান নেয়। আপনি লক্ষ্য করবেন যে আমি কেবলমাত্র 'ডিএফএস' চিহ্নগুলিতে অর্ধেক 'এলএফএস' চিহ্নকে রূপান্তর করতে কিছুটা অলস ছিলাম। সে সম্পর্কে দুঃখিত তবে আপনি ধারণাটি পেয়েছেন।
ঠিক এখন অনুমানমূলক অংশে।
এখান থেকে এটি স্ট্যান্ডার্ড এলএফএস পদ্ধতি হতে পারে: উত্স উত্স, বিল্ড, ইনস্টল, পরীক্ষা, উত্স মুছুন। দ্রবীভূত করুন 2 টি পাসবিন্ট, জিসিসি এবং গ্লিবসি এখনও প্রয়োজনীয় তবে আপনার একটি কার্যকরী কপি থাকতে হবে libc++.1.dylib
- এবং আপনাকে এটি 2 পাসের মধ্যেও করতে হবে। আপনি আরও কিছু তথ্যের জন্য এলএলভিএম প্রকল্পের লিবিসিএক্সএক্স পৃষ্ঠা দেখতে পারেন । একবার সংকলিত হয়ে গেলে, আপনি এটি প্রবেশ করতে পারেন /usr/lib
। আপনাকে xnu কার্নেল সংকলন এবং ইনস্টল করতে হবে (এটি করার জন্য ওয়েবের চারপাশে কয়েকটি টিউটোরিয়াল রয়েছে) এবং তারপরে KEXT গুলি ইনস্টল করতে হবে। এমনকি যদি সমস্ত প্রয়োজনীয় KEXTs উপলব্ধ ছিল, তবুও আপনাকে সেগুলি হাতে। টেক্সট প্যাকেজে রাখতে হবে। আবার কমান্ড লাইনে কোনও KEXT হ্যান্ড-ক্র্যাফ্ট করার টিউটোরিয়াল রয়েছে ।
চূড়ান্ত বিটটি সিস্টেমটিকে বুটেবল করে তুলছে। এটি করতে, আপনি নিম্নলিখিত কমান্ডটি চালাবেন:
"$DFS/usr/sbin/bless" --folder "$MOUNT/System/Library/CoreServices" --bootefi --verbose
প্রকৃতপক্ষে আশীর্বাদ করার অবস্থানটি কোনও পার্থক্য করে না। এই ফোল্ডারটি কেবল অ্যাপল-স্ট্যান্ডার্ড।
যাই হোক, কার্নেল অভিমানী এবং KEXTs ঠিক জায়গায় ছিল, আপনি সঠিক কপি ছিল dyld
, launchd
ইত্যাদি জায়গায় এবং boot.efi
সঠিকভাবে কাজ ছিল, সিস্টেম কাজ করছে এবং বুটেবল করা উচিত!
নোট করুন যদি আপনি সত্যিই আপনার কোনও ছদ্মবেশ চালনাতে পারেনlaunchd
- এটি কেবলমাত্র একটি বাশ প্রম্পট চালানোর জন্য একটি স্ক্রিপ্ট - যা পিউয়ারডারভিন ন্যানো করেন।
আবার, সব উপায়ে, KEXTs এবং বাইনেরিতে নিজেকে লিখতে যদি আপনি চান - এটা হল টেকনিক্যালি সম্ভব। কাজ শেষ হয়ে গেলে আমাকে ফোন করুন।
বাইনারি চিটসের সাথে: সম্ভবত, তবে আইনীও নয় (অনির্ধারিত)
সুতরাং, কেন আপনি শুধু মাউন্টেন সিংহের বাইরে বাইনারি, কেএকএসটি এবং প্রয়োজনীয় ফাইলগুলি ছিঁড়ে ফেলতে পারবেন না, ভলিউমকে আশীর্বাদ করুন এবং যেতে পারবেন? ভাল, আপনি সম্ভবত পারেন। তবে এটি করার জন্য আপনারও লাইসেন্স দরকার। এছাড়াও, আপনি যদি এটি করেন তবে আপনি মূলত মাউন্টেন সিংহের একটি অনুলিপি তৈরি করেছেন। বিন্দু পাশে এই ধরণের না?
জেনেরিক হার্ডওয়ারের জন্য বাইনারি চিট সহ: উপরে হিসাবে (অনির্ধারিত)
এই প্রায় কাছাকাছি হয় OSx86 প্রকল্পের। আবার আপনি সরাসরি আইনী সমস্যাগুলিতে সরাসরি চলে যান। এই শেষ দুটি পদ্ধতি অবশ্যই নিশ্চিত যে কোনও প্রশ্ন নেই - আপনি জেনেরিক হার্ডওয়ারের উপর মাউন্টেন সিংহ চালাতে পারবেন তা তার প্রমাণ - তবে এর পুরো বিষয়টিটি আপনার নিজস্ব ডারউইন ওএসকে উত্স থেকে বৈধভাবে সংকলন করতে সক্ষম হয়েছিল।
সাইড নোট
আপনি লক্ষ্য করেছেন যে আমি ইচ্ছাকৃতভাবে 32-বিট কিছু এড়ানো হয়েছে। এমন একটি বিশ্বে যেখানে প্রতিটি বড় ওএস 64৪-বিটে উপলব্ধ a২-বিটকে সংকলন করার পক্ষে তেমন কোনও পয়েন্ট নেই। অ্যাপল এখানে ডারউইনের ডিস্ক চিত্র সরবরাহ করেছিল (ডারউইন 9 অবধি) । তারা আমার উইন্ডোজ বাক্সে পুরোপুরি কাজ করেছিল।
মন্তব্য আখেরী
আমার ধারণা দিন শেষে লোকেরা ডারউইনের জন্য ম্যাক কিনে না, তারা ম্যাকের জন্য অ্যাকোয়া কিনে। ফলস্বরূপ, ডারউইনের একটি স্বতন্ত্র, ওপেন সোর্স পণ্য হিসাবে সমর্থন ক্রমশ কমে গেছে যেখানে এটি সত্যই উন্মুক্ত উত্স সম্প্রদায়ের কাছে একটি টোকেন অঙ্গভঙ্গি। অন্যান্য সামান্য বিদ্রূপজনক সত্যটি হ'ল এটির অনেক কিছু জানতে, আপনাকে সরাসরি OSx86 প্রকল্পে ঝাঁপিয়ে পড়তে হবে, যা একেবারে অনুমোদিত নয় (একে নির্দোষভাবে বলতে)। তারপরেও, চারপাশে প্রচুর তথ্য নেই। পিওরডারউইন শুরু করার জন্য একটি দুর্দান্ত জায়গা এবং জোনাথন লেভিনের বইটি xnu- এর সবকিছুর জন্য একটি অমূল্য রেফারেন্স।
এটি কাজের একটি অত্যন্ত শিক্ষামূলক বছর হয়ে গেছে, এবং আমি কীভাবে এটি করতে পারি তা আমি প্রায় খুশিই হলাম যতটা বাস্তবে আমি এটি করবো। আমি কিছু পর্যায়ে এটির কাজ বন্ধ করতে যাচ্ছি যদিও এখন এবং এখন is চূড়ান্ত নিরর্থক চিৎকারে অ্যাপলকে বলে, আপনি যখন ম্যাভারিক্সকে ছেড়ে দিবেন তখন ডারউইনের আরও একটি বিল্ড তৈরি করার জন্য জিজ্ঞাসা করা খুব বেশি হবে?