প্রকল্প সম্পর্কে

Kyanite হলো Fedora Kinoite-এর একটি স্পিন, যা দৈনন্দিন ব্যবহারের ডেস্কটপ হিসেবে ডিজাইন করা হয়েছে এবং এটি একটি অপরিবর্তনীয় bootc (বুটেবল কন্টেইনার) ইমেজ হিসেবে বিতরণ করা হয়। এটি KDE Plasma সহ আসে এবং স্টক Kinoite-এর ত্রুটিগুলো মসৃণ করার পাশাপাশি কর্পোরেট ব্র্যান্ডিং সরিয়ে দেয়। স্টক Kinoite থেকে প্রধান পার্থক্যগুলোর মধ্যে রয়েছে Mozilla-এর অফিসিয়াল Flatpak-এর মাধ্যমে Firefox, Discover-এর পরিবর্তে Bazaar, প্রথম বুটে Flathub কনফিগার করা এবং Fedora-এর flatpak রিমোটগুলো সরিয়ে দেওয়া, ডিফল্ট শেল হিসেবে Fish, ডায়নামিক ওয়ালপেপার, CJK ইনপুটের জন্য fcitx5, এবং negativo17-এর মাধ্যমে h264/h265/AV1 প্লেব্যাকের জন্য আরও সম্পূর্ণ কোডেক স্ট্যাক। Docker, ভার্চুয়ালাইজেশন, Steam এবং ROCm-এর মতো ভারী উপাদানগুলো বেস ইমেজের পরিবর্তে ঐচ্ছিক sysext-এ আলাদা করা হয়েছে। ল্যাপটপ স্পিকার DSP সেটআপের জন্য PipeWire ফিল্টার চেইন অন্তর্ভুক্ত রয়েছে এবং CPU, ROCm বা Vulkan-এ স্থানীয় LLM চালানোর জন্য Ollama Quadlets প্রস্তুত রয়েছে। বিদ্যমান bootc সিস্টেমের জন্য ইনস্টলেশন সহজ: `sudo bootc switch ghcr.io/alyraffauf/kyanite:stable` দিয়ে ইমেজে সুইচ করুন এবং রিবুট করুন। `ujust` কমান্ড ফ্রেমওয়ার্ক (Universal Blue থেকে ধার করা) সিস্টেম পরিচালনার জন্য কাস্টম রেসিপি সরবরাহ করে। ঐচ্ছিক sysext-গুলো একটি আলাদা রিপোজিটরিতে systemd-sysext পেলোড হিসেবে উপলব্ধ, যার মধ্যে রয়েছে buildx এবং compose সহ Docker CE, HIP এবং OpenCL সহ AMD ROCm, Gamescope এবং MangoHud সহ নেটিভ Steam, Syncthing, Tailscale mesh-VPN এবং QEMU/KVM ভার্চুয়ালাইজেশন। এগুলো systemd-sysupdate.timer-এর মাধ্যমে স্বয়ংক্রিয়ভাবে আপডেট হয় এবং `ujust install-sysext` ও `ujust remove-sysext` দিয়ে ইনস্টল বা সরানো যায়। স্থানীয় LLM-এর জন্য, তিনটি Quadlet ইউনিট কন্টেইনারের ভিতরে GPU রানটাইম সহ ব্যবহারকারী-স্তরের systemd সার্ভিস হিসেবে Ollama চালায়। CPU, ROCm এবং Vulkan ব্যাকএন্ডগুলো পারস্পরিকভাবে একচেটিয়া এবং ollama-data ভলিউম শেয়ার করে, যাতে সুইচ করার সময় মডেল ওজন পুনরায় ডাউনলোড না হয়। ROCm ব্যাকএন্ড অফিসিয়ালি সমর্থিত AMD কার্ডের সাথে কাজ করে, আর Vulkan সেই কার্ডগুলো কভার করে যা ROCm সমর্থন করে না। Syncthing 127.0.0.1:8384-এ GUI সহ একটি নেটিভ sysext হিসেবে উপলব্ধ, যা ~/.local/state/syncthing/ থেকে বিদ্যমান কনফিগারেশন বহন করে। Quadlet টেমপ্লেট /usr/share/kyanite/quadlets/-এ পাঠানো হয় এবং ujust রেসিপির মাধ্যমে ~/.config/containers/systemd/-এ কপি করা হয়, যাতে OS আপডেটে ব্যবহারকারীর সম্পাদনা নষ্ট না হয়। podman-auto-update.timer ডিফল্টভাবে চলে, যা AutoUpdate=registry সহ কোয়াডলেটগুলো প্রতিদিন রাতে রিফ্রেশ করে। কাস্টমাইজেশন JSON ফাইলের মাধ্যমে ঘোষণামূলক: packages.json প্রতি ভেরিয়েন্টের প্যাকেজের জন্য, services.json systemd ইউনিটের জন্য, files/ ভেরিয়েন্ট-নির্দিষ্ট সিস্টেম ফাইলের জন্য, brew/ Homebrew বান্ডেলের জন্য, flatpaks/ প্রি-ইনস্টল করা Flatpak-এর জন্য এবং ujust/ কাস্টম রেসিপির জন্য। বিভিন্ন ফ্লেভার তৈরির জন্য একটি ভেরিয়েন্ট স্ক্যাফোল্ড বিদ্যমান, যদিও বর্তমানে শুধুমাত্র মূল kyanite ভেরিয়েন্ট তৈরি করা হয়। স্থানীয়ভাবে বিল্ড করতে Podman এবং Just প্রয়োজন। কমান্ডগুলোর মধ্যে রয়েছে কন্টেইনারের জন্য `just build`, VM পরীক্ষার জন্য `just build-qcow2`, সম্পূর্ণ ISO-এর জন্য `just build-iso` (আনুমানিক 10GB, 30+ মিনিট) এবং QEMU-তে qcow2 বুট করার জন্য `just run-vm`। শেয়ার্ড ডেস্কটপ অ্যাসেটগুলো ডাইজেস্ট-পিন করা kyanite-common OCI লেয়ার থেকে আসে। BASE_IMAGE-কে kinoite-nvidia ইমেজে সেট করে একটি NVIDIA বেস পরীক্ষা উপলব্ধ। সুরক্ষা প্রকাশিত পাবলিক কী-র বিরুদ্ধে cosign স্বাক্ষরের মাধ্যমে পরিচালিত হয়। `cosign verify` দিয়ে ইমেজ যাচাই করা যায়। সাইন করা ট্রান্সপোর্টে সুইচ করতে দুই-ধাপের বুটস্ট্র্যাপ প্রয়োজন: প্রথমে পলিসি এবং কী পেতে একটি অসাইন করা সুইচ, তারপর ostree-image-signed:-এ রিবেস যাতে ফাইলসিস্টেমে বাইট স্পর্শ করার আগে প্রতিটি টানা ইমেজের স্বয়ংক্রিয় যাচাইকরণ সক্ষম হয়। প্রকল্পটি Apache 2.0 লাইসেন্সের অধীনে এবং এটি Universal Blue-এর দ্বারা অনুপ্রাণিত হয়ে Fedora Kinoite এবং KDE Plasma-এর উপর ভিত্তি করে তৈরি।