Рецензия
за дипломна работа Журнална файлова система ext3 за Hurd
на Огнян Кулев, ф.н. 42295
от доц. д-р Красимир Манев

Предлаганата дипломна работа е посветена на проблем от областта на операционните системи с отворен код. Състои се от 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 години и имам отлични впечатления за качествата му. Затова предлагам на уважаемата комисия да допусне работата до защита и я оцени най-високо.

София, 1.12.2004
Доц. Кр. Манев