Find Jobs
Hire Freelancers

Write a remote shell system

$10-30 USD

処理中
投稿日: 約6年前

$10-30 USD

完了時にお支払い
Write a remote shell system, where a server process can reside on another machine on the network and the user provides commands to the server via a client process on a local linux machine. The client sends the commands to the server, the server executes them, and sends the output back to the client. A main goal of this part is to re-enforce some system calls and process manipulation facilities from an Operating System. It will provide a basic introduction to OS support for sockets and if desired pipes or shared memory while building upon some of your previous OS knowledge. You will write a basic remote shell in which a user specifies an arbitrary shell command to be executed, and it is sent over the connection and executed on a remote server. Write a server, a client and a program that is used by the server to execute commands (let's call it the executer) and send the results back to the client: Server: The server will run on the remote machine. It will bind to a Unix socket at a port, given as an argument using -p <port>. When the server receives a connection request, it authenticates the client using a (clear-text) password. It should then fork() a child process (i.e. the Executer) to handle the connection. The parent process loops back to wait for more connections. Executer: The server will exec this program which will execute the command and communicate back with the client so that the server can continue accepting connections. This program will fork and exec the command that the client sent and return the stdout and stderr to the client. The server can assume the shell command does not use stdin. Upon command completion, the server will send the result back to the client to output. Client: The client will run on the local machine. From the command line, the user will specify the host and port where the server resides and the command to be executed. The client will then connect to the server via a socket and transmit the password and the command. The client will display any output received from the server to the stdout and then exit. Thus, the client does one command at a time and is not an "interactive" shell. Each component should produce enough output (to a logfile) to understand what is going on in that program. The system must be demonstrated You will design experiments to evaluate some basic performance parameters of your remote shell: Determine the minimum response time (measured in milliseconds) between your client entering a command and the server returning the response. Determine the throughput (measured in Kbytes per second) from the client to the server. Compare the throughput with your client server to the throughput by another bulk-transfer program, such as ftp or wget. For all experiments, you should repeat the measurements more than one time in order to account for uncontrolled system variance. A suggested minimum is 3 times. When your experiments are complete, you must turn in a brief (1-2 page) write-up with the following sections: Design - describe your experiments, including: a) what programs/scripts you ran (use pseudo-code); b) how many runs you performed; c) how you recorded your data; d) what the system conditions were like; e) and any other details you think are relevant. Results - depict your results clearly using a series of tables or graphs. Provide statistical analysis including at least mean and standard deviation. Analysis - interpret the results. Briefly describe what the results mean and what you think is happening and any subjective opinions you may have.
プロジェクト ID: 16734220

プロジェクトについて

リモートプロジェクト
アクティブ 6年前

お金を稼ぎたいですか?

Freelancerで入札する利点

予算と期間を設定してください
仕事で報酬を得る
提案をご説明ください
登録して仕事に入札するのは無料です

クライアントについて

UNITED STATESのフラグ
yonkers, United States
5.0
1
お支払い方法確認済み
メンバー登録日:4月 18, 2018

クライアント確認

ありがとうございます!無料クレジットを受け取るリンクをメールしました。
メールを送信中に問題が発生しました。もう一度お試しください。
登録ユーザー 投稿された仕事の合計
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
プレビューを読み込み中
位置情報へのアクセスが許可されました。
あなたのログインセッションの有効期限がきれ、ログアウトされました。もう一度ログインしてください。