fbpx
Skip to main content

LINUX AVANZATO 2007

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
18 Anni 2 Mesi fa #53994 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Ah non avevo letto bene l'argomento del while()! :lol:
Ok allora bravissimo! :D

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
18 Anni 2 Mesi fa #54035 da chiara sabbatella
Risposta da chiara sabbatella al topic LINUX AVANZATO 2007
Pareva abbastanza tranquillo l'orale di oggi e non si è distaccato troppo da quelli che sono gli argomenti delle dispense (cosa che invece aveva anche fatto!!!)

Cmq ha chiesto:
-sw timer
-page cache, FVS, slab (ma nn il codice, ha chiesto i campi + importanti delle strutture che servono a implementare sta roba, nn i nomi ma + che altro a che servono)
-sezioni init
-init del kernel (la summary_start_linux basta pure, anche se qualche piccolo riferimento alla disp. start_linux grossa lo ha fatto)
-sys_open(TUTTO, ma col codice davanti da commentare)
-i moduli
-il linkaggio (ditegli che sono 3, statico, dinamico, con dlopen)
-spazio indirizzi del processo (da sistemi operativi)

In generale non mi pare altra roba. Questa è la circa la roba che ha chiesto in 4 esami.

Ha fatto anche qualche domanda che sulle dispense non c è, ma a persone che hanno preso 30.....evidentemente per mettere la lode...penso....

Ciao!

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
18 Anni 2 Mesi fa #54041 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007

Ah non avevo letto bene l'argomento del while()! :lol:
Ok allora bravissimo! :D


Sarò anche bravissimo ma quello che dice il prof, a meno che non abbia capito bene io, non è possibile che accada.

Utilizzando anche l'esempio che ha fatto lui, applicando la stessa permutazione a temp_crypt non viene affatto abcdefgh (ovvero il contenuto del file di partenza) ma cdabghef.....

Boh!

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
18 Anni 2 Mesi fa #54064 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Beh si in realtà tu nella fasi di decriptaggio è come se riapplicassi il criptaggio al file gia criptato. E questa cosa non è detto che ti faccia ritornare all'originale (possono capitare delle permutazione che invece lo fanno capitare applicando un secondo criptaggio...). Tu nella fase di decrypt non devi applicare un'altra volta l'algoritmo del criptaggio! Devi fare l'inverso! se hai una permutazione 3 1 0 2, allora dal file criptato, significa che il il primo byte sta nella posizione 3, il secondo nella posizione 1, ecc...
Quindi la parte di codice in cui decripti modificala a dovere.
Basta che ci metti un bel lseek e passa la paura :D
Comunque parecchi hanno perso parecchio tempo sulla fase di decriptaggio.

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
18 Anni 2 Mesi fa #54080 da nicola bocchini
Risposta da nicola bocchini al topic LINUX AVANZATO 2007
Ciao ecco le domande che mi ha fatto all'orale

- Makefile (descrizione. Lui vuole sapere la sua utilità: ossia il fatto che controlla i file da compilare, e se sono stati modificati li ricompila altrimenti no)

- Come un file assembler richiama una funzione C

- Poi mi ha chiesto la funzione find_cache_page (me pare) da commentare in dettaglio guardando il codice. In realtà regà tocca farsi bene il codice di tutte le funzioni più importanti perchè lo chiede, ed io questa funzione non l'avevo proprio guardata pur sapendo quello che faceva a grandi linee.

In bocca a lupo a tutti!

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • COM_EASYSOCIAL_GUEST_NAME
  • Avatar di COM_EASYSOCIAL_GUEST_NAME
  • Visitatori
  • Visitatori
18 Anni 2 Mesi fa #54094 da COM_EASYSOCIAL_GUEST_NAME
Risposta da COM_EASYSOCIAL_GUEST_NAME al topic LINUX AVANZATO 2007
Ho risolto, ora funziona correttamente tutto quanto.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>

int main(int argc, char **argv){
	
	char *filename = argv[1];
	int N = atoi(argv[2]);
	int i;
	
	//genero permutazione casuale di numeri compresi tra 0 e N - 1
	int permutazione[N];
	
	srand(time(NULL));
	int perm = rand() % N;
	permutazione[0] = perm;
	
	for(i = 1; i < N; i++){
		while(1){
			perm = rand() % N;
			int j;
			for(j = 0; j < i; j++){
				if(perm != permutazione[j])
					continue;
				else break;
			}
			if(j == i){
				permutazione[i] = perm;
				break;
			}
		}
	}
	
	for(i = 0; i < N; i++)
		printf("%d\n", permutazione[i]);
	
	//apro i files
	char *filename2;
	strcpy(filename2, filename);
 	int fd = open(filename, O_RDONLY);
	if(fd < 0){
		printf("Errore nell'apertura del file %s!!\n", filename);
		exit(1);
	}
	char *suffix = "_crypt";
	strcat(filename, suffix);
	int fd1 = open(filename, O_CREAT|O_RDWR);
	if(fd1 < 0){
		printf("Errore nell'apertura del file %s!!\n", filename);
		exit(1);
	}
	suffix = "_decrypt";
	strcat(filename2, suffix);
	int fd2 = open(filename2, O_CREAT|O_WRONLY);
	if(fd2 < 0){
		printf("Errore nell'apertura del file %s!!\n", filename2);
		exit(1);
	}
	
	//cripto
	int nread;
	char buf[N];
	int num;
	while((nread = read(fd, buf, N)) == N){
		for(i = 0; i < N; i++){
			num = permutazione[i];
			write(fd1, &buf[num], 1);
		}
	}
	
	//decripto
	int block_number = 0;
	lseek(fd1, 0, SEEK_SET);
	while(nread = read(fd1, buf, N) == N){
		for(i = 0; i < N; i++){
			num = permutazione[i];
			lseek(fd2, num + (N * block_number), SEEK_SET);
			write(fd2, &buf[i], 1);
		}
		block_number++;
	}
	
	close(fd);
	close(fd1);
	close(fd2);
	
	return 0;
}

Un grosso in bocca al lupo a chi deve fare la prova oggi!!!! :wink:

Si prega Accedi o Crea un account a partecipare alla conversazione.