Navid Malekghaini's Personal Blog

My personal weblog for sharing and storing some of my activities related to computer science over the internet

Navid Malekghaini's Personal Blog

My personal weblog for sharing and storing some of my activities related to computer science over the internet

Navid Malekghaini's Personal Blog

Navid Malekghaini

Software Engineer @ Intelligent Cloud Infrastructure Laboratory
Prev. ML Researcher @ University of Waterloo x Orange Telecom

University of Waterloo
Department of computer science
200 University Ave W, Waterloo, ON N2L 3G1, Canada
cs.uwaterloo.ca

contact me
navidmalekedu (AT) gmail (DOT) com [ Primary Email ]
nmalekgh (AT) uwaterloo (DOT) ca

۳ مطلب در ژانویه ۲۰۱۹ ثبت شده است

This is a very straight forward program for someone who wants to learn bash in a matter of hours and also in a efficient way.

the Guide consists of two main steps:

✔ Getting familiar with bash script
✔ Implement a simple bash script program

Motivation (summary) :


Well according to RFC959 FTP does not support search meaning you
have to find your desired files all by yourself.
As a computer programmer this is awful for us, so we have decided
to implement a simple bash script program that is simply FTP
client with search!


YOUR SCRIPT = FTP IN TERMINAL + SEARCH SUPPORT

DOWNLOAD FULL DESCRIPTION HERE

My Approach:

i believe this is the easiest way!
There are ways that you can go on to be able to search in FTP as a file, therefore you must first make a shadow of FTP in your linux native filesystem. I will use curlftpfs inorder to mount the FTP in my /mnt/FTPSearch ( I will simply mount the FTP on my own machine )



Download the Full Implemention From Github With Explanations

موافقین ۰ مخالفین ۰ 29 January 19 ، 12:02

The main project that me and my colleague designed for Operating Systems course ( Spring 2018 ) - TA of OS

Project Description ( summary ):

The goal of this project is to gather information about incoming and outgoing packets in system. ( some kind of packet capturing )

The desired informations are :

  • Lenght of packet
  • Protocols of packet ( in all available layers of network except application layer, for example Ethernet,IP,TCP )
  • Hash value of packet
  • Total Processing time of packet


Phase one :

  1. implement a systemcall with a single integer input indicating what information you desire from packets and single output buffer to copy the data from kernel space to user space.
  2. an interactive user space program that talks to the user and systemcall call above ( clean input and output for user ).

    Phase two :
    1. implement a kernel module with a single proc entry file for input indicating what information you desire from packets and single proc entry file for output and to copy the data from kernel space to user space.
    2. an interactive user space program that talks to the user and kernel module and proc entry files above ( clean input and output for user ).

    Phase three :

    Performance comparsion of kernel module and system call ( the first two phases ).


    DOWNLOAD PROJECT DESCRIPTIONS IN DETAIL

    Approach Taken for answer:

    All of the desired informations are in sk_buff data structure.
    my approach was to clone sk_buff from driver, right before the driver ( here : e1000 ) wants to pass the packet to the next network layer handler ( application or the NIC ). with this approach i will have a clone for each packet.
    now that i have the information the rest is easy, just copy the desired information from the sk_buff to the output buffer and copy from there to user space.




    note: for the LKM you should use extern and export symbol.



    the idea for this approach was from here



    DOWNLOAD THE IMPLEMENTATION OF THIS APPROACH WITH DOCUMENTATION IN PERSIAN FROM STUDENTS ( WITH MY HELP )


    Second approach:

    second approach i believe is based on this idea from IBM.

    Download the Implementation of Second Approach From a Student With Document

موافقین ۰ مخالفین ۰ 27 January 19 ، 02:14

This is a very straight forward guide for someone who wants to get started with linux in a matter of hours.

the Guide consists of three main steps:

  • gathering some basic knowledge
  • gathering some system knowledge
  • gathering some command-line knowledge

------------------------------

Download the Guide here


Download Sample Answer From Students ( there are some mistakes )

موافقین ۰ مخالفین ۰ 26 January 19 ، 22:48