2 पॉइंट द्वारा GN⁺ 2025-06-07 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Amazon के प्रायोजन से 1 साल तक FreeBSD release engineering और FreeBSD/EC2 डेवलपमेंट पर काम किया गया
  • release management और EC2 से जुड़े सुधार साथ-साथ किए गए, और हर महीने औसतन 50 घंटे का काम लगाया गया
  • Graviton instance power management, hotplug support, boot performance सुधार जैसे प्रमुख फ़ीचर मुद्दों और quality improvements हासिल किए गए
  • AMI प्रकारों का विस्तार और build automation के ज़रिए FreeBSD AMI वितरण की विविधता और दक्षता बढ़ाई गई
  • प्रायोजन समाप्त होने के बाद डेवलपमेंट की रफ़्तार धीमी पड़ने और कुछ फ़ीचर विकास के ठहरने की आशंका है

FreeBSD डेवलपमेंट प्रायोजन: 1 साल की समीक्षा

# शुरुआत की पृष्ठभूमि और प्रायोजन प्रक्रिया

  • 2010 से FreeBSD/EC2 प्लेटफ़ॉर्म का रखरखाव कर रहा था, और नवंबर 2023 से FreeBSD release engineering lead की भूमिका भी निभा रहा था
  • Antithesis, Patreon आदि से छोटे स्तर पर प्रायोजन मिल रहा था, लेकिन release engineering का काम FreeBSD/EC2 डेवलपमेंट के समय को काफ़ी हद तक खा रहा था
  • Amazon के साथ कई वर्षों से EC2 कार्य के लिए sponsorship पर चर्चा चल रही थी, और अप्रैल 2024 में बजट की ज़िम्मेदारी संभालने वाले व्यक्ति से जुड़ने के बाद 1 साल का प्रायोजन मिला
  • प्रायोजन GitHub Sponsors के माध्यम से दिया गया, और Amazon द्वारा सोची गई अवधि तथा वास्तविक भुगतान समय अलग हो सकते हैं

# प्रायोजन और काम के समय का बँटवारा

  • Amazon के अनुरोध पर हर महीने 40 घंटे FreeBSD release engineering और EC2 डेवलपमेंट के लिए देने का वादा किया गया
  • वास्तविक रूप से हर महीने लगभग 50 घंटे लगाए गए, जिनमें 20 घंटे EC2 issues, 20 घंटे release work, और 10 घंटे अन्य engineering कार्यों के लिए बाँटे गए
  • मासिक कार्य समय में काफ़ी उतार-चढ़ाव रहा

# FreeBSD release management

  • FreeBSD के quarterly release schedule को शुरू और प्रबंधित करते हुए 1 साल में 4 releases किए गए: FreeBSD 13.4(2024.9), 14.2(2024.12), 13.5(2025.3), 14.3(2025.6 expected)
  • हर release में developers को code freeze के लिए प्रेरित करना, merge requests को approve और coordinate करना, image build और test, announcement लिखना, और विभिन्न release build errors को ठीक करना शामिल था
  • release engineering में लगने वाला समय हर quarter में 33.5~79 घंटे के बीच रहा, और बाद के चरणों में स्थिरता आने से काम का बोझ घटने का पैटर्न दिखा

# EC2 के प्रमुख फ़ीचर सुधार और गुणवत्ता उन्नयन

Graviton instance power driver, hotplug support

  • Graviton instances में EC2 API के normal shutdown signal को FreeBSD द्वारा पहचान न पाने की समस्या को हल किया गया

    • ACPI _AEI object का उपयोग करते हुए GPIO-आधारित "power button" signal को driver logic से जोड़ा गया
    • EC2 द्वारा दिए गए ACPI tables में Pull Up flag setting mismatch के कारण device disable होने की समस्या का समाधान FreeBSD/EC2 AMI में ACPI_Q_AEI_NOPULL setting जोड़कर किया गया
  • EC2 Graviton और x86 instances में device hotplug (खासतौर पर hot unplug) issues का समग्र रूप से विश्लेषण और समाधान किया गया

    • IRQ leaks, PCI power state और OS signals के mismatch, "ghost" PCI devices जैसे कई प्रकार के bugs को संभाला गया
    • अस्थायी उपाय के रूप में ACPI quirks (जैसे ACPI_Q_CLEAR_PME_ON_DETACH, ACPI_Q_DELAY_BEFORE_EJECT_RESCAN) लागू किए गए, जबकि EC2 पक्ष के bugs बाद में ठीक किए जाने हैं

hotplug test automation और quality improvements

  • EC2 environment में EBS volumes को बार-बार attach और detach करने वाली script विकसित की गई, और 300 लगातार tests के ज़रिए स्थिरता सत्यापित की गई
  • PCIe hotplug में मौजूद अनावश्यक 5-second delay (जो केवल physical systems पर मायने रखती है) को EC2 में 0 seconds पर सेट कर quality सुधारी गई

boot performance improvements

  • FreeBSD/EC2 boot speed issues को data collection और analysis के आधार पर व्यवस्थित रूप से सुधारा गया
  • 2024 की शुरुआत में root disk capacity बढ़ने से boot में 3x delay, Graviton2 instances में kernel entropy seeding delay, ZFS boot time increase, और IMDSv2 से जुड़ी IPv6 support issues को क्रमवार हल किया गया
  • filesystem के अनुसार boot performance gap, entropy उपलब्धता की अक्षमता, network initialization delay जैसे कई पहलुओं में optimization किया गया

# FreeBSD AMI विविधता का विस्तार और build/distribution automation

  • मौजूदा base, cloud-init AMI के अलावा small AMI(अनावश्यक debugging/testing code और tools हटाकर, 1GB size), builder AMI(यूज़र customization के लिए builder) जोड़े गए
  • 4 AMI प्रकार * 2 filesystems(UFS/ZFS) * 2 architectures(amd64/arm64) * 3 versions(13, 14, 15) तक image combinations बढ़ने पर पुराने images की automatic deletion और scripting की गई, तथा 336TB EBS snapshots साफ़ किए गए

# सामान्य engineering improvements

  • FreeBSD AMI/release builds के parallelization से कुल build time लगभग 22 घंटे→13 घंटे तक घटाया गया, जिससे अधिक AMI प्रकार जोड़ने की गुंजाइश बनी
  • EC2 instance-आधारित automation tests और diffoscope comparison के माध्यम से build reproducibility (reproducible builds) समस्याओं का विश्लेषण और समाधान किया गया
  • ENA driver patch review, OCI container build और registry upload, AWS-संबंधित tools में सुधार, security issue reports जैसे कई छोटे कार्य भी साथ में किए गए

# आगे की दिशा और सीमाएँ

  • FreeBSD release engineering और EC2 platform maintenance की भूमिका जारी रहेगी, लेकिन पहले की तुलना में उपलब्ध समय कम होने की संभावना है
  • FreeBSD 15.0(दिसंबर 2024), 14.4/15.1/14.5/15.2(2026) releases योजना के अनुसार जारी रहेंगे, लेकिन नए फ़ीचर और bug fixes की गति धीमी पड़ने की उम्मीद है
  • automatic filesystem expansion, multiple NIC और hotplug automation, pre-patched AMI distribution, EC2 user web tools, FreeBSD/Firecracker support जैसे अधूरे कार्यों में लंबी अवधि की ठहराव की आशंका है

# समापन

  • Amazon का यह प्रायोजन open source developers के लिए बेहद दुर्लभ अवसर है, और अब तक की उपलब्धियों पर गर्व और आभार महसूस होता है

