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
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.
bingo canada sign up, online bingo slots uk
and no deposit casino offers usa, or united kingdom
online pokies paypal
my web blog … roulette Wheel Cake tutorial
new 2021 usa players online casino, best live blackjack sites usa and new no deposit bonus casino uk, or united kingdom poker machines online casino black jack rules free
gambling illegal usa, free 50 pokies no deposit sign up bonus united kingdom and canada casino download free game, or free online pokies no
download united kingdom
My page: All pay N play casinos
online texas holdem real money australia, new no deposit canadian casinos and hausaos dojo slot online
real money no deposit bonus, or no deposit casino usa
Also visit my website … Chilli Spins Login
all poker sites uk, gambling northeast usa and best
casino sites in canada, or united statesn casino free spins no deposit
Here is my blog post :: what date will casinos open
united kingdom casino guide 2021 review, is it legal to play
online slots in australia and new online slot sites uk, or how much
does canada spend on pokies
My blog :: casinos that use coins
canada visa slots, wild life slots australia and best slot sites australia, or
is carter wi casino open (Carmen) uk paypal
canada no deposit bonus casino, $5 minimum deposit casino new zealand
2021 and online casino united statesn dollars, or
online casino united states legal real make money playing baccarat
hrát hrací automaty za peníze
Take a look at my blog casino bez licence Praha (Unipharmajsc.com)
online Nové Casino Platba Ethereum, https://Lowen.Devhelphumans.Digital, bitcoin
Сталь 12Х18Н10Т — широко используемая нержавеющая сталь в промышленности. Добавка титана в составе сталь не склонна к межкристаллитному разрушению даже после длительного нагрева.
Состав и свойства: https://stal-12h18n10t.ru/truba
Сплав применяется в химической промышленности — в конструкциях, работающих при высоких температурах. Зарубежные аналоги: AISI 321, EN 1.4541 (Европа), SUS 321 (Япония).
casino tischspiele mit paypal
Here is my web blog; Beste Slots Google Pay
casino mindesteinzahlung 100 euro Revolut
5 euro revolut
casino 3 euro einzahlen 9 euro spielen
Feel free to visit my blog; Slots cashlib auszahlung
40 euro startguthaben ohne einzahlung
my page :: Roulette Richtig Gespielt
casino mit 200 prozent bonus
My web blog – beste fruit Slots