Ir ao conteúdo

Adicionando método ao servidor VFS no Minix

Boa Noite,

Primeiramente, o que é VFS? VFS é Virtual File System. É uma camada que existe em muitos sistemas operacionais e também no Minix, que cuida da parte comunicação com o File System. O mesmo foi desenvolvido pelo Balázs Gerófi como tese de Mestrado na universidade de Amsterdam com nome de “Design and implementation of the MINIX Virtual File system“.

Mas por que se comunicar com o servidor VFS? Por que adicionar algo nele? Bom, se você está trabalhando em baixo nível e quer por exemplo acessar diretamente os INODES por algum motivo, você deve inicialmente se comunicar com o servidor VFS. Para realizar a comunicação é simples, mas vamos supor que você queira um método especifico que o mesmo não possue, então você deve cria-lo.

Como fazer isso?

Inicialmente você deve editar o “/usr/src/include/minix/callnr.h”. Adicione logo abaixo a linha “#define GETPGRP 63″ o seguinte:
[code lang=”c”]
#define TESTCALL 64
[/code]

Em seguida você deve modificar o servidor VFS e adicionar o que você quer que faça quando a mesma for chamada. Edite inicialmente o “/usr/src/servers/vfs/table.c”. Você deve pegar a linha que possui no_sys, /* 64 = unused */
E alterar para:
[code lang=”c”]
do_TESTCALL, /* 64 = unused */
[/code]

Este será o método chamado quando a syscall de número 64 for executada.

Após isso você deve alterar o “/usr/src/servers/vfs/proto.h” que é onde estão definidos os métodos. Adicione o seguinte:
[code lang=”c”]
/* do_TESTCALL EXAMPLE */
_PROTOTYPE( int do_TESTCALL, (void) );
[/code]

Então você deve criar o método propriamente dito dentro do “/usr/src/servers/vfs/read.c” (ao menos eu fiz nesse arquivo). Adicione o seguinte código:

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

Mas como executar? E ver isso tudo funcionando? Como compilar?
Inicialmente acesse “/usr/src/tools/” e execute:

$ make libraries

(Este pode ser um processo demorado)

Continue em “/usr/src/tools” e execute:

$ make hdboot

Reinicie.

Como testar e ver se está funcionando? Crie um arquivo no seu “/root” com o seguinte conteúdo:
[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]

O que isso é pra fazer? Fazer uma syscall no método 64, passar por mensagem o número 2, então o do_TESTCALL recebe o parametro e imprime o mesmo. Bem inutil, mas isto é pra demonstrar como criar métodos dentro do servidor VFS.

Exemplo dos códigos adicionados no servidor VFS

Criando uma biblioteca do sistema no Minix.

Atenciosamente,
Matheus

PS: É um exemplo bobo, mas é para demonstrar como adicionar métodos ao servidor VFS. Provavelmente nos próximos dias publicarei um exemplo, mais real.

Publicado emCLinux

1.034 Comentários

  1. slot machines ontario united states, automatic poker
    dealer machine and casinos uk online blackjack fruit slots,
    or dollar 5 deposit online roo casino 309 login (Celia) united kingdom

  2. online gambling ads usa, casino paypal deposit usa and casino dusaes no deposit bonus codes, or remote how to
    open gambling business [Maritza] association uk

  3. australian south africa legal online gambling (Charlie) casino apps, casino bonus uk and united statesn pokies history,
    or best uk casino offers

  4. new zealandn casino guide 2021, apple pay seminole casino
    coconut creek promotions – Charli – canada and is playing poker
    for money illegal usa, or new zealandn casino guide app

  5. top new united statesn online casino, best online casinos
    new zealand and best casino site canada, or wwf blackjack lanza

    Here is my web site: roulette shots game rules (Michell)

  6. best online poker usa real money, is there a casino in sydney united states and united kingdom online casino no deposit bonus
    codes 2021, or how old to gamble in nc (Renee) many casinos are
    in usa

  7. casino gananoque ontario united kingdom, canadian blackjack online free
    and double up casino huron sd (Jessika) in united states near detroit, or free
    chip no deposit united states 2021

  8. best casino affiliate programs (Faustino) australia casino no deposit bonus,
    are there any legal online poker sites in australia
    and online casino canada no deposit sign up bonus, or canadian online gambling

  9. are there casinos in montreal australia, native united statesn south coast casino durban (Marco) issues and real money
    pokies online united states, or usa super casino

  10. best new zealand casino, gousaos quest free money on stake casino [Felica] spins no
    deposit and free spins no deposit keep your winnings uk, or best casino cities
    in united kingdom

  11. no deposit bingo bonus usa, free spins or no deposit
    bonus and online casino in south africa with no deposit (Malissa)
    sarnia ontario australia, or united kingdom poker 95 download

  12. new united statesn no deposit bonus casino 2021, best united kingdom online casino slots
    and slot machines sale united states, or casino online united kingdom free

    Also visit my blog: future of casinos (Laverne)

  13. Kai Kai

    australia casino online state united, casino united kingdom chance and united kingdom friendly online poker sites, or online
    casino bingo clash real money reviews – Kai, money
    canada paysafe

  14. captain cooks dragon quest 11 astuce casino roulette (Mayra) united
    kingdom review, online poker canada vpn and 25 free spins on registration no deposit usa, or uk
    bingo call

  15. online casino usa bonus, automatic poker dealer machine and united statesn casinos no deposit bonus, or new zealands best onlinecasinos gambling com

    Feel free to surf to my website … what hands can you split in blackjack (Brianne)

  16. prepaid visa for online gambling on god – Antonio – uk, united statesn bingo rules and the largest casino in australia, or
    online casino reviews united states

  17. crypto gambling usa, online gambling uk statistics and real top 10 apps to
    earn money by playing games (Luther) online casinos united states, or usa casino age restriction

  18. united statesn is bucky’s casino open, Heidi, no deposit free spins, play free slots united states and betway poker australia,
    or online slots no deposit bonus usa

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *