كان ذلك في حوالي عام 2006 ، بسبب متطلبات المشروع ، بدأت في الاتصال بـ LWIP ، وهي مكدس بروتوكول TCP/IP أجنبي مفتوح المصدر المستخدم في أنظمة متحكم ، واغتنمت هذه الفرصة لإنشاء كتابي الأول المطبوع في نوع الرصاص - "تصميم نظام الشبكة المدمج - استنادًا إلى سلسلة ATMEL ARM7". استجابة هذا الكتاب جيد جدا. أرسلني الكثير من الناس MSN (من المؤسف أن Microsoft تم التخلي عن أداة المراسلة الفورية هذه ، وفقدت العديد من جهات الاتصال ،) أو أسئلة حول استشارة البريد الإلكتروني. في خطتي الأصلية للكتابة ، فإن نشر هذا الكتاب هو مجرد بداية ، وسأكتب كتابًا ثانٍ التالي - مقدمة نظام لزرع وتطبيق وتصميم وتنفيذ مكدس بروتوكول PPP الموجود في LWIP. ولكن ، سارت الأمور على رغباتي ، تم تأخير هذا الكتاب ، واستغرقت هذه القفزة اثني عشر عامًا ...
إذا كنت تفكر في الأمر بعناية ، فهناك سببان رئيسيان للتأخير في المقام الأول: أولاً ، لا يوجد سوى القليل من الوقت للتصرف بسبب الأسرة والعمل وما إلى ذلك ؛ ثانياً ، يؤدي الافتقار إلى المعرفة الكافية والاحتياطيات التقنية المتعلقة ببروتوكول PPP إلى عدم كفاية الثقة والخوف والركود. لكن هذا الحادث كان دائمًا ندمًا على لي. اثني عشر عامًا ليست طويلة ولا قصيرة ، لكنها تكفي لتحويل الأسف في قلبي إلى بذرة صغيرة وتنمو لتصبح شجرة أحلام شاهقة.
الآن ، وصل العالم في العشرينات من القرن الماضي عندما يكون الوباء مستعدًا. لقد زاد وقتي المتاح ، وقدراتي التقنية بعيدة كل البعد عن مقارنتها بتلك في الماضي. حان الوقت لتزهر شجرة الأحلام وتثمرها. إذا نظرنا إلى الوراء في البداية ، لم أدخل الصناعة لبضع سنوات ولدي قدرات تقنية محدودة. لا يمكنني إلا أن أقف على أكتاف السيد العظيم لدراسة كيفية زرع واستخدام LWIP ، ولم أجرؤ حتى على لمس مكدس PPP. الآن ، إذا واصل العمل فقط منذ أكثر من عشر سنوات ، فإن هذا الشيء سيكون بلا معنى. استنادًا إلى فهم دقيق لقوتي التقنية الخاصة ، قررت إنشاء مكدس بروتوكول شبكة كامل من نقطة الصفر. أخيرًا ، أكثر من 6 أشهر ، أكملت مكدس بروتوكول ONPS (ONPs ، Open Net Protocol Stack) التطوير الأولي وتجتسب الاختبار الداخلي. يتم دفع أكثر من عشر سنوات من الأسف اليوم. بالإضافة إلى ذلك ، بعد أكثر من 20 عامًا من الخبرة ، أحلم أخيرًا في صنع البرامج الأساسية الأساسية في قلبي. الآن ، يتم مكافأة هذين الحلمان أيضًا.
عندما يغني الأوريولز الجديد لأول مرة ، سيكون هناك حتما العديد من الأشياء غير المرضية. يمكن مشاركة المصدر المفتوح ومشاركته ودراسته مع أولئك الذين يحبون اهتماماتهم. من خلال هذه الطرق الصارمة ، يمكن تكرارها بسرعة ونضجها بسرعة ، ومن المتوقع أن تكون مماثلة لـ LWIP.
يعد ONPS مكدس بروتوكول الشبكة المحلي مفتوح المصدر والمطور ذاتيًا ، وهو مناسب لأنظمة متحكم مخصصة للموارد ، ويوفر تنفيذًا كاملاً لعائلة بروتوكول Ethernet/PPP/TCP/IP ، ويوفر أدوات الشبكة مثل SNTP و DNS و PING. وهو يدعم تطبيق عنوان IP الديناميكي DHCP في بيئة Ethernet ، ويدعم أيضًا جداول التوجيه الديناميكية والثابتة. يحتوي مكدس البروتوكول أيضًا على تنفيذ طبقة مآخذ Berkeley. هذه الطبقة غير مصممة وتنفيذها بالكامل وفقًا لمعيار Berkeley Sockets. بدلاً من ذلك ، استنادًا إلى تجربة برمجة المقبس السابقة ، أقوم بإعادة تحديد مجموعة من وظائف واجهة المقبس الشائعة مع هدف التصميم المتمثل في تسهيل استخدام المستخدمين وتبسيط ترميز المستخدم:
يقوم مكدس البروتوكول بتبسيط بعض العمليات الشاقة المطلوبة لبرمجة مقبس BSD التقليدية ، ويغير بعض تفاصيل التشغيل غير الضرورية للتنفيذ الأساسي ، مثل نموذج Select/Poll ، وحظر عمليات القراءة والكتابة. التبسيط لا يعني الانقلاب. لم يتغير التعريف الأساسي والمعلمات الرئيسية وطرق الاستخدام لوظائف واجهة المقبس. يمكنك البدء بسرعة واستخدام مآخذ مكدس ONPS بناءً على خبرتك السابقة وعادات البرمجة. ليست هناك حاجة إلى إيلاء الكثير من الاهتمام إلى أسفل كومة البروتوكول. يمكن أن يؤدي استخدام برمجة API للمقبس إلى تلبية احتياجات تطبيقات الاتصالات المعقدة ، بدلاً من استخدام مجموعة وظائف الواجهة المخصصة لتحقيق نفس الهدف ، تمامًا مثل LWIP.
من أجل التكيف مع استخدام الذاكرة غير الطبيعية للغاية لأنظمة متحكم ، تم اعتبار مكدس بروتوكول ONPS يستخدم نسخة صفر على الكتابة في بداية تصميمها. أثناء عملية تمرير البيانات على مستوى المستخدم إلى البروتوكول ذي المستوى الأدنى ، يستخدم مكدس البروتوكول تقنية قائمة المرتبطة بقائمة BUF لربطها معًا حتى يتم إرسالها دون أي عمليات نسخ للذاكرة. بالإضافة إلى ذلك ، يستخدم مكدس البروتوكول خوارزمية الأصدقاء لتوفير وظائف آمنة وموثوقة لإدارة الذاكرة الديناميكية ، من أجل زيادة استخدام الذاكرة أثناء تشغيل مكدس البروتوكول وتقليل تجزئة الذاكرة.
على عكس العقد الأول من القرن العشرين وأوائل القرن العشرين ، عندما لم تكن UCOSII وغيرها من RTOs شائعة على نطاق واسع في سيناريوهات تطبيق متحكم ، وكانت أنظمة الواجهة الأمامية والخلفية لا تزال شائعة ، فقد أصبح من السائد للمطورين اختيار استخدام RTOs في معظم سيناريوهات التطبيق. لذلك ، لم يدعم مكدس البروتوكول أوضاع الواجهة الأمامية والخلفية في بداية تصميمه ، واستند تصميمه المعماري إلى RTOs الشهيرة (RT-Throad ، UCOSII/III ، إلخ). المهمة الرئيسية لزرع مكدس البروتوكول هي بشكل طبيعي لكتابة وظائف دالة طبقة تكييف نظام التشغيل المرتبط بها ل TOS المختلفة. بالطبع ، إذا كان لديك سيناريوهات تطبيق محددة للغاية وتحتاج إلى نقل مكدس ONPs إلى متحكم يتبنى وضع الواجهة الأمامية والخلفية ، فإن اقتراحي هو الاحتفاظ بمنطق معالجة الاتصال لطبقة البروتوكول تحت TCP/UDP ، وضبط بنية النظام العلوي على مستوى المستهدف للتكيف مع وضع تشغيل النظام المستهدف.
ينفذ تصميم مكدس ONPS مجموعة كاملة من نماذج بروتوكول TCP/IP. من طبقة ارتباط البيانات إلى طبقة IP ، إلى طبقة TCP/UDP وطبقة Socket Berkeley أعلاه ، وأخيراً طبقة تطبيق الاتصال الخاصة بالمستخدم ، تحقق مكدس ONPS تغطية مكدس كاملة ، والتي يمكن أن تلبي معظم احتياجات برمجة الشبكة. الهندسة المعمارية على النحو التالي: 
يمكن ملاحظة أنه لا يختلف عن نموذج برمجة الشبكة التقليدية. يواصل المستخدمون استخدام API Socket لكتابة تطبيقات شبكة TCP و UDP الشائعة. في الوقت نفسه ، يمكنك أيضًا استخدام العديد من أدوات الشبكة التي توفرها مكدس البروتوكول لأداء توقيت الشبكة واستعلام DNS وغيرها من العمليات.
| اسم | يصف |
|---|---|
| BSD | يتم تنفيذ الملف المصدر بواسطة وظيفة الواجهة ذات الصلة لطبقة مآخذ Berkeley |
| إيثرنت | ملفات مصدر التنفيذ ذات الصلة لعائلات بروتوكول Ethernet مثل Ethernet-II/ARP و EMAC طبقة ، عميل DHCP ، إلخ. |
| يشمل | ملف رأس مكدس البروتوكول |
| IP | ملفات مصدر التنفيذ ذات الصلة من IP وعائلة بروتوكول ICMP/TCP/UDP العلوي |
| MMU | ملفات مصدر التنفيذ ذات الصلة لوحدة إدارة ذاكرة مكدس البروتوكول |
| net_tools | تقوم أدوات الشبكة بتطبيق ملفات المصدر ، مثل استعلام DNS ، توقيت الشبكة ، ping ، telnet ، إلخ. |
| netif | قم بتنفيذ ملفات المصادر لواجهات بطاقة الشبكة وإدارة التوجيه |
| ميناء | بروتوكول مكدس ترحيل الملفات ذات الصلة |
| PPP | ملفات PPP Link Liner ذات الصلة ، بما في ذلك ملفات مصدر التنفيذ لعائلات البروتوكول مثل LCP/IPCP/CAP/PAP ، إلخ. |
| tcpserverforstacktesting | خادم TCP المستخدم لاختبار مكدس البروتوكول ، تم تطوير IDE لـ VS2015 ، والنظام المستهدف هو Win7 وما فوق |
| test_code | PPP ملف التحقق من PPP تحت Linux |
يدعم مكدس البروتوكول سلسلة Cortex Cortex Micus السائدة ويدعم IDEs الشائعة مثل Keil MDK و IAR. تتمثل المهمة الأساسية لزرع الأعضاء في إكمال كتابة وتكييف طبقة محاكاة RTOS. للحصول على إرشادات النقل التفصيلية ، يرجى الرجوع إلى المقالة "ONPS Network Stack Migration and Usage Ergansions v1.0" ، انقر هنا للتنزيل. يوفر هذا الوصف أمثلة للنقل لمنصتي الأجهزة ، STM32F103RCT6 و STM32F407VET6. كل عينة مخصصة لـ RT-Thread و UCOSII RTOs على التوالي. خضع مشروع العينة للاختبار الداخلي الصارم ويمكن استخدامه مباشرة.
إذا لم يكن لديك الكثير من الوقت ، أو لا يتطابق نموذج المشروع الخاص بك ، فيمكنك الرجوع مباشرة إلى مستند التوجيه العام "دليل ترحيل OPS Stack" لترحيل مكدس البروتوكول.
للحصول على مستندات التوجيه العامة لتطوير مكدس البروتوكول ، يرجى الرجوع إلى "دليل واجهة API Ops Stack API" و "دليل مستخدم مكدس OPS".
منصة STM32F407VET6 : عينة زرع عمليات زرع RT-Trant
منصة Qinheng CH32V307 : عينة زرع زرع Hongmeng Liteos-M عينة زرع RT-Thread عينة
يمكنك زيارة الموقع الرسمي لـ ONPS Stack في أي وقت للحصول على المعلومات ذات الصلة مثل تقدم تطوير مكدس البروتوكول ، وخطط المتابعة ، وأحدث إصدار ، إلخ.
إذا واجهت أي مشاكل أو اقتراحات أثناء الاستخدام ، فيمكنك الانتقال إلى مجتمع اتصالات ONPS Stack لتقديم اقتراحاتك أو أسئلتك ، وسيتم أيضًا إخطار الإصدار الجديد على الفور في مجتمع الاتصالات.
يمكنك أيضًا الانضمام إلى مجموعة QQ للاتصال الفني عبر الإنترنت: 
Apache License 2.0 اتفاقية ترخيص مفتوح المصدر
لكي يستمر المشروع وتوقع دعمك ، يمكنك مسح رمز الاستجابة السريعة أدناه للتبرع لهذا المشروع من خلال Alipay/WeChat:

