Skip to content

Add method to VFS in Minix.

Good Night,

First of all, what is VFS? VFS means Virtual File System. It is a layer that exists in a lot of OS and in Minix too, this layer takes care of the communication with the File System. It is a Master’s thesis in Computer Science from Balázs Gerófi and the name is “Design and implementation of the MINIX Virtual File system“.

But why to communicate with VFS server? Or why to add something on it? If you want to some tasks you need to do a SYSCALL to it. But sometimes the VFS server don’t do what you want. So you must add and change it to do it.

How to do this?

Edit “/usr/src/include/minix/callnr.h”. After this line “#define GETPGRP 63″ add this:
[code lang=”c”]
#define TESTCALL 64
[/code]

Then you need to change the VFS server and add what you want to do when it is called. Edit “/usr/src/servers/vfs/table.c”. You should replace the line “no_sys, /* 64 = unused */” with:
[code lang=”c”]
do_TESTCALL, /* 64 = unused */
[/code]

What happens? The method do_TESTCALL will be called when a syscall with number 64 is done.

Change the “/usr/src/servers/vfs/proto.h”. Add this:
[code lang=”c”]
/* do_TESTCALL EXAMPLE */
_PROTOTYPE( int do_TESTCALL, (void) );
[/code]

Now you have to create the method in “/usr/src/servers/vfs/read.c” (I did in this file and it worked). Add this:

[code lang=”c”]
/*===========================================================================*
*Trabalho: do_ver_contig *
*===========================================================================*/
PUBLIC int do_TESTCALL() {
message m;
printf(“Number received %d”, m_in.fd);
}
[/code]

But how to execute? How this works? How to compile?
Acess “/usr/src/tools/” and execute:

$ make libraries

(This process can take a long time)

In “/usr/src/tools” execute:

$ make hdboot

Reboot.

How to test and see if it is working? Create in your “/root” a file with this:
[code lang=”c”]
#include
#include
#include #include

int main(int argc, char *argv[]) {
int fd = 2;
message m;
m.m1_i1 = fd;
printf(“Number: %d”, fd);
_syscall(FS, 64, &m);
}
[/code]

Compile it, execute it and done!

This file do a _syscall to FS saying to execute method 64 and send by message the number 2. So the do_TESTCALL receive the parameter and show it on screen. Yes it is simple, but it is just an example about how to work with VFS server.

Example of code changed/add to VFS server

Creating a system library in Minix.

Best Regards,
Matheus

PS: It is a silly example, but it just show how to add some method to VFS Server. Probably in the next days I will show a real example.

Published inCLinux

1,034 Comments

  1. The app has a small size that does not take up much phone memory.

    After downloading the file, simply tap it and wait for the installation to complete automatically.

    The Android app offers a stable experience and an easy-to-use interface across devices.

    Getting the 888starz apk from a trusted source is preferable to keep the device safe.

    The 888starz app is also available for iPhone on iOS with the same ease of use.

    888starz apk 888starz apk

  2. Simply want to say your article is as amazing. The clarity in your post is just great and i can assume you’re an expert on this subject. Fine with your permission allow me to grab your feed to keep up to date with forthcoming post. Thanks a million and please keep up the gratifying work.

  3. Зависаю на 888starz месяца три, так что накидаю как оно по факту. Зашёл по совету знакомого, скептически был настроен, но остался. Создание аккаунта быстрая, без нервов — пару полей и всё, верификацию попросили только перед первым выводом. Минимальный деп смешной, начинал с сотки рублей, чтобы осмотреться.

    Насчёт слотов тут реально жирно — заявлено около 3000 тайтлов. Провайдеры все топовые: Pragmatic Play, NetEnt, Play’n GO, а также Yggdrasil и Betsoft. Залипаю на Gates of Olympus плюс Sweet Bonanza, под настроение заглядываю в Book of Dead. Что порадовало живой раздел от Evolution — реальные крупье, их game show весело, хотя честно это лотерея.

    Насчёт приветственного адекватно: накидывают до 100% на депозит вдобавок бесплатные вращения. Вейджер честно говоря х40, поэтому считайте заранее — я по первости не вкурил и подарок сгорел. Кстати нынешние акции удобнее посмотреть на starz 888 casino перед регой, там всё обновляют. Периодически бывает бонус за регистрацию, но не всегда.

    Вывод денег что решает, и тут порядок. Методов навалом: Visa, Mastercard, кошельки, плюс Bitcoin. Через биток падает минут за 10-15, на карту бывает до пары часов. Последний раз выводил — дошло без волокиты. Единственное что напрягает — под выходные тянут с проверкой, разово было.

    Мобилка отдельная тема: своё приложение, на айфон тоже есть нормально. Достать можно прямо с сайта, если лень качать тоже летает. Поддержка отвечает 24/7, на русском без ботов-тупиков. По документам легально по Curacao — не оффшор без бумаг. Короче меня устраивает, 888starz свою нишу занял, хотя звёзд с неба не хватает.

Leave a Reply

Your email address will not be published. Required fields are marked *