Журнална файлова система ext3 за Hurd
Предлаганата дипломна работа е посветена на проблем от областта на операционните системи с отворен код. Състои се от 149 страници, от които 58 страници текст, 89 страници приложение и 2 страници с цитираната литература. Текстът е разделен на три глави и Заключение.
В Първа глава – Увод – изключително кратко и
категорично е представена целта на дипломната работа – да се
пребори с един от недостатъците на ядрото Hurd на проекта GNU
– невъзможността за работа с големи файлове, като паралелно
с това се реализира съвременната концепция за много голяма
файлова система – журнална файлова система за Hurd. Струва
си да отбележим, че GNU e проект за създаване на операционна
система от тип UNIX със световна известност. Компилаторът от C/C++
на проекта GNU е считан за образец, а обвивката
на ядрото
Hurd е използвана от широко разпространеното ядро Linux. Затова
задачата, която си е поставил дипломантът, е много сериозна, още
повече, че според традициите на отворения
софтуер,
предложените от него решения ще бъдат обект на публична проверка
от световната Open Source общност.
Глава втора има обзорен характер. В нея са събрани както исторически преглед на файловите системи на операционните системи от тип UNIX, така и обзор и критичен анализ на разпространените журнални файлови системи. В резултат на този анализ авторът се спира за своята работа на журналната файлова система ext3, поради факта, че тя притежава достатъчно качества и е най-лесно да бъде имплементирана в Hurd. Главата завършва с достатъчно подробно изложение на архитектурата на ядрото Hurd и по-точно на микроядрото Mach (основа за реализация на всички основни функции на ядрото) и наличните имплементации на файлови системи в Hurd. Изложението показва, че авторът е навлязал много дълбоко в проблематиката и отлично познава обекта на разработката. От особена важност за работата е заключението, че за премахване на ограничението от 2GB са необходими сериозни промени.
Глава трета съдържа приносите на автора, а именно. Библиотеката
libepager е разширена до новата libe3pager, която реализира
възможността за управление на т.н. ценни стрници. Библиотеката
libediskfs е разширена до новата libe3diskfs, в която са добавени
функциите за отбелязване начало и край на атомарна промяна и във
всички функции на библиотеката е добавена като аргумент
съответната структура от данни. Създадена са и две нови
библиотеки. С функциите на библиотеката libscache се реализира
кеширането на буферите, а новосъздадената библиотека libejstore
реализира журналността
на създаваната от автора файлова
система. За всяка от новите библиотеки са описани използваните
структури от данни, както и реализираните функции. В края на
главата са посочени ситуации, които не могат да бъдат обезпечени
от журналната файлова система в аварийни случаи и за които е
предложено отделно решение – с механизъма на т.н. осиротели
файлови описатели.
В приложението са дадени хедър файловете на имплементацията, които са с много подробни коментари и затова приложението може да се разглежда като естествено продължение на текста. Списъкът с използваната литература се състои от 14 единици, като феноменалното е, че освен фундаменталната книга на Таненбаум останалите заглавия са на материали от Интернет. За съжаление в текста липсват съответните препратки. Така читателят трудно може да направи справки в използваната литература.
Изложението е добре структурирано и дава възможност на читателя
да се запознае със същността на работата. На места авторът малко е
прекалил със специфичния за областа жаргон
, като това щеше
да е лесно поправимо, ако списъкът на използваните термини беше
обособен в терминологичен справочник или пък имаше цитати,
препращащи към съответна литература. Началото на раздел 2.4. пък
повтаря споменатото по-рано предназначение на журналните файлови
системи и ми се струва излишно.
Основната ми забележка е към някои термини и изрази, използвани в текста. При отсъствие на сериозни издания на български език в областта на Операционните системи на дипломанта се е наложило да прояви солидно словотворчество. И докато в случая с осиротелите фалови описатели резултатът е добър, в други случаи избраните български думи не ми харесват. Например вместо преиграване (за английското replay) по-добре би било повторение или повторно изпълнение, тъй като думата преигравам има негагивно звучене. Не мога да приема, че използваните в рамките на една библиотека структури са нейните вътрешности, както и че новите поколения на една операционна система адресират някякъв проблем на старата (те по-скоро се опитват да отстранят или да разрешат проблема).
Направените забележки не могат да променят мнението ми, че дипломантът притежава много сериозни знания в областта на Операционните системи, поставил си е значима, сериозна, но разрешима задача и се е справил отлично с нея. Зрелостта и сериозността на работата според мен надхвърлят изискванията за дипломна работа и според мен може да стане основа на бъдещ дисертационен труд. Не е излишно да спомена, че познавам дипломанта от около 10 години и имам отлични впечатления за качествата му. Затова предлагам на уважаемата комисия да допусне работата до защита и я оцени най-високо.