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. Рекомендуется внимательно ознакомиться с вейджером и прочими требованиями до принятия бонусного предложения.
    888starz skachat 888starz skachat.

  2. 8888 website
    تُعد 888starz خدمة متكاملة تركز على الألعاب الإلكترونية والترفيه وتستهدف المستخدمين الباحثين عن تجربة ألعاب آمنة وممتعة.

  3. Безопасность и честность игр являются приоритетом сервиса, подтверждаемым современными технологиями шифрования.
    starz888 скачать https://888starz-uzb6.com/apk/

  4. 80 free spins no deposit uk, duke nukem forever slot machine jackpot and new usa casinos free spins, or online casino real money
    canada paysafe

    Here is my homepage gambling in vietnamese – Bryan,

  5. جرب الحظ الآن على 88 star للفوز بجوائز مثيرة ومباشرة.
    تتفرد المنصة بواجهة استخدام واضحة وسهلة التعامل.

    الفقرة الثانية:
    يوفر الفريق المختص دعمًا متواصلًا لمساعدة الأعضاء وحل المشاكل بكفاءة.

  6. تم تصميم الموقع ليدعم اللغة العربية بالكامل مع واجهة سهلة تناسب المستخدمين في مصر.
    يمكن للاعبين الدخول إلى أكثر من 300 طاولة كازينو حي بموزعين فعليين في أي وقت.
    888starz https://free-credits-report.com/
    يتيح الموقع الرسمي الرهان على ما يزيد عن 50 نوعًا رياضيًا تغطي أبرز الأحداث العالمية.
    يحصل المستخدمون الجدد على مكافأة ترحيب حتى 1500 يورو إضافة إلى 150 فري سبين عند التسجيل.
    يتيح 888starz إنشاء حساب جديد بطرق متعددة لا تستغرق سوى دقائق معدودة.

  7. united kingdom online casino minimum deposit dollar 10, best deposit bonus casino games (Mariel) bonus betting sites new zealand and free
    usa cash bingo, or trusted uk casinos

  8. Eva Eva

    calculator for horse racing bets​

    my webpage … greyhound place betting systems​ (Eva)

Leave a Reply

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