1 टिप्पणियां

 
GN⁺ 2025-06-07
Hacker News टिप्पणी
  • आज ziglang.org के डाउनलोड पेज पर FreeBSD जोड़े जाने की खबर साझा की गई; अब FreeBSD यूज़र CI से अपने-आप बने master branch builds आसानी से पा सकते हैं
    FreeBSD अब आधिकारिक रूप से cross-compilation target के रूप में पूरी तरह समर्थित है; Linux की तरह अब zig cc -o hello hello.c -target riscv64-freebsd जैसे FreeBSD को target करके compile किया जा सकता है
    अगर C/C++ dependencies हैं, तो उन्हें zig build system में आसानी से लाकर build किया जा सकता है, इसलिए काफी जटिल projects को भी आसानी से FreeBSD के लिए cross-compile किया जा सकता है
    उम्मीद है कि इससे और projects अपने CI में FreeBSD support और testing जोड़ेंगे

    • यह बात कि Zig की cross-compilation क्षमता वाकई शानदार है, और FreeBSD का supported target में जुड़ना खुशी की बात है
  • पढ़ते हुए कई हिस्से मज़ेदार लगे
    2024 के पहले हफ्ते से FreeBSD boot process अचानक 3 गुना धीमा हो गया था; commits को लगातार ट्रैक करने के बाद पता चला कि वजह root disk size का 5GB से 6GB होना था
    Amazon में एक परिचित से पूछा तो जवाब किसी जादू जैसा था: “ठीक-ठीक नहीं पता, लेकिन शायद न जानना ही बेहतर है”
    महत्वपूर्ण बात यह रही कि root disk size को 8GB करने पर performance फिर पहले जैसी हो गई

    • ऐसी बात सुनकर अब सच में जानने का मन करता है कि वजह क्या थी

    • यह जानने की जिज्ञासा है कि ऐसी समस्या ढूँढने के लिए commit bisection में वास्तव में कितना समय लगा होगा
      कल्पना करता हूँ कि क्या हर बार image बनाकर VM reboot किया गया होगा

    • S3 की original object size limit 5GB थी, इस पर अपनी 2006 की blog post का ज़िक्र
      https://aws.amazon.com/blogs/aws/amazon_s3/
      यह FreeBSD performance slowdown से सीधे जुड़ा है या नहीं, यह पता नहीं

  • laptop support को लेकर भी बहुत काम चल रहा है
    यह पढ़ा कि BSD Foundation ने $750,000 निवेश किए हैं और S0ix Sleep State implementation जैसी कई सुविधाओं पर फोकस कर रही है
    संबंधित projects को https://github.com/FreeBSDFoundation/proj-laptop पर देखा जा सकता है

    • वाकई बहुत काम एक साथ चल रहा है, लेकिन मैंने साझा करते समय सिर्फ वही लिखा जो मैं खुद सीधे कर रहा हूँ
  • उम्मीद थी कि Amazon और ज़्यादा support और contribution देगा, लेकिन हकीकत में FreeBSD के लिए उसका support बहुत न्यूनतम दिखता है
    Amazon FreeBSD sponsors list में भी नहीं है; Google ने पिछले साल सिर्फ $9K दिए, और Apple तथा Meta/Facebook भी नहीं हैं
    इसके उलट Microsoft का सूची में होना सराहनीय है
    यह हैरानी की बात है कि ये बड़ी कंपनियाँ FreeBSD और OpenBSD से इतना लाभ उठाती हैं, फिर भी हर साल अपने-आप donation नहीं करतीं
    Sponsor जानकारी https://freebsdfoundation.org/our-donors/donors/?donationYear=2024 पर देखी जा सकती है

    • इस बात से सहमत हूँ कि Amazon को FreeBSD को और ज़्यादा support करना चाहिए
      लेकिन FreeBSD Foundation की donor list में नाम न होने का मतलब यह नहीं कि कोई support नहीं है
      मुझे मिला development funding भी Foundation के ज़रिए नहीं आया था, और वास्तव में Foundation द्वारा समर्थित development, कुल corporate support का लगभग 10% ही है
      Foundation द्वारा समर्थित development इसलिए महत्वपूर्ण है क्योंकि उससे FreeBSD के अपने हित के काम पर फोकस किया जा सकता है, लेकिन कुल मिलाकर यह अल्पांश है

    • यह इंगित किया गया कि सिर्फ इस comment से पूरी तस्वीर नहीं दिखती
      यह सिर्फ Foundation को साल-दर-साल दिए गए donations का snapshot दिखाता है, जबकि development contributions का सार हर release के release notes में दिया जाता है
      https://www.freebsd.org/releases/

    • जिज्ञासा कि Microsoft FreeBSD को support क्यों करता है
      Hyper-V extensions भी Linux जितने पूर्ण नहीं हैं, .NET का official port भी नहीं है, और ऐसा भी नहीं लगता कि Microsoft FreeBSD-आधारित services चलाता हो

    • यह राय कि Amazon, FAANG में FOSS में सबसे कम contribution देने वाली कंपनी है

  • cperciva के लिए बहुत सम्मान व्यक्त किया गया
    जिज्ञासा है कि वे Tarsnap और FreeBSD दोनों को एक साथ कैसे संभालते हैं

    • किसी बिंदु पर यह अनुभव होता है कि पैसा समय में बदल जाता है
      छोटी-मोटी मरम्मत आप खुद कर सकते हैं या किसी expert को बुला सकते हैं
      FreeBSD के इस काम में लगाया गया समय आंशिक रूप से Tarsnap से आया समय था, और वह भी सोचे जितना ज़्यादा नहीं था
  • पहले FreeBSD को workstation के रूप में इस्तेमाल करने का अनुभव रहा है, और वह प्रभावशाली था
    घर के gateway/firewall/DNS/DHCP server के रूप में FreeBSD इस्तेमाल करना चाहता था, लेकिन 10GbE NIC driver support न होने से आखिरकार Nix चुना
    यह देखना अच्छा है कि FreeBSD अभी भी अच्छी तरह maintained है

  • जिज्ञासा है कि FreeBSD/EC2 के बड़े users कौन हैं

    • मुझे भी ठीक से नहीं पता
      वास्तव में मुझसे संपर्क करने वाले users, कुल FreeBSD/EC2 users के शायद 0.1% भी नहीं हैं
      मैं भी सच में जानना चाहता हूँ कि EC2 पर FreeBSD कौन चला रहा है

    • जिज्ञासा कि क्या Netflix FreeBSD का इस्तेमाल सिर्फ edge boxes पर करता है

  • जिज्ञासा है कि Unix परिवार में FreeBSD कौन-सा niche भरता है
    सवाल यह कि OpenBSD या NetBSD की तुलना में अधिक जटिल FreeBSD क्यों चुना जाए; अगर ZFS, Nvidia, या ELF चाहिए तो क्या Linux बेहतर नहीं होगा
    GNU से जुड़ी समस्याएँ मालूम हैं, लेकिन Musl Void जैसे विकल्प भी हैं; इसलिए FreeBSD की अपनी स्पष्ट “पहचान” क्या है, यह सच्ची जिज्ञासा है

    • वित्तीय क्षेत्र में FreeBSD को EC2 और अपने data center के bare metal servers, दोनों पर इस्तेमाल करने का अनुभव
      zfs और jails का काफी उपयोग किया
      हर service को अलग jail में स्वतंत्र रूप से चलाया, जिससे लागत के हिसाब से यह बहुत कुशल रहा
      जब कुछ हिस्सों को cloud में ले जाकर hybrid Linux(k8s)+FreeBSD चलाया, तो लागत बहुत बढ़ गई
      अपने data center का सीधा प्रबंधन disk replacement या आग जैसी स्थितियों के कारण झंझटभरा होता है, लेकिन AWS multi-region जैसी कई सुविधाएँ देता है, हालांकि उसकी लागत भी है
      zfs ने एक बार production DB table गलती से हट जाने पर snapshots के ज़रिए तुरंत rollback करने में बहुत मदद की; backup के लिए भी zfs इस्तेमाल किया
      production में dtrace से troubleshooting करने का भी अनुभव रहा
      जब servers पर सिर्फ FreeBSD चलता था, तो एक ही OS परिवार होने से management आसान था; Linux आने पर हर team अपनी-अपनी distro इस्तेमाल करने लगी, जिससे अव्यवस्था हुई
      FreeBSD को kernel+OS के एकीकृत ढाँचे के रूप में पसंद करता हूँ

    • मेरी नज़र में FreeBSD, OpenBSD और NetBSD की खूबियों का अच्छा मिश्रण है
      पहले FreeBSD, Intel CPU optimization और मजबूत security के लिए जाना जाता था, और खासकर ZFS support इसका निर्णायक अंतर था
      Nvidia drivers को भी हाल में ही native FreeBSD support मिला है
      आखिरकार FreeBSD, दूसरे BSDs की खूबियों और hardware stability को अच्छी तरह जोड़ता है

    • FreeBSD की user base, OpenBSD या NetBSD की तुलना में कहीं बड़ी है
      इसका software catalog भी कहीं अधिक विशाल है, इसलिए desktop पर रोज़मर्रा का उपयोग भी पूरी तरह संभव है
      Linux क्यों नहीं, तो एक कारण यह है कि Linux corporate हितों में बहुत उलझा हुआ है

    • यह राय कि ZFS support में FreeBSD, Linux से बेहतर है
      License issues की वजह से FreeBSD बेहतर environment देता है

    • FreeBSD, OpenBSD की तुलना में networking throughput में बेहतर है
      सामान्य तौर पर BSD systems में बदलाव की रफ्तार कम होती है, इसलिए वे integrated platform के रूप में अच्छे रहते हैं

  • इस लेख से यह धारणा बनती है कि FreeBSD development environment बहुत अच्छा नहीं है
    इतने जटिल OS को देखते हुए, कम से कम किसी एक व्यक्ति को full-time release manager होना चाहिए, लेकिन हकीकत यह है कि पूरे साल में सिर्फ part-time काम ही हो पा रहा है, जो खलता है
    फिर भी, यह महत्वपूर्ण है कि Linux ही एकमात्र विकल्प नहीं है; FreeBSD का अस्तित्व इसी वजह से मायने रखता है