نواة مميزة

أكسنت هي نواة نظام تشغيل ، اشتهرت بكونها النواة السابقة لنواة ماخ . طُوّرت أكسنت في الأصل بجامعة كارنيجي ميلون ، وتأثرت بنواة أليف التي طُوّرت في جامعة روتشستر . حسّنت أكسنت أداء أليف، إذ عالجت العديد من المشاكل وأعادت توجيه دعم الأجهزة لشبكات محطات العمل (وتحديدًا، جهاز Three Rivers PERQ ) بدلًا من الحواسيب الصغيرة . كانت أكسنت جزءًا من مشروع SPICE في جامعة كارنيجي ميلون الذي استمر من عام ١٩٨١ إلى عام ١٩٨٥. أدى تطوير أكسنت مباشرةً إلى إطلاق ماخ، المستخدمة في أنظمة NeXTSTEP و GNU Hurd وأنظمة تشغيل أبل الحديثة، بما في ذلك macOS و iOS .

تاريخ

استخدم مشروع أليف الأصلي نسخ البيانات لتمكين البرامج من التواصل. كان بإمكان التطبيقات فتح منافذ ، مما يسمح لها باستقبال البيانات المرسلة إليها من برامج أخرى. كانت الفكرة هي كتابة عدد من الخوادم التي تتحكم في موارد الجهاز، وتمرر البيانات حتى تصل إلى المستخدم النهائي. في هذا الجانب، كان المشروع مشابهًا لنظام يونكس من حيث المفهوم ، على الرغم من اختلاف التنفيذ بشكل كبير، حيث استخدم الرسائل بدلًا من الذاكرة. وقد تبين أن هذا الأمر ينطوي على عدد من المشاكل، أبرزها أن نسخ الذاكرة على جهاز إكليبس التابع لشركة داتا جنرال كان مكلفًا للغاية.

في عام ١٩٧٩، انتقل ريتشارد رشيد ، أحد مهندسي شركة أليف ، إلى جامعة كارنيجي ميلون وبدأ العمل على نسخة جديدة من أليف تتجنب مشاكلها. استهدفت نسخة أكسنت على وجه الخصوص محطات العمل المزودة بوحدة إدارة الذاكرة (MMU) ، مستخدمةً هذه الوحدة لنسخ كتل كبيرة من الذاكرة عبر عملية الربط ، مما يجعل الذاكرة تبدو وكأنها موجودة في مكانين مختلفين. ولا يتطلب الأمر نسخ البيانات فعليًا إلا إذا تم تغييرها بواسطة برنامج معين، وذلك باستخدام خوارزمية النسخ عند الكتابة .

لفهم الفرق، تخيل برنامجين يتفاعلان، أحدهما يُرسل ملفًا إلى الآخر. في برنامج Aleph، كان يجب نسخ البيانات من المزوّد بمقدار 2 كيلوبايت في كل مرة (بسبب خصائص Eclipse) إلى عملية المستخدم. أما في برنامج Accent، فكانت البيانات تظهر ببساطة في عملية المستخدم مقابل بضع تعليمات تُرسل إلى وحدة إدارة الذاكرة (MMU). ولا يلزم نسخ أي شيء إلا إذا غيّرت عملية المستخدم البيانات، وحتى حينها، لا تُنسخ إلا الأجزاء المتغيرة من البيانات.

Another problem in Aleph was that its ports were identified by unique ID's that were assigned sequentially. It was simple for a program to "guess" them, thereby gaining access to resources on the computer that it had not been granted. This made the Aleph system rather insecure.

To address this, Accent made the port ID's internal to the kernel only. Instances of a program opening ports were handed back different IDs, stored in a mapping in the kernel. Whenever a message was sent to the kernel for delivery, it would first check that the program had access to the port in question by comparing with the mapping table for that program. Guessing port numbers no longer worked, the program's port IDs gave no clue of the "real" IDs in the kernel, and any attempt to talk on one not explicitly handed out by the kernel was an error. Thus Accent's ports represented capabilities, granting rights to use resources as the result of being handed a valid port ID. This kind of capability system, using subject-specific identifiers for capabilities, is called a C-list system.

After a few years the Accent project started looking less and less interesting. In the early 1980s many felt that future gains in performance would be made by adding more CPUs to machines, something the Accent kernel was not really equipped to handle. Adding to the problem was that a new generation of more powerful workstations were appearing, meaning that Accent would likely have to be ported to them anyway. Likewise Unix had grown into the operating system of choice for experimental work, both on operating system design, as well as a development platform for user applications.

In order to address these changes, it was decided to end work on Accent and start again. The new system would use Accent's ports system within a Unix kernel, creating the famed Mach kernel.

Some features of Accent:

References