اشاره :
در
سالهای اخیر جنبش سختافزار آزاد به عنوان حرکتی که میتواند روند توسعه
سختافزار را متحول کند، مورد توجه بیشتری قرار گرفته است. در نخستین بخش
از نوشتار حاضر که در پست قبل مدرج شد، ضمن مروری اجمالی بر خاستگاه، علل
و پیشینه تاریخی این جنبش، به گوشههایی از موج نوین آن و رویکردهای جدید
در قبال این موضوع اشاره کردیم. با این حال تعریفی از سختافزار آزاد
ارائه نکردهایم. در بخش دوم علاوه بر ارائه این تعاریف به ماهیت مجوزهای
سختافزاری و موضوعات پیرامون آن نگاهی خواهیم داشت.
شاید برای بیان تعریفی دقیق و جامع از سختافزار آزاد نیاز باشد که این جنبش به شکلی گستردهتر و از زوایای مختلف مورد بحث و بررسی قرار گیرد. با این حال نگاهی به چرایی شکلگیری این جنبش و همچنین پیشزمینه ذهنیای که در مورد نرمافزارهای آزاد و منبع باز وجود دارد، به ارائه دو تعریف کلی در این مورد منجر شده است. که در ادامه آورده میشود.
1 - سختافزار با طراحی آزاد (Free Hardware Design)
طراحی
آزاد سختافزار بر طراحیای دلالت دارد که به طور آزادانه قابل
نسخهبرداری، توزیع، تغییر و تولید است. مسلماً این تعریف به معنای
غیرقابل فروش یا بدون هزینه بودن پیادهسازی سختافزاری که دارای چنین
طراحی است نخواهد بود.
2- سختافزار اپنسورس (Open Source Hardware)
سختافزار
اپنسورس یا منبع باز به سختافزارهایی اطلاق میشود که همه اطلاعات طراحی
آن در اختیار عموم قرارمیگیرد. سختافزار منبعباز میتواند بر مبنای یک
طراحی آزاد سختافزار و یا یک طراحی دارای برخی محدودیت باشد.
پیش
از ادامه این موضوع ضروری است به عبارت سختافزار باز (Open Hardware) نیز
اشاره کنیم. <سختافزار باز> یک عبارت تجاری ثبت شده متعلق به شرکت
debian است و مدلی خاص و محدود از سختافزار منبعباز شمرده میشود. لازمه
اطلاق <سختافزار باز> به یک سختافزار این است که اولاً باید
مستندات کافی یک وسیله در اختیار برنامهنویسی که قصد نوشتن درایور برای
آن را دارد قرار گیرد. ثانیاً این مستندات باید کلیه ویژگیهای اینترفیس
درایور وسیله که ممکن است هر کاربری مایل به استفاده از آنها باشد را
دربربگیرد.
بنابراین تعریف، غیر از مواردی که فراهم کردن امکان
نوشتن یک درایور برای وسیله ضرورت دارد، نیازی به اعلام جزئیات on-board
firmware و پیادهسازی سختافزار نیست. بنابراین در این تعریف اطلاعات
محدودی از یک سختافزار باز در دسترس قرار خواهد گرفت که میتواند در
مواردی (مثلاً زمان تعمیر یک قطعه) ناکافی باشد.
برگردیم به تعاریف
اصلی. همانطور که اشارهشد، در مورد سختافزار با طراحی آزاد، موضوع بدون
هزینه بودن استفاده و پیادهسازی آن مطرح نیست. به همین دلیل گروهی به جای
استفاده از واژه Free از لغت Libre استفاده میکنند تا به روشنی نشان
دهند که در اینجا موضوع آزادی مطرح است، نه رایگان بودن.
در این
میان عبارت سختافزار آزاد یا Free hardware که گاهی به عنوان مترادف
سختافزار منبعباز به کار برده میشود نیز به واسطه همان موضوع تعدد
معانی واژه Free در زبان انگلیسی و شباهت لغوی آن با <نرمافزار
رایگان> میتواند به این اشتباه دامن بزند. مشابه این موضوع در دنیای
نرمافزار نیز مطرح است.
اما این شباهتها در این برداشتهای
اشتباه خلاصه نمیشود. در حقیقت باید گفت که بحث و استدلالهای مربوطبه
تفسیر <آزادی> حامیان مجوزهای بنیاد نرمافزار آزاد و طرفداران
مجوزهای BSD گونه، به حوزه سختافزار نیز قابل تعمیم هستند و از این حیث
پیچیدگیهای خاص این موضوع به این حوزه نیز سرایت کردهاست.
علیرغم
این موضوع جریان اصلی این جنبش مسیر خود را طی میکند. در حقیقت گمان
میرود که ایده سختافزار آزاد و مدل توسعه مشارکتی آن بتواند بسیاری از
مشکلات صنعت نیمههادیها را حل کند. بسیاری از متخصصان مستقل و شرکتها
خواهند توانست در رفع اشکال، بهبود، ارتقا و البته تغییر طراحی سختافزار
ایفای نقش کنند.
در مدل بسته و رایج فعلی، یک طرح سختافزاری متعلق به
شرکت سازنده آن است و برای هیچ شخص یا شرکت دیگری در خارج از آن مجموعه
شناخته شده نخواهد بود. (البته باید <صنعت> مهندسی معکوس را که خود
نمونه بارزی از اتلاف انرژی برای کشف چگونگی کارکرد یک قطعه در مدلهای
بسته اختصاصی است، از این قضیه مستثنی کنیم).
بنابراین بهبود یک
طرح سختافزاری صرفاً توسط تولیدکننده میسر میشود و تبع آن تمام
هزینههای تحقیق و توسعه برای بهبود و پیشرفت محصولات نیز برعهده آن
تولیدکننده خواهد بود.
اما بررسی دنیای نرمافزار نشان میدهد که
نرمافزارهای آزاد میتوانند از طریق اشکالزدایی، اصلاحات و بهبودها و
پیشرفتهای به دست آمده توسط خیل عظیمی از مشارکتکنندگان پروژه، به روند
توسعه یک پروژه نرمافزاری سرعت ببخشند. با این اوصاف و با وجود تفاوتهای
ماهوی دو حوزه نرمافزار و سختافزار، ملزومات متفاوت این دو حوزه هیچ
دلیل محکمی (حداقل تاکنون) برای اینکه نتوان از این مدل توسعه در طراحی
سختافزار استفاده کرد بهشمار نمیآید.
شاید در عمل و در مقایسه
با توسعهدهندگان نرمافزار عده کمتری با دانش طراحی سختافزار آشنایی
داشته باشند، اما این امر به معنای غیرعملی بودن پیادهسازی این مدل
نخواهد بود. (البته هزینههای موردنیاز برای طراحی، آزمایش و توسعه
سختافزار نیز میتواند باعث کاهش مشارکتکنندگان در این حوزه گردد که این
موضوع نیازمند بحثی جداگانه است).
قطعات الکترونیکی به دلایل
متعددی چون یکپارچه شدن ابزارها، به طور روزافزون پیچیدهتر میشوند و
رقابت میان سازندگان هر روز افزایش مییابد. همین موضوع باعث شدهاست
سازندگان سختافزار به گسترش داراییهای فکری خود علاقمند شوند و به توسعه
محصولات مبتنی بر این داراییها وابستگی بیشتری پیدا کنند. به این ترتیب
به نظر میرسد که فناوریهای انقلابی همچون سیستم بر روی تراشه (system on
chip یا اختصارا SOC) به واسطه عدم دسترسی بسیاری از سازندگان به این
فناوریها، بهخاطر انحصاری بودن آنها، کاربردی محدود داشتهباشند.
به
عنوان مثالی دیگر، مسئله مالکیت معنوی شرکتها در مورد اینترفیسهای بین
تراشهای و فقدان یک استاندارد جامع در این حوزه باعث شدهاست شرکتهای
نرمافزاری به صورت مستقل بر روی این اینترفیسها فعالیت کنند. این موضوع
باعث بروز مشکلات ناسازگاری فراوانی در میان قطعات مختلف میشود. در حال
حاضر برخی از شرکتها به تبادل داراییهای فکری میپردازند و حتی شرکتها
و موسسات تخصصی ویژهای برای تسهیل این مبادلات مشغول فعالیت هستند. این
حرکتها به طور حتم ضروری، اما ناکافی هستند. به علاوه، کمک چندانی به
گسترش این فناوریها از منظری که جنبش سختافزار آزاد به آن نیازمند است،
نمیکند.
بدون شک نگرانی شرکتهای صاحب داراییهای معنوی به کاهش
سودآوری آنها به واسطه دسترسی شرکتهای دیگر به این داراییها مربوط
میشود و به نظر میرسد تبیین مدلهای تجاری عملی در شیوه جدید توسعه
میتواند تا حدودی از این نگرانیها بکاهد. در واقع جلوگیری از متعارف شدن
فناوریها با استفاده از مالکیتهای معنوی انحصاری، تنها راه حفظ سودآوری
نیست. کاهش هزینهها و افزایش تولید به عنوان دو عامل مهم برای رونق
بخشیدن به کسبوکار، شیوهای تثبیت شده است و طراحی و توسعه آزاد
فناوریها به طور اشتراکی میتوانند در تحقق دو عامل فوق نقش شایانی داشته
باشند.
پس در وهله اول توسعه یک سیستم به اشتراکگذاری داراییهای
فکری نه تنها میتواند انگیزه مشارکت سازندگان سختافزار به طراحی آزاد را
تقویت کند، بلکه از تلاشهای مضاعف شرکتهای فاقد حق استفاده از یک فناوری
خاص برای اختراع دوباره چرخ جلوگیری میکند و برای نوآوریهای فنی وضعیتی
بهینه را فراهم خواهد کرد.
مجوزها
پیادهسازی
عملی سختافزار آزاد مستلزم یک سیستم مجوزدهی کارآمد است. در حقیقت
مهمترین بخش رسیدن به یک مدل اجرایی قابل پذیرش از سوی شرکتهای سازنده،
ایجاد یک شیوه مجوزدهی جدید و متناسب با حوزه سختافزار است. یکی از
ملزومات اصلی ایجاد این شیوه، بررسی وضعیت فعلی طراحی و تولید سختافزار
است.
امروزه روش طراحی نیمه هادیها به فرایند توسعه یک سیستم
نرمافزاری مهم بیشباهت نیست. به منظور توسعه یک مدار مجتمع با کاربرد
خاص یا ASIC، ابتدا با توجه مجموعه مفصلی از مشخصات پیادهسازی (که خود
تابع کارکردهای موردنیاز تعیین شده توسط گروه بازاریابی است،) از یک زبان
تشریح سختافزاری (HDL) نظیر VHDLیا Verilog استفاده میشود.
کدهای
منبع HDL پس از نوشته شدن و بررسی با نت لیستی (netlist) که اتصالات
گیتهای منطقی را (که بر روی سیلیکون قرار خواهند گرفت) تشریح میکند،
تطبیق داده میشود. هر گیت منطقی در نت لیست مستقیماً به ترکیب خاصی از
ترانزیستورها منتسب میشود. نت لیست توسط ابزار دیگری که موقعیت قرارگیری
هر ترانزیستور و سیم بر روی تراشه را انتخاب میکنند، مورد استفاده قرار
میگیرد. طراحی فیزیکی به دست آمده مستقیماً توسط ماسکهای نوری که در
مرحله تولید از این طراحی الگوبرداری میکند مورد استفاده قرار میگیرد.
در بسیاری از مراحل مذکور نرمافزارهای ویژهای که برای انجام این کارها
طراحی شدهاند مورد استفاده قرار میگیرند.
بنابراین میتوان
اینگونه پنداشت که طراحی سختافزار آزاد یا منبع باز در ابتدا به حوزه
نرمافزاری آن مربوط میشود. از این منظر و با چنین دیدگاهی برخی طراحی
سختافزاری را باز یا آزاد مینامند که کدهای منبع زبان تشریح سختافزاری
و نرمافزارهای به کار رفته در طراحی آن با استفاده از یک مجوز نرمافزاری
توزیع شده باشند. بنابراین این مجوز اولاً باید حق توزیع آزادانه کدهای
منبع آن را تضمین نماید و ثانیاً حق ایجاد فعالیتهای اشتقاقی مبتنی براین
کدهای منبع و توزیع مجدد آنها را نیز برمبنای <یک مجوز مشابه>
تضمینکند. حتی مثلاً میتوان با الهام از مجوز GPL بنیاد نرمافزار آزاد،
شرط اینکه فعالیتهای اشتقاقی هم باید با استفاده از <همان مجوز>
اولیه توزیع شوند را نیز به عنوان یکی از شروط اضافه کرد.
ریچارد
استالمن پایهگذار بنیاد نرمافزار آزاد در سال 1999 میلادی استفاده از
مجوزهایی چون GPL را برای زبانهای برنامهنویسی طراحی سختافزار به واسطه
ماهیت نرمافزاری آنها کاملاً عملی میدانست. با این حال استفاده از چنین
مجوزهایی فقط بخشی از ماجرای مجوزدهی سختافزاری را حل میکنند و بحث اصلی
پیرامون شیوه توسعه و به کارگیری گونه جدیدی از مجوزها همچنان باقی
میماند.
استالمن در اینباره میگوید: <مدارها نمیتوانند
مشمول copyleft گردند. چرا که مشمول قانون کپیرایت نمیگردند. با این حال
شرح ساختار مدارات که در HDL نوشته میشوند، میتوانند توسط copyleft مورد
حمایت قرار گیرند. البته این موضوع صرفاً شامل نقشهها و الگوهاست نه خود
مدار. این بدان معناست که هر کسی قانوناً میتواند توپولوژی مدار مشابهی
را با ظاهری متفاوت ترسیم کند و یا شرح ساختار متفاوتی را در HDL بنویسد
که به تولید همان مدار منجر شود. از اینرو توانایی copyleft، هنگام به
کارگیری آن در حوزه مدارات محدود میشود. بنابراین قراردادن شرح ساختار
مدارات در HDL و طرحبندیهای مدار چاپی تحت حمایت copyleft مزایایی نیز
خواهد داشت.>
همانطور که استالمن اشاره میکند مهمترین مشکل
توسعه مجوز برای طراحی سختافزار آن است که سختافزار فینفسه یک کار
اشتقاقی محسوب نمیشود. در عمل، این طراحی یک کار نیست که بتواند مورد
حمایت کپیرایت قرار گیرد. به عبارت دیگر به تولید یک پیادهسازی فیزیکی
از یک طراحی، کپی کردن اطلاق نمیشود.
شاید بتوان آن را
پیادهسازی عمومی نامید. به هر حال این امر به معنای آن است که یک مجوز
ساده و صریح برای یک طراح سختافزاری نمیتواند از <کپی>های
غیرشفاف آن که در قالب پیادهسازی فیزیکی حاصل میشوند جلوگیری کند. به
عنوان راهحل این مشکل پیشنهاداتی چون جایگزینی سیستم مجوزدهی با
قراردادهای قانونی ارائه میشود که البته این روشها نیز بدون ضعف و
نارسایی نخواهند بود.
هم اکنون سازمانهای مختلفی در مورد توسعه
مجوزهای جدید سختافزاری فعالیت میکنند و بنابراین پیش از آنکه بتوان در
مورد کارآمدی سیستم مجوزدهی در این حوزه اظهارنظر کرد، باید در انتظار
ظهور مجوزهای تخصصی آن بود. اما آنچه در مجموع میتوان دریافت آن است که
مضامین به کار رفته در تعاریف سختافزار آزاد کپی، بهبود و ... میتوانند
اساساً با آنچه که به واسطه پیشزمینه نرمافزاری موجود به نظر میرسند،
تفاوت داشته باشند و همین موضوع دلیل تفاوت بنیادین مجوزهای نرمافزاری و
سختافزاری خواهد بود