commit d062deeb5b3053f7f563d602dc0105953298f624 parent 74a5ee88853020a9770503f4d1946cd0d2feae60 Author: Christos Margiolis <christos@FreeBSD.org> Date: Tue, 28 May 2024 13:08:15 +0200 stuff Diffstat:
391 files changed, 508 insertions(+), 6 deletions(-)
diff --git a/verilog_advanced_design/ex1/comp2.v b/advanced_design/ex1/comp2.v diff --git a/verilog_advanced_design/ex1/comp2_tb.v b/advanced_design/ex1/comp2_tb.v diff --git a/verilog_advanced_design/ex1/dff.v b/advanced_design/ex1/dff.v diff --git a/verilog_advanced_design/ex1/dff_tb.v b/advanced_design/ex1/dff_tb.v diff --git a/verilog_advanced_design/ex1/mux4to1.v b/advanced_design/ex1/mux4to1.v diff --git a/verilog_advanced_design/ex1/mux4to1_tb.v b/advanced_design/ex1/mux4to1_tb.v diff --git a/verilog_advanced_design/ex1/shift4.v b/advanced_design/ex1/shift4.v diff --git a/verilog_advanced_design/ex1/shift4_tb.v b/advanced_design/ex1/shift4_tb.v diff --git a/verilog_advanced_design/ex2/alu.v b/advanced_design/ex2/alu.v diff --git a/verilog_advanced_design/ex2/alu_tb.v b/advanced_design/ex2/alu_tb.v diff --git a/verilog_advanced_design/ex2/lfsr.v b/advanced_design/ex2/lfsr.v diff --git a/verilog_advanced_design/ex2/lfsr_tb.v b/advanced_design/ex2/lfsr_tb.v diff --git a/python_ai/team.py b/ai/team.py diff --git a/lex_yacc_compilers/part1/02_B1_PART_A2.pdf b/compilers/part1/02_B1_PART_A2.pdf Binary files differ. diff --git a/lex_yacc_compilers/part1/cmt.fsm b/compilers/part1/cmt.fsm diff --git a/lex_yacc_compilers/part1/def.fsm b/compilers/part1/def.fsm diff --git a/lex_yacc_compilers/part1/float.fsm b/compilers/part1/float.fsm diff --git a/lex_yacc_compilers/part1/fsm b/compilers/part1/fsm Binary files differ. diff --git a/lex_yacc_compilers/part1/fsm.c b/compilers/part1/fsm.c diff --git a/lex_yacc_compilers/part1/int.fsm b/compilers/part1/int.fsm diff --git a/lex_yacc_compilers/part1/lex.fsm b/compilers/part1/lex.fsm diff --git a/lex_yacc_compilers/part1/sep.fsm b/compilers/part1/sep.fsm diff --git a/lex_yacc_compilers/part1/str.fsm b/compilers/part1/str.fsm diff --git a/lex_yacc_compilers/part1/var.fsm b/compilers/part1/var.fsm diff --git a/lex_yacc_compilers/part2/02_B1_PART_A3.pdf b/compilers/part2/02_B1_PART_A3.pdf Binary files differ. diff --git a/lex_yacc_compilers/part2/Makefile b/compilers/part2/Makefile diff --git a/lex_yacc_compilers/part2/input.txt b/compilers/part2/input.txt diff --git a/lex_yacc_compilers/part2/lex.l b/compilers/part2/lex.l diff --git a/lex_yacc_compilers/part2/output.txt b/compilers/part2/output.txt diff --git a/lex_yacc_compilers/part2/token.h b/compilers/part2/token.h diff --git a/lex_yacc_compilers/part3/02_B1_PART_B2.pdf b/compilers/part3/02_B1_PART_B2.pdf Binary files differ. diff --git a/lex_yacc_compilers/part3/Makefile b/compilers/part3/Makefile diff --git a/lex_yacc_compilers/part3/input.txt b/compilers/part3/input.txt diff --git a/lex_yacc_compilers/part3/lex.l b/compilers/part3/lex.l diff --git a/lex_yacc_compilers/part3/output.txt b/compilers/part3/output.txt diff --git a/lex_yacc_compilers/part3/syntax.y b/compilers/part3/syntax.y diff --git a/lex_yacc_compilers/part4/02_B1_PART_B3.pdf b/compilers/part4/02_B1_PART_B3.pdf Binary files differ. diff --git a/lex_yacc_compilers/part4/Makefile b/compilers/part4/Makefile diff --git a/lex_yacc_compilers/part4/input.txt b/compilers/part4/input.txt diff --git a/lex_yacc_compilers/part4/lex.l b/compilers/part4/lex.l diff --git a/lex_yacc_compilers/part4/output.txt b/compilers/part4/output.txt diff --git a/lex_yacc_compilers/part4/syntax.y b/compilers/part4/syntax.y diff --git a/concurrent_programming/Makefile b/concurrent_programming/Makefile @@ -0,0 +1,6 @@ +all: + cc rps_server.c -o rps_server + cc rps_client.c -lncurses -o rps_client + +clean: + rm -f rps_server rps_client *.core *.o diff --git a/concurrent_programming/rps_client.c b/concurrent_programming/rps_client.c @@ -0,0 +1,183 @@ +#include <err.h> +#include <locale.h> +#include <ncurses.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define ARRLEN(x) (sizeof(x) / sizeof(x[0])) + +struct command { + char name[32]; + void (*func)(char *); +}; + +static void cmd_challenge(char *); +static void cmd_play(char *); +static void cmd_msg(char *); +static void cmd_list(char *); +static void cmd_quit(char *); +static int init_curses(void); +static struct command *parse_command(char **); + +static struct command commands[] = { + { "challenge", cmd_challenge }, /* /challenge <name|id> */ + { "play", cmd_play }, /* /play <rock|paper|scissor> */ + { "msg", cmd_msg }, /* /msg <message> */ + { "list", cmd_list }, /* /list */ + { "quit", cmd_quit }, /* /quit */ +}; + +static int ymax; +static int xmax; +static volatile bool f_quit = false; + +static void +cmd_challenge(char *args) +{ +} + +static void +cmd_play(char *args) +{ + /* TODO add fuzzy parsing */ + /* TODO ask for command and send it to server */ +} + +static void +cmd_msg(char *args) +{ +} + +static void +cmd_list(char *args) +{ +} + +static void +cmd_quit(char *args) +{ + f_quit = true; +} + +static int +init_curses(void) +{ + if (!initscr()) + return (-1); + + /* Don't echo keypresses. */ + noecho(); + /* Disable line buffering. */ + cbreak(); + /* Hide the cursor. */ + curs_set(false); + /* Allow arrow-key usage. */ + keypad(stdscr, true); + /* ESC has a small delay after it's pressed. Remove it. */ + set_escdelay(0); + /* + * Don't wait for a keypress -- just continue if there's no keypress + * within 1000 milliseconds. We could set the delay to 0 milliseconds, + * but this will most likely burn the CPU. + */ + timeout(1000); + (void)getmaxyx(stdscr, ymax, xmax); + start_color(); + /* Use the terminal's colorscheme. */ + use_default_colors(); + /* TODO init pairs */ + + return (0); +} + +static struct command * +parse_command(char **args) +{ + char buf[BUFSIZ], *line, *cmd, *s; + int i; + + printf("\r> "); + fgets(buf, sizeof(buf), stdin); + line = buf; + + if (*line == '\n' || *line == '\0') { + warnx("empty command"); + return (NULL); + } + + /* Get rid of leading whitespaces. */ + while (*line == ' ') + line++; + + /* Get rid of trailing newlines. */ + for (s = line; *s != '\0'; s++) { + if (*s != '\n') + continue; + *s = '\0'; + break; + } + + /* Commands must start with /. */ + if (*line != '/') { + warnx("please enter a command"); + return (NULL); + } + line++; + + *args = strchr(line, ' '); + if (*args != NULL) { + while (**args == ' ') + (*args)++; + } + + cmd = strtok(line, " "); + if (cmd == NULL) { + warn("strtok() failed"); + return (NULL); + } + + /* Match command. */ + for (i = 0; i < ARRLEN(commands); i++) { + if (strncmp(cmd, commands[i].name, + strlen(commands[i].name)) == 0) { + *args = strdup(*args); + return (&commands[i]); + } + } + warnx("invalid command: %s", cmd); + + return (NULL); +} + +int +main(int argc, char *argv[]) +{ + struct command *cmd; + char *args; + + /* TODO command line network options */ + /* TODO signals */ + /* TODO nickname selection (server keeps asking until unique) */ + + if (!setlocale(LC_ALL, "")) + err(1, "setlocale"); + + /*if (init_curses() < 0)*/ + /*errx(1, "could not initialize ncurses");*/ + + for (;;) { + if (f_quit) + break; + /* TODO redraw */ + if ((cmd = parse_command(&args)) == NULL) + continue; + /* TODO connect to server */ + cmd->func(args); + free(args); + } + + /*(void)endwin();*/ + + return (0); +} diff --git a/concurrent_programming/rps_server.c b/concurrent_programming/rps_server.c @@ -0,0 +1,130 @@ +#include <sys/socket.h> +#include <sys/types.h> + +#include <arpa/inet.h> +#include <netdb.h> +#include <netinet/in.h> + +#include <err.h> +#include <signal.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +static void usage(void); +static void sighandler(int); + +static volatile sig_atomic_t f_quit = 0; + +static void +sighandler(int sig) +{ + f_quit = 1; +} + +static void +usage(void) +{ + fprintf(stderr, "usage: %1$s [-b backlog] [-p port] <hostname|ipv4_addr>\n", + getprogname()); + exit(1); +} + +int +main(int argc, char *argv[]) +{ + struct sockaddr_in sin; + struct hostent *hp; + struct sigaction sa; + int backlog = 10; + int port = 9999; + int sfd; + int ch; + + while ((ch = getopt(argc, argv, "b:p:")) != -1) { + switch (ch) { + case 'b': + /* + * Negative `backlog` value normally requests the + * maximum allowable value (HISTORY section of + * listen(2)'s FreeBSD man page), but it's better to + * not allow it in case the user passes a negative + * value accidentally. Also a value of 0 doesn't make + * sense, so we don't allow it either. + */ + if ((backlog = atoi(optarg)) < 1) + errx(1, "backlog value must be greater than 1"); + break; + case 'p': + /* Choose custom port but don't use a well-known port. */ + if ((port = atoi(optarg)) < 1024) + errx(1, "can't use port number < 1024"); + break; + case '?': + default: + usage(); + } + } + argc -= optind; + argv += optind; + + /* Hostname/IP missing. */ + if (argc < 1) + usage(); + + /* + * Handle termination signals so we don't exit abnormally (i.e without + * cleaning up resources). + */ + memset(&sa, 0, sizeof(sa)); + sigfillset(&sa.sa_mask); + sa.sa_handler = sighandler; + if (sigaction(SIGINT, &sa, NULL) < 0) + err(1, "sigaction(SIGINT)"); + if (sigaction(SIGTERM, &sa, NULL) < 0) + err(1, "sigaction(SIGTERM)"); + + if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) + err(1, "socket(AF_INET)"); + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + /* Convert the port number to network bytes. */ + sin.sin_port = htons(port); + + /* + * We'll try and see if the input is an IPv4 address. If inet_aton(3) + * does not fail, the user did pass an IPv4 address. However if + * inet_addr(3) fails, we'll assume the user passed a hostname. If the + * hostname was wrong, gethostbyname(3) will fail. That lets us use + * both hostnames and IPv4 addresses as arguments. + */ + if (!inet_aton(*argv, &sin.sin_addr)) { + /* + * Get host info by hostname. The host's IPv4 address will be + * written to `hp->h_addr`. + */ + if ((hp = gethostbyname(*argv)) == NULL) + errx(1, "gethostbyname(%s) failed", *argv); + memcpy(&sin.sin_addr, hp->h_addr, hp->h_length); + } + if (bind(sfd, (struct sockaddr *)&sin, sizeof(sin)) < 0) + err(1, "bind"); + + printf("Domain: AF_INET\nIPv4: %s\nPort: %d\nBacklog: %d\n", + inet_ntoa(sin.sin_addr), port, backlog); + + if (listen(sfd, backlog) < 0) + err(1, "listen"); + + for (;;) { + /* We caught a termination signal. */ + if (f_quit) + break; + } + + /* Will get here only if a termination signal is caught. */ + close(sfd); + + return (0); +} diff --git a/c_data_structures/arrays_ex1.c b/data_structures/arrays_ex1.c diff --git a/c_data_structures/arrays_ex2.c b/data_structures/arrays_ex2.c diff --git a/c_data_structures/arrays_ex3.c b/data_structures/arrays_ex3.c diff --git a/c_data_structures/bintree.c b/data_structures/bintree.c diff --git a/c_data_structures/files_ex1.c b/data_structures/files_ex1.c diff --git a/c_data_structures/files_ex2.c b/data_structures/files_ex2.c diff --git a/c_data_structures/funcs_ex1.c b/data_structures/funcs_ex1.c diff --git a/c_data_structures/funcs_ex2.c b/data_structures/funcs_ex2.c diff --git a/c_data_structures/funcs_ex3.c b/data_structures/funcs_ex3.c diff --git a/c_data_structures/memalloc_ex1.c b/data_structures/memalloc_ex1.c diff --git a/c_data_structures/memalloc_ex2.c b/data_structures/memalloc_ex2.c diff --git a/c_data_structures/ptrs_ex1.c b/data_structures/ptrs_ex1.c diff --git a/c_data_structures/ptrs_ex2.c b/data_structures/ptrs_ex2.c diff --git a/c_data_structures/ptrs_ex3.c b/data_structures/ptrs_ex3.c diff --git a/c_data_structures/queue.c b/data_structures/queue.c diff --git a/c_data_structures/stack_list.c b/data_structures/stack_list.c diff --git a/sql_databases1/ex1_new_personnel.sql b/databases1/ex1_new_personnel.sql diff --git a/sql_databases1/ex2_new_personnel.sql b/databases1/ex2_new_personnel.sql diff --git a/sql_databases1/ex3_new_personnel.sql b/databases1/ex3_new_personnel.sql diff --git a/sql_php_databases2/insurance.db b/databases2/insurance.db Binary files differ. diff --git a/sql_php_databases2/insurance.sql b/databases2/insurance.sql diff --git a/sql_php_databases2/site.php b/databases2/site.php diff --git a/vhdl_digital_design/Makefile b/digital_design/Makefile diff --git a/vhdl_digital_design/ex1/Makefile b/digital_design/ex1/Makefile diff --git a/vhdl_digital_design/ex1/adder4.vhd b/digital_design/ex1/adder4.vhd diff --git a/vhdl_digital_design/ex1/adder4_tb.vhd b/digital_design/ex1/adder4_tb.vhd diff --git a/vhdl_digital_design/ex1/dec2to4.vhd b/digital_design/ex1/dec2to4.vhd diff --git a/vhdl_digital_design/ex1/dec2to4_tb.vhd b/digital_design/ex1/dec2to4_tb.vhd diff --git a/vhdl_digital_design/ex1/dec2to4en.vhd b/digital_design/ex1/dec2to4en.vhd diff --git a/vhdl_digital_design/ex1/dec2to4en_tb.vhd b/digital_design/ex1/dec2to4en_tb.vhd diff --git a/vhdl_digital_design/ex1/dec4to16.vhd b/digital_design/ex1/dec4to16.vhd diff --git a/vhdl_digital_design/ex1/dec4to16_tb.vhd b/digital_design/ex1/dec4to16_tb.vhd diff --git a/vhdl_digital_design/ex1/fa.vhd b/digital_design/ex1/fa.vhd diff --git a/vhdl_digital_design/ex1/fa_tb.vhd b/digital_design/ex1/fa_tb.vhd diff --git a/vhdl_digital_design/ex1/ha.vhd b/digital_design/ex1/ha.vhd diff --git a/vhdl_digital_design/ex1/ha_tb.vhd b/digital_design/ex1/ha_tb.vhd diff --git a/vhdl_digital_design/ex1/mux2to1.vhd b/digital_design/ex1/mux2to1.vhd diff --git a/vhdl_digital_design/ex1/mux2to1_tb.vhd b/digital_design/ex1/mux2to1_tb.vhd diff --git a/vhdl_digital_design/ex1/mux4to1.vhd b/digital_design/ex1/mux4to1.vhd diff --git a/vhdl_digital_design/ex1/mux4to1_tb.vhd b/digital_design/ex1/mux4to1_tb.vhd diff --git a/vhdl_digital_design/ex1/mux_triple_2to1.vhd b/digital_design/ex1/mux_triple_2to1.vhd diff --git a/vhdl_digital_design/ex1/mux_triple_2to1_tb.vhd b/digital_design/ex1/mux_triple_2to1_tb.vhd diff --git a/vhdl_digital_design/ex2/Makefile b/digital_design/ex2/Makefile diff --git a/vhdl_digital_design/ex2/ff.vhd b/digital_design/ex2/ff.vhd diff --git a/vhdl_digital_design/ex2/ff_tb.vhd b/digital_design/ex2/ff_tb.vhd diff --git a/vhdl_digital_design/ex2/ffrst.vhd b/digital_design/ex2/ffrst.vhd diff --git a/vhdl_digital_design/ex2/ffrst_tb.vhd b/digital_design/ex2/ffrst_tb.vhd diff --git a/vhdl_digital_design/ex2/latch.vhd b/digital_design/ex2/latch.vhd diff --git a/vhdl_digital_design/ex2/latch_tb.vhd b/digital_design/ex2/latch_tb.vhd diff --git a/vhdl_digital_design/ex2/reg.vhd b/digital_design/ex2/reg.vhd diff --git a/vhdl_digital_design/ex2/reg_tb.vhd b/digital_design/ex2/reg_tb.vhd diff --git a/vhdl_digital_design/ex2/shift4.vhd b/digital_design/ex2/shift4.vhd diff --git a/vhdl_digital_design/ex2/shiftn.vhd b/digital_design/ex2/shiftn.vhd diff --git a/vhdl_digital_design/ex2/upcount.vhd b/digital_design/ex2/upcount.vhd diff --git a/vhdl_digital_design/ex2/upcount_tb.vhd b/digital_design/ex2/upcount_tb.vhd diff --git a/vhdl_digital_design/ex3/Makefile b/digital_design/ex3/Makefile diff --git a/vhdl_digital_design/ex3/regfile.vhd b/digital_design/ex3/regfile.vhd diff --git a/vhdl_digital_design/ex3/regfile_ext.vhd b/digital_design/ex3/regfile_ext.vhd diff --git a/vhdl_digital_design/ex3/regfile_ext_tb.vhd b/digital_design/ex3/regfile_ext_tb.vhd diff --git a/vhdl_digital_design/ex3/regfile_tb.vhd b/digital_design/ex3/regfile_tb.vhd diff --git a/vhdl_digital_design/ex4/Makefile b/digital_design/ex4/Makefile diff --git a/vhdl_digital_design/ex4/alu4.vhd b/digital_design/ex4/alu4.vhd diff --git a/vhdl_digital_design/ex4/alu4_tb.vhd b/digital_design/ex4/alu4_tb.vhd diff --git a/vhdl_digital_design/project/part1_mux_dec/Makefile b/digital_design/project/part1_mux_dec/Makefile diff --git a/vhdl_digital_design/project/part1_mux_dec/dec2to4.vhd b/digital_design/project/part1_mux_dec/dec2to4.vhd diff --git a/vhdl_digital_design/project/part1_mux_dec/mux2to1.vhd b/digital_design/project/part1_mux_dec/mux2to1.vhd diff --git a/vhdl_digital_design/project/part1_mux_dec/mux2to1gen.vhd b/digital_design/project/part1_mux_dec/mux2to1gen.vhd diff --git a/vhdl_digital_design/project/part1_mux_dec/mux2to1gen_tb.vhd b/digital_design/project/part1_mux_dec/mux2to1gen_tb.vhd diff --git a/vhdl_digital_design/project/part2_alu/Makefile b/digital_design/project/part2_alu/Makefile diff --git a/vhdl_digital_design/project/part2_alu/alu.vhd b/digital_design/project/part2_alu/alu.vhd diff --git a/vhdl_digital_design/project/part2_alu/alu_tb.vhd b/digital_design/project/part2_alu/alu_tb.vhd diff --git a/vhdl_digital_design/project/part3_alu_ctrl/Makefile b/digital_design/project/part3_alu_ctrl/Makefile diff --git a/vhdl_digital_design/project/part3_alu_ctrl/alu.vhd b/digital_design/project/part3_alu_ctrl/alu.vhd diff --git a/vhdl_digital_design/project/part3_alu_ctrl/alu_ctrl.vhd b/digital_design/project/part3_alu_ctrl/alu_ctrl.vhd diff --git a/vhdl_digital_design/project/part3_alu_ctrl/alu_ctrl_tb.vhd b/digital_design/project/part3_alu_ctrl/alu_ctrl_tb.vhd diff --git a/vhdl_digital_design/project/part3_alu_ctrl/alu_ctrl_test_alu.vhd b/digital_design/project/part3_alu_ctrl/alu_ctrl_test_alu.vhd diff --git a/vhdl_digital_design/project/part3_alu_ctrl/alu_ctrl_test_alu_tb.vhd b/digital_design/project/part3_alu_ctrl/alu_ctrl_test_alu_tb.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/Makefile b/digital_design/project/part4_ctrl_signext_lshift/Makefile diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/ctrl.vhd b/digital_design/project/part4_ctrl_signext_lshift/ctrl.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/ctrl_tb.vhd b/digital_design/project/part4_ctrl_signext_lshift/ctrl_tb.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/shl2.vhd b/digital_design/project/part4_ctrl_signext_lshift/shl2.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/shl2_tb.vhd b/digital_design/project/part4_ctrl_signext_lshift/shl2_tb.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/sign_ext.vhd b/digital_design/project/part4_ctrl_signext_lshift/sign_ext.vhd diff --git a/vhdl_digital_design/project/part4_ctrl_signext_lshift/sign_ext_tb.vhd b/digital_design/project/part4_ctrl_signext_lshift/sign_ext_tb.vhd diff --git a/vhdl_digital_design/project/part5_instrmem_datamem/Makefile b/digital_design/project/part5_instrmem_datamem/Makefile diff --git a/vhdl_digital_design/project/part5_instrmem_datamem/datamem.vhd b/digital_design/project/part5_instrmem_datamem/datamem.vhd diff --git a/vhdl_digital_design/project/part5_instrmem_datamem/datamem_tb.vhd b/digital_design/project/part5_instrmem_datamem/datamem_tb.vhd diff --git a/vhdl_digital_design/project/part5_instrmem_datamem/instrmem.vhd b/digital_design/project/part5_instrmem_datamem/instrmem.vhd diff --git a/vhdl_digital_design/project/part5_instrmem_datamem/instrmem_tb.vhd b/digital_design/project/part5_instrmem_datamem/instrmem_tb.vhd diff --git a/vhdl_digital_design/project/part6_regfile/Makefile b/digital_design/project/part6_regfile/Makefile diff --git a/vhdl_digital_design/project/part6_regfile/reg.vhd b/digital_design/project/part6_regfile/reg.vhd diff --git a/vhdl_digital_design/project/part6_regfile/reg_tb.vhd b/digital_design/project/part6_regfile/reg_tb.vhd diff --git a/vhdl_digital_design/project/part6_regfile/regfile.vhd b/digital_design/project/part6_regfile/regfile.vhd diff --git a/vhdl_digital_design/project/part6_regfile/regfile_ext.vhd b/digital_design/project/part6_regfile/regfile_ext.vhd diff --git a/vhdl_digital_design/project/part6_regfile/regfile_ext_tb.vhd b/digital_design/project/part6_regfile/regfile_ext_tb.vhd diff --git a/vhdl_digital_design/project/part6_regfile/regfile_tb.vhd b/digital_design/project/part6_regfile/regfile_tb.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/Makefile b/digital_design/project/part7_mips_r_ops/Makefile diff --git a/vhdl_digital_design/project/part7_mips_r_ops/adder32.vhd b/digital_design/project/part7_mips_r_ops/adder32.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/alu.vhd b/digital_design/project/part7_mips_r_ops/alu.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/alu_ctrl.vhd b/digital_design/project/part7_mips_r_ops/alu_ctrl.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/ctrl.vhd b/digital_design/project/part7_mips_r_ops/ctrl.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/instrmem.vhd b/digital_design/project/part7_mips_r_ops/instrmem.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/mips.vhd b/digital_design/project/part7_mips_r_ops/mips.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/mips_tb.vhd b/digital_design/project/part7_mips_r_ops/mips_tb.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/pc.vhd b/digital_design/project/part7_mips_r_ops/pc.vhd diff --git a/vhdl_digital_design/project/part7_mips_r_ops/regfile_ext.vhd b/digital_design/project/part7_mips_r_ops/regfile_ext.vhd diff --git a/c_java_distributed_sys/ex1/doc/doc.pdf b/distributed_systems/ex1/doc/doc.pdf Binary files differ. diff --git a/c_java_distributed_sys/ex1/doc/doc.tex b/distributed_systems/ex1/doc/doc.tex diff --git a/c_java_distributed_sys/ex1/doc/doc.toc b/distributed_systems/ex1/doc/doc.toc diff --git a/c_java_distributed_sys/ex1/doc/res/concur.png b/distributed_systems/ex1/doc/res/concur.png Binary files differ. diff --git a/c_java_distributed_sys/ex1/doc/res/jail.png b/distributed_systems/ex1/doc/res/jail.png Binary files differ. diff --git a/c_java_distributed_sys/ex1/doc/res/samepc.png b/distributed_systems/ex1/doc/res/samepc.png Binary files differ. diff --git a/c_embedded/doc/res/uniwalogo.png b/distributed_systems/ex1/doc/res/uniwalogo.png Binary files differ. diff --git a/c_java_distributed_sys/ex1/src/Makefile b/distributed_systems/ex1/src/Makefile diff --git a/c_java_distributed_sys/ex1/src/Makefile.rpc b/distributed_systems/ex1/src/Makefile.rpc diff --git a/c_java_distributed_sys/ex1/src/rpc.x b/distributed_systems/ex1/src/rpc.x diff --git a/c_java_distributed_sys/ex1/src/rpc_client.c b/distributed_systems/ex1/src/rpc_client.c diff --git a/c_java_distributed_sys/ex1/src/rpc_server.c b/distributed_systems/ex1/src/rpc_server.c diff --git a/c_java_distributed_sys/ex1/src/sock_client.c b/distributed_systems/ex1/src/sock_client.c diff --git a/c_java_distributed_sys/ex2/doc/doc.pdf b/distributed_systems/ex2/doc/doc.pdf Binary files differ. diff --git a/c_java_distributed_sys/ex2/doc/doc.tex b/distributed_systems/ex2/doc/doc.tex diff --git a/c_java_distributed_sys/ex2/doc/doc.toc b/distributed_systems/ex2/doc/doc.toc diff --git a/c_java_distributed_sys/ex2/doc/res/run1.png b/distributed_systems/ex2/doc/res/run1.png Binary files differ. diff --git a/c_java_distributed_sys/ex2/doc/res/run2.png b/distributed_systems/ex2/doc/res/run2.png Binary files differ. diff --git a/c_java_distributed_sys/ex1/doc/res/uniwalogo.png b/distributed_systems/ex2/doc/res/uniwalogo.png Binary files differ. diff --git a/c_java_distributed_sys/ex2/src/HRClient.java b/distributed_systems/ex2/src/HRClient.java diff --git a/c_java_distributed_sys/ex2/src/HRImpl.java b/distributed_systems/ex2/src/HRImpl.java diff --git a/c_java_distributed_sys/ex2/src/HRInterface.java b/distributed_systems/ex2/src/HRInterface.java diff --git a/c_java_distributed_sys/ex2/src/HRServer.java b/distributed_systems/ex2/src/HRServer.java diff --git a/c_java_distributed_sys/ex2/src/Room.java b/distributed_systems/ex2/src/Room.java diff --git a/c_embedded/doc/bme280_datasheet.pdf b/embedded_systems/doc/bme280_datasheet.pdf Binary files differ. diff --git a/c_embedded/doc/doc.pdf b/embedded_systems/doc/doc.pdf Binary files differ. diff --git a/c_embedded/doc/doc.tex b/embedded_systems/doc/doc.tex diff --git a/c_embedded/doc/doc.toc b/embedded_systems/doc/doc.toc diff --git a/c_embedded/doc/lcd_datasheet.pdf b/embedded_systems/doc/lcd_datasheet.pdf Binary files differ. diff --git a/c_embedded/doc/pic16f87xa_datasheet.pdf b/embedded_systems/doc/pic16f87xa_datasheet.pdf Binary files differ. diff --git a/c_embedded/doc/res/button.jpg b/embedded_systems/doc/res/button.jpg Binary files differ. diff --git a/c_embedded/doc/res/main.jpg b/embedded_systems/doc/res/main.jpg Binary files differ. diff --git a/c_embedded/doc/res/pickit.jpg b/embedded_systems/doc/res/pickit.jpg Binary files differ. diff --git a/c_embedded/doc/res/schem.png b/embedded_systems/doc/res/schem.png Binary files differ. diff --git a/c_embedded/doc/res/side.jpg b/embedded_systems/doc/res/side.jpg Binary files differ. diff --git a/c_java_distributed_sys/ex2/doc/res/uniwalogo.png b/embedded_systems/doc/res/uniwalogo.png Binary files differ. diff --git a/c_embedded/schem/fp-info-cache b/embedded_systems/schem/fp-info-cache diff --git a/c_embedded/schem/layout.kicad_wks b/embedded_systems/schem/layout.kicad_wks diff --git a/c_embedded/schem/pic-cache.lib b/embedded_systems/schem/pic-cache.lib diff --git a/c_embedded/schem/pic.pdf b/embedded_systems/schem/pic.pdf Binary files differ. diff --git a/c_embedded/schem/pic.pro b/embedded_systems/schem/pic.pro diff --git a/c_embedded/schem/pic.sch b/embedded_systems/schem/pic.sch diff --git a/c_embedded/schem/pic.sch-bak b/embedded_systems/schem/pic.sch-bak diff --git a/c_embedded/src/Makefile b/embedded_systems/src/Makefile diff --git a/c_embedded/src/bme280.c b/embedded_systems/src/bme280.c diff --git a/c_embedded/src/bme280.h b/embedded_systems/src/bme280.h diff --git a/c_embedded/src/extern.h b/embedded_systems/src/extern.h diff --git a/c_embedded/src/i2c.c b/embedded_systems/src/i2c.c diff --git a/c_embedded/src/i2c.h b/embedded_systems/src/i2c.h diff --git a/c_embedded/src/lcd.c b/embedded_systems/src/lcd.c diff --git a/c_embedded/src/lcd.h b/embedded_systems/src/lcd.h diff --git a/c_embedded/src/main.c b/embedded_systems/src/main.c diff --git a/c_embedded/src/tmr0.c b/embedded_systems/src/tmr0.c diff --git a/c_embedded/src/tmr0.h b/embedded_systems/src/tmr0.h diff --git a/c_embedded/src/util.c b/embedded_systems/src/util.c diff --git a/c_embedded/src/util.h b/embedded_systems/src/util.h diff --git a/c_microcomputers/ex1/doc.pdf b/microcomputers/ex1/doc.pdf Binary files differ. diff --git a/c_microcomputers/ex1/doc.tex b/microcomputers/ex1/doc.tex diff --git a/c_microcomputers/ex1/servo.ino b/microcomputers/ex1/servo.ino diff --git a/c_microcomputers/ex1/servo.png b/microcomputers/ex1/servo.png Binary files differ. diff --git a/c_microcomputers/ex2/doc.pdf b/microcomputers/ex2/doc.pdf Binary files differ. diff --git a/c_microcomputers/ex2/doc.tex b/microcomputers/ex2/doc.tex diff --git a/c_microcomputers/ex2/traffic.ino b/microcomputers/ex2/traffic.ino diff --git a/c_microcomputers/ex2/traffic.png b/microcomputers/ex2/traffic.png Binary files differ. diff --git a/c_microcomputers/ex4/doc.pdf b/microcomputers/ex4/doc.pdf Binary files differ. diff --git a/c_microcomputers/ex4/doc.tex b/microcomputers/ex4/doc.tex diff --git a/c_microcomputers/ex4/freertos.ino b/microcomputers/ex4/freertos.ino diff --git a/c_microcomputers/ex4/freertos.png b/microcomputers/ex4/freertos.png Binary files differ. diff --git a/c_microcomputers/ex7/doc.pdf b/microcomputers/ex7/doc.pdf Binary files differ. diff --git a/c_microcomputers/ex7/doc.tex b/microcomputers/ex7/doc.tex diff --git a/c_microcomputers/ex7/door.ino b/microcomputers/ex7/door.ino diff --git a/c_microcomputers/ex7/door.png b/microcomputers/ex7/door.png Binary files differ. diff --git a/c_microcomputers/ex8/doc.pdf b/microcomputers/ex8/doc.pdf Binary files differ. diff --git a/c_microcomputers/ex8/doc.tex b/microcomputers/ex8/doc.tex diff --git a/c_microcomputers/ex8/radar.ino b/microcomputers/ex8/radar.ino diff --git a/c_microcomputers/ex8/radar.png b/microcomputers/ex8/radar.png Binary files differ. diff --git a/java_net/net_programming/EchoClient.java b/network_programming/net_programming/EchoClient.java diff --git a/java_net/net_programming/EchoServer.java b/network_programming/net_programming/EchoServer.java diff --git a/java_net/net_programming/HTTPServer.html b/network_programming/net_programming/HTTPServer.html diff --git a/java_net/net_programming/HTTPServer.java b/network_programming/net_programming/HTTPServer.java diff --git a/java_net/net_programming/ShowIP.java b/network_programming/net_programming/ShowIP.java diff --git a/java_net/net_programming/UDPClient.java b/network_programming/net_programming/UDPClient.java diff --git a/java_net/net_programming/UDPServer.java b/network_programming/net_programming/UDPServer.java diff --git a/cpp_oop/1_fromctocpp/fromctocpp.cpp b/oop/1_fromctocpp/fromctocpp.cpp diff --git a/cpp_oop/2_classes/classes.cpp b/oop/2_classes/classes.cpp diff --git a/cpp_oop/3_operoverloading/Makefile b/oop/3_operoverloading/Makefile diff --git a/cpp_oop/3_operoverloading/src/course.cpp b/oop/3_operoverloading/src/course.cpp diff --git a/cpp_oop/3_operoverloading/src/course.hpp b/oop/3_operoverloading/src/course.hpp diff --git a/cpp_oop/3_operoverloading/src/main.cpp b/oop/3_operoverloading/src/main.cpp diff --git a/cpp_oop/3_operoverloading/src/student.cpp b/oop/3_operoverloading/src/student.cpp diff --git a/cpp_oop/3_operoverloading/src/student.hpp b/oop/3_operoverloading/src/student.hpp diff --git a/cpp_oop/4_inheritance/Makefile b/oop/4_inheritance/Makefile diff --git a/cpp_oop/4_inheritance/res/appdata.csv b/oop/4_inheritance/res/appdata.csv diff --git a/cpp_oop/4_inheritance/res/appdata_out.csv b/oop/4_inheritance/res/appdata_out.csv diff --git a/cpp_oop/4_inheritance/res/errlog.txt b/oop/4_inheritance/res/errlog.txt diff --git a/cpp_oop/4_inheritance/res/manfdata.csv b/oop/4_inheritance/res/manfdata.csv diff --git a/cpp_oop/4_inheritance/res/manfdata_out.csv b/oop/4_inheritance/res/manfdata_out.csv diff --git a/cpp_oop/4_inheritance/res/revs.csv b/oop/4_inheritance/res/revs.csv diff --git a/cpp_oop/4_inheritance/res/revs_out.csv b/oop/4_inheritance/res/revs_out.csv diff --git a/cpp_oop/4_inheritance/src/app.cpp b/oop/4_inheritance/src/app.cpp diff --git a/cpp_oop/4_inheritance/src/app.hpp b/oop/4_inheritance/src/app.hpp diff --git a/cpp_oop/4_inheritance/src/appsystem.cpp b/oop/4_inheritance/src/appsystem.cpp diff --git a/cpp_oop/4_inheritance/src/appsystem.hpp b/oop/4_inheritance/src/appsystem.hpp diff --git a/cpp_oop/4_inheritance/src/errlog.cpp b/oop/4_inheritance/src/errlog.cpp diff --git a/cpp_oop/4_inheritance/src/errlog.hpp b/oop/4_inheritance/src/errlog.hpp diff --git a/cpp_oop/4_inheritance/src/game.cpp b/oop/4_inheritance/src/game.cpp diff --git a/cpp_oop/4_inheritance/src/game.hpp b/oop/4_inheritance/src/game.hpp diff --git a/cpp_oop/4_inheritance/src/main.cpp b/oop/4_inheritance/src/main.cpp diff --git a/cpp_oop/4_inheritance/src/manufacturer.cpp b/oop/4_inheritance/src/manufacturer.cpp diff --git a/cpp_oop/4_inheritance/src/manufacturer.hpp b/oop/4_inheritance/src/manufacturer.hpp diff --git a/cpp_oop/4_inheritance/src/office.cpp b/oop/4_inheritance/src/office.cpp diff --git a/cpp_oop/4_inheritance/src/office.hpp b/oop/4_inheritance/src/office.hpp diff --git a/cpp_oop/4_inheritance/src/review.cpp b/oop/4_inheritance/src/review.cpp diff --git a/cpp_oop/4_inheritance/src/review.hpp b/oop/4_inheritance/src/review.hpp diff --git a/cpp_oop/5_spreadsheets/Makefile b/oop/5_spreadsheets/Makefile diff --git a/cpp_oop/5_spreadsheets/res/courses.csv b/oop/5_spreadsheets/res/courses.csv diff --git a/cpp_oop/5_spreadsheets/res/equivalencies.csv b/oop/5_spreadsheets/res/equivalencies.csv diff --git a/cpp_oop/5_spreadsheets/res/errlog.csv b/oop/5_spreadsheets/res/errlog.csv diff --git a/cpp_oop/5_spreadsheets/res/grades.csv b/oop/5_spreadsheets/res/grades.csv diff --git a/cpp_oop/5_spreadsheets/res/report.csv b/oop/5_spreadsheets/res/report.csv diff --git a/cpp_oop/5_spreadsheets/res/students.csv b/oop/5_spreadsheets/res/students.csv diff --git a/cpp_oop/5_spreadsheets/src/course.hpp b/oop/5_spreadsheets/src/course.hpp diff --git a/cpp_oop/5_spreadsheets/src/datahandler.cpp b/oop/5_spreadsheets/src/datahandler.cpp diff --git a/cpp_oop/5_spreadsheets/src/datahandler.hpp b/oop/5_spreadsheets/src/datahandler.hpp diff --git a/cpp_oop/5_spreadsheets/src/errlog.cpp b/oop/5_spreadsheets/src/errlog.cpp diff --git a/cpp_oop/5_spreadsheets/src/errlog.hpp b/oop/5_spreadsheets/src/errlog.hpp diff --git a/cpp_oop/5_spreadsheets/src/main.cpp b/oop/5_spreadsheets/src/main.cpp diff --git a/cpp_oop/5_spreadsheets/src/student.hpp b/oop/5_spreadsheets/src/student.hpp diff --git a/cpp_oop/5_spreadsheets/src/xstring.cpp b/oop/5_spreadsheets/src/xstring.cpp diff --git a/cpp_oop/5_spreadsheets/src/xstring.hpp b/oop/5_spreadsheets/src/xstring.hpp diff --git a/cpp_oop/game/Engine.cc b/oop/game/Engine.cc diff --git a/cpp_oop/game/Engine.hpp b/oop/game/Engine.hpp diff --git a/cpp_oop/game/Gem.cc b/oop/game/Gem.cc diff --git a/cpp_oop/game/Gem.hpp b/oop/game/Gem.hpp diff --git a/cpp_oop/game/Gnome.cc b/oop/game/Gnome.cc diff --git a/cpp_oop/game/Gnome.hpp b/oop/game/Gnome.hpp diff --git a/cpp_oop/game/Makefile b/oop/game/Makefile diff --git a/cpp_oop/game/Movable.cc b/oop/game/Movable.cc diff --git a/cpp_oop/game/Movable.hpp b/oop/game/Movable.hpp diff --git a/cpp_oop/game/Potter.cc b/oop/game/Potter.cc diff --git a/cpp_oop/game/Potter.hpp b/oop/game/Potter.hpp diff --git a/cpp_oop/game/Score.cc b/oop/game/Score.cc diff --git a/cpp_oop/game/Score.hpp b/oop/game/Score.hpp diff --git a/cpp_oop/game/Traal.cc b/oop/game/Traal.cc diff --git a/cpp_oop/game/Traal.hpp b/oop/game/Traal.hpp diff --git a/cpp_oop/game/main.cc b/oop/game/main.cc diff --git a/cpp_oop/game/res/map1 b/oop/game/res/map1 diff --git a/cpp_oop/game/res/map2 b/oop/game/res/map2 diff --git a/cpp_oop/game/res/score b/oop/game/res/score Binary files differ. diff --git a/sh_os1/ex1/ex1.txt b/os1/ex1/ex1.txt diff --git a/sh_os1/ex2/bck b/os1/ex2/bck diff --git a/sh_os1/ex2/createpvs b/os1/ex2/createpvs diff --git a/sh_os1/ex2/mfproc b/os1/ex2/mfproc diff --git a/sh_os1/ex2/searching b/os1/ex2/searching diff --git a/sh_os1/ex2/teldb b/os1/ex2/teldb diff --git a/sh_os1/ex3/ex1_cmds b/os1/ex3/ex1_cmds diff --git a/sh_os1/ex3/ex2_studavgs.awk b/os1/ex3/ex2_studavgs.awk diff --git a/sh_os1/ex3/ex3_courseavgs.awk b/os1/ex3/ex3_courseavgs.awk diff --git a/sh_os1/ex3/ex4_rev.awk b/os1/ex3/ex4_rev.awk diff --git a/sh_os1/ex3/ex5_filesize b/os1/ex3/ex5_filesize diff --git a/sh_os1/ex3/ex6_votes.awk b/os1/ex3/ex6_votes.awk diff --git a/sh_os1/ex3/ex7_countmatch b/os1/ex3/ex7_countmatch diff --git a/c_os2/ex1/ex1.c b/os2/ex1/ex1.c diff --git a/c_os2/ex1/ex2.c b/os2/ex1/ex2.c diff --git a/c_os2/ex1/ex3.c b/os2/ex1/ex3.c diff --git a/c_os2/ex2/Makefile b/os2/ex2/Makefile diff --git a/c_os2/ex2/ex1_1.c b/os2/ex2/ex1_1.c diff --git a/c_os2/ex2/ex1_2.c b/os2/ex2/ex1_2.c diff --git a/c_os2/ex2/ex2.c b/os2/ex2/ex2.c diff --git a/c_os2/ex2/ex3_client.c b/os2/ex2/ex3_client.c diff --git a/c_os2/ex2/ex3_server.c b/os2/ex2/ex3_server.c diff --git a/c_os2/lab2_fifo.c b/os2/lab2_fifo.c diff --git a/c_os2/lab2_pipe.c b/os2/lab2_pipe.c diff --git a/c_parallel_computing/ex1/doc.pdf b/parallel_computing/ex1/doc.pdf Binary files differ. diff --git a/c_parallel_computing/ex1/doc.tex b/parallel_computing/ex1/doc.tex diff --git a/c_parallel_computing/ex1/ex1.c b/parallel_computing/ex1/ex1.c diff --git a/c_parallel_computing/ex1/res/exmpl1.png b/parallel_computing/ex1/res/exmpl1.png Binary files differ. diff --git a/c_parallel_computing/ex1/res/exmpl2.png b/parallel_computing/ex1/res/exmpl2.png Binary files differ. diff --git a/c_parallel_computing/ex1/res/exmpl3.png b/parallel_computing/ex1/res/exmpl3.png Binary files differ. diff --git a/c_parallel_computing/ex1/res/exmpl4.png b/parallel_computing/ex1/res/exmpl4.png Binary files differ. diff --git a/c_parallel_computing/ex2/data b/parallel_computing/ex2/data diff --git a/c_parallel_computing/ex2/doc.pdf b/parallel_computing/ex2/doc.pdf Binary files differ. diff --git a/c_parallel_computing/ex2/doc.tex b/parallel_computing/ex2/doc.tex diff --git a/c_parallel_computing/ex2/ex2.c b/parallel_computing/ex2/ex2.c diff --git a/c_parallel_computing/ex2/res/run1.png b/parallel_computing/ex2/res/run1.png Binary files differ. diff --git a/c_parallel_computing/ex2/res/run2.png b/parallel_computing/ex2/res/run2.png Binary files differ. diff --git a/c_parallel_computing/ex2/res/run3.png b/parallel_computing/ex2/res/run3.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/Makefile b/parallel_systems/ex1/Makefile diff --git a/c_cuda_parallel_systems/ex1/doc.pdf b/parallel_systems/ex1/doc.pdf Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/doc.tex b/parallel_systems/ex1/doc.tex diff --git a/c_cuda_parallel_systems/ex1/ex1.c b/parallel_systems/ex1/ex1.c diff --git a/c_cuda_parallel_systems/ex1/randinput b/parallel_systems/ex1/randinput diff --git a/c_cuda_parallel_systems/ex1/res/run1.png b/parallel_systems/ex1/res/run1.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run2.png b/parallel_systems/ex1/res/run2.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run3.png b/parallel_systems/ex1/res/run3.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run4.png b/parallel_systems/ex1/res/run4.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run5.png b/parallel_systems/ex1/res/run5.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run6.png b/parallel_systems/ex1/res/run6.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex1/res/run7.png b/parallel_systems/ex1/res/run7.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/doc.pdf b/parallel_systems/ex2/doc.pdf Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/doc.tex b/parallel_systems/ex2/doc.tex diff --git a/c_cuda_parallel_systems/ex2/doc.toc b/parallel_systems/ex2/doc.toc diff --git a/c_cuda_parallel_systems/ex2/ex2a.c b/parallel_systems/ex2/ex2a.c diff --git a/c_cuda_parallel_systems/ex2/ex2b_a.cu b/parallel_systems/ex2/ex2b_a.cu diff --git a/c_cuda_parallel_systems/ex2/ex2b_b.cu b/parallel_systems/ex2/ex2b_b.cu diff --git a/c_cuda_parallel_systems/ex2/res/ex2a_1.png b/parallel_systems/ex2/res/ex2a_1.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2a_2.png b/parallel_systems/ex2/res/ex2a_2.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2a_3.png b/parallel_systems/ex2/res/ex2a_3.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_a_1.png b/parallel_systems/ex2/res/ex2b_a_1.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_a_2.png b/parallel_systems/ex2/res/ex2b_a_2.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_a_3.png b/parallel_systems/ex2/res/ex2b_a_3.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_b_1.png b/parallel_systems/ex2/res/ex2b_b_1.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_b_2.png b/parallel_systems/ex2/res/ex2b_b_2.png Binary files differ. diff --git a/c_cuda_parallel_systems/ex2/res/ex2b_b_3.png b/parallel_systems/ex2/res/ex2b_b_3.png Binary files differ. diff --git a/security/ex1/doc/doc.aux b/security/ex1/doc/doc.aux @@ -0,0 +1,19 @@ +\relax +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\bibstyle{biblatex} +\bibdata{doc-blx} +\citation{biblatex-control} +\abx@aux@refcontext{nty/global//global/global} +\babel@aux{english}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Δραστηριότητα 1: Ανάπτυξη και δοκιμή του shellcode}{2}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/shellcode.c}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Δραστηριότητα 2: Ανάπτυξη του ευπαθούς προγράμματος}{3}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/stack.c}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Δραστηριότητα 3: Δημιουργία του αρχείου εισόδου (badfile)}{4}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/exploit.c}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Δραστηριότητα 4: Εύρεση της διεύθυνσης του shellcode μέσα στο badfile}{6}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Δραστηριότητα 5: Προετοιμασία του αρχείου εισόδου}{8}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Δραστηριότητα 6: Εκτέλεση της επίθεσης}{8}{}\protected@file@percent } +\abx@aux@read@bbl@mdfivesum{nobblfile} +\gdef \@abspage@last{9} diff --git a/security/ex1/doc/doc.pdf b/security/ex1/doc/doc.pdf Binary files differ. diff --git a/security/ex1/doc/doc.tex b/security/ex1/doc/doc.tex @@ -21,7 +21,7 @@ \title{Εργαστήριο Ασφάλειας στην Τεχνολογία της Πληροφορίας -- Εργασία 1} \author{Χρήστος Μαργιώλης -- 19390133} -\date{Απρίλιος 2023} +\date{Απρίλιος 2024} \begin{document} diff --git a/security/ex1/doc/doc.toc b/security/ex1/doc/doc.toc @@ -1,5 +1,4 @@ -\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax -\babel@toc {english}{} +\babel@toc {english}{}\relax \contentsline {section}{\numberline {1}Δραστηριότητα 1: Ανάπτυξη και δοκιμή του shellcode}{2}{}% \contentsline {section}{\numberline {2}Δραστηριότητα 2: Ανάπτυξη του ευπαθούς προγράμματος}{3}{}% \contentsline {section}{\numberline {3}Δραστηριότητα 3: Δημιουργία του αρχείου εισόδου (badfile)}{4}{}% diff --git a/security/ex2/doc/doc.aux b/security/ex2/doc/doc.aux @@ -0,0 +1,46 @@ +\relax +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\bibstyle{biblatex} +\bibdata{doc-blx} +\citation{biblatex-control} +\abx@aux@refcontext{nty/global//global/global} +\babel@aux{english}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Δομή αρχείων}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Αρχεία C}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Scripts}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.1}\lstinline {atoh}: Μετατροπή από ASCII σε Hex}{2}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/atoh}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.2}\lstinline {htoa}: Μετατροπή από Hex σε ASCII}{2}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/htoa}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Makefile}{2}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/Makefile}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Αρχεία δεδομένων}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Δραστηριότητα 1: Δημιουργία ιδιωτικού κλειδιού}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Επεξήγηση υλοποίησης}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Εκτέλεση προγράμματος}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Πηγαίος κώδικας: \lstinline {priv.c}}{4}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/priv.c}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Δραστηριότητα 2: Κρυπτογράφηση μηνύματος}{6}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Επεξήγηση υλοποίησης}{6}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Εκτέλεση προγράμματος}{7}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Πηγαίος κώδικας: \lstinline {encrypt.c}}{7}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/encrypt.c}{7}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Δραστηριότητα 3: Αποκρυπτογράφηση μηνύματος}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Επεξήγηση υλοποίησης}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Εκτέλεση προγράμματος}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Πηγαίος κώδικας: \lstinline {decrypt.c}}{9}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/decrypt.c}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Δραστηριότητα 4: Υπογραφή μηνύματος}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Επεξήγηση υλοποίησης}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Εκτέλεση προγράμματος}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Πηγαίος κώδικας: \lstinline {sign.c}}{11}{}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../src/sign.c}{11}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Δραστηριότητα 5: Επαλήθευση υπογραφής}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Επεξήγηση υλοποίησης}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Εκτέλεση προγράμματος}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Περίπτωση Α}{13}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Περίπτωση Β}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Δραστηριότητα 6: Μη-αυτόματη επαλήθευση πιστοποιητικού X.509}{14}{}\protected@file@percent } +\abx@aux@read@bbl@mdfivesum{nobblfile} +\gdef \@abspage@last{15} diff --git a/security/ex2/doc/doc.pdf b/security/ex2/doc/doc.pdf Binary files differ. diff --git a/security/ex2/doc/doc.tex b/security/ex2/doc/doc.tex @@ -21,7 +21,7 @@ \title{Εργαστήριο Ασφάλειας στην Τεχνολογία της Πληροφορίας -- Εργασία 2} \author{Χρήστος Μαργιώλης -- 19390133} -\date{Απρίλιος 2023} +\date{Απρίλιος 2024} \begin{document} diff --git a/security/ex2/doc/doc.toc b/security/ex2/doc/doc.toc @@ -1,5 +1,4 @@ -\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax -\babel@toc {english}{} +\babel@toc {english}{}\relax \contentsline {section}{\numberline {1}Δομή αρχείων}{2}{}% \contentsline {subsection}{\numberline {1.1}Αρχεία C}{2}{}% \contentsline {subsection}{\numberline {1.2}Scripts}{2}{}% diff --git a/web_applications/element.html b/web_applications/element.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel='stylesheet' type='text/css' href='style.css'> + <title>Web Applications Project</title> +</head> +<body> + +<img id="topright" src="res/yinyang.png"> + +<p style> + <a href="index.html">← Back</a> +</p> + +<script src="main.js"></script> + +</body> +</html> diff --git a/web_applications/index.html b/web_applications/index.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel='stylesheet' type='text/css' href='style.css'> + <title>Web Applications Project</title> +</head> +<body> + +<h1>Web Applications Project</h1> + +<form action="element.html" method="GET"> + <input type="text" name="phrase" placeholder="Enter a phrase" required> + <select name="element"> + <option value="water">💧</option> + <option value="earth">🗿</option> + <option value="fire">🔥</option> + <option value="air">☁️</option> + </select> + <button type="submit">Send</button> +</form> + +</body> +</html> diff --git a/web_applications/main.js b/web_applications/main.js @@ -0,0 +1,51 @@ +const params = new URLSearchParams(window.location.search); +const phrase = params.get("phrase"); +const element = params.get("element"); +const pics = [ + "air1.png", + "air2.png", + "air3.png", + "earth1.png", + "earth2.png", + "earth3.png", + "fire1.png", + "fire2.png", + "fire3.png", + "water1.png", + "water2.png", + "water3.png", + "yinyang.png", +]; + +var p_phrase = document.createElement("p"); +var p_element = document.createElement("p"); +var img = document.createElement("img"); + +p_phrase.innerHTML = "<p><big>Phrase: " + phrase + "</big></p>"; +p_element.innerHTML = "<p><big>Element: " + element + "</big></p>"; +img.src = "res/" + pics[Math.floor(Math.random() * + (pics.filter(s => s.startsWith(element)).length))]; +img.style = "width: 50%; border: 8px solid black;"; + + +document.getElementById("topright").style.transform = + "rotate(" + (phrase.length * 10) % 360 + "deg)"; + +document.body.appendChild(p_phrase); +document.body.appendChild(p_element); +document.body.appendChild(img); + +switch (element) { +case "water": + document.body.style.background = "lightblue"; + break; +case "earth": + document.body.style.background = "darkolivegreen"; + break; +case "fire": + document.body.style.background = "firebrick"; + break; +case "air": + document.body.style.background = "lightyellow"; + break; +} diff --git a/web_applications/res/Helvetica.ttf b/web_applications/res/Helvetica.ttf Binary files differ. diff --git a/web_applications/res/air1.png b/web_applications/res/air1.png Binary files differ. diff --git a/web_applications/res/air2.png b/web_applications/res/air2.png Binary files differ. diff --git a/web_applications/res/air3.png b/web_applications/res/air3.png Binary files differ. diff --git a/web_applications/res/earth1.png b/web_applications/res/earth1.png Binary files differ. diff --git a/web_applications/res/earth2.png b/web_applications/res/earth2.png Binary files differ. diff --git a/web_applications/res/earth3.png b/web_applications/res/earth3.png Binary files differ. diff --git a/web_applications/res/fire1.png b/web_applications/res/fire1.png Binary files differ. diff --git a/web_applications/res/fire2.png b/web_applications/res/fire2.png Binary files differ. diff --git a/web_applications/res/fire3.png b/web_applications/res/fire3.png Binary files differ. diff --git a/web_applications/res/water1.png b/web_applications/res/water1.png Binary files differ. diff --git a/web_applications/res/water2.png b/web_applications/res/water2.png Binary files differ. diff --git a/web_applications/res/water3.png b/web_applications/res/water3.png Binary files differ. diff --git a/web_applications/res/yinyang.png b/web_applications/res/yinyang.png Binary files differ. diff --git a/web_applications/style.css b/web_applications/style.css @@ -0,0 +1,24 @@ +@font-face { + font-family: Helvetica; + src: url('Helvetica.ttf'); +} + +body, input, button, select { + font-family: Helvetica; + font-size: 32px; +} + +a { + color: black; +} + +img { + max-width: 100%; +} + +#topright { + float: right; + position: -webkit-sticky; + position: sticky; + top: 0; +}