Unix and C Program Development SEEM

Size: px
Start display at page:

Download "Unix and C Program Development SEEM"

Transcription

1 Unix and C Program Development SEEM

2 Operating Systems A computer system cannot function without an operating system (OS). There are many different operating systems available for PCs, minicomputers, and mainframes. The most common ones being Windows and variations of UNIX (e.g. Linux) UNIX is available for many different hardware platforms Most other operating systems are tied to a specific hardware family. This is one of the first good things about UNIX. SEEM

3 Unix Overview UNIX allows more than one user to use the computer system at a time a desirable feature for business systems. Power and Flexibility Small number of basic elements that can be combined in an infinite variety of ways to suit the application Consistency in commands: ls A* means list files beginning with A rm A* means remove files beginning with A Majority of users are engaged in software development SEEM

4 Unix and Linux Late 1980s two version of UNIX 4.3BSD System V Release 3 Standardizing effort POSIX (Portable Operating System) POSIX committee produced standard by taking the intersection of System V and BSD Set of library procedures open, read, fork, Linux Unix clone originally running on PC Recent Version of Linux has features of a modern UNIX OS Unix and Linux have been adopted in industrialstrength business applications SEEM

5 Unix and Shell MAC and Windows - Graphical User Interface UNIX command line interface, called shell UNIX Graphical environment X Windows SEEM

6 Logging In To use a UNIX system, you first log in with a username a unique name that distinguishes you from the other users of the system. UNIX first asks you for your username by prompting you with the line login: and then asks for your password. Depending on how your system is set up, you should then see either a $ or a > prompt. UNIX is case sensitive, so make sure that the case of the letters is matched exactly. UNIX(r) System V Release 4.0 login: glass Password: what I typed here is secret and doesn t show Last login: Sun Feb 15 18:33:26 from dialin cuse93:> SEEM

7 Shells The > prompt that you see when you first log into UNIX is displayed by the shell Shell is a program that acts as a middleman between you and the raw UNIX operating system. A shell lets you run programs, builds pipelines of processes, saves output to files, and runs more than one program at the same time. SEEM

8 Running A Utility To run a utility, simply enter its name and press the Enter key One sample utility is date which displays the current date and time cuse93:> date... run the date utility Thu Mar 12 10:41:50 MST 1998 cuse93:> SEEM

9 Unix Utility Programs Large number of utility programs Divided into six categories File and directory manipulation commands Example: cp a b ls *.* Filters Example: grep (extracts lines containing patterns), cut, paste, Program development tools such as editors/compilers Example: cc (C compiler), make (maintain large programs whose source code consists of multiple files) Text editing and processing Example: pico, emacs, vim, vi System administration Example: mount (mount file system) Miscellaneous Example: kill 1325 (kill a process), chmod (change privileges of a file) SEEM

10 Unix Utility Programs SEEM

11 Logging Out To leave the UNIX system, type the keyboard sequence Control-D at your shell prompt. This tells your login shell that there is no more input for it to process, causing it to disconnect you from the UNIX system. Most systems then display a prompt and wait for another user to log in. Here s an example: cuse93:> ^D... I m done! UNIX(r) System V Release 4.0 login: wait for another user to log in. Note: The shell can be set to ignore ^D for logout, since you might type it by accident. In this case, you in, type the logout command instead. SEEM

12 Directory and File A hard disk in Unix is typically shared by different users Directory similar to folder in Windows The root directory is specified by a symbol / Under a directory Store files Contains sub-directories SEEM

13 Directories The directories are organized in a hierarchical structure (similar to Windows) / usr sac lec file1 glass file2 wlam SEEM

14 Pathname Pathname - A sequence of directory names that leads you through the hierarchy from a starting directory (e.g. root / ) to a target (directory or file) Some sample pathnames /sac/file1 a file /sac/lec a directory /sac/lec/file2 a file SEEM

15 Home Directory When you first login, you are automatically located at a certain location of a hard disk called home directory Every user has a different home directory The home directory is set by the system administrator For example, after login, the user is located at /sac/lec/glass UNIX(r) System V Release 4.0 login: glass Password: what I typed here is secret and doesn t show Last login: Sun Feb 15 18:33:26 from dialin cuse93:/sac/lec/glass> SEEM

16 Program Development The mechanics of developing a program include several activities writing the program in a specific programming language (such as C and Java) translating the program into a form that the computer can execute investigating and fixing various types of errors that can occur Software tools can be used to help with all parts of this process SEEM

17 Programming Languages Each type of CPU executes only a particular machine language A program must be translated into machine language before it can be executed A compiler is a software tool which translates source code into a specific target language Often, that target language is the machine language for a particular CPU type SEEM

18 Basic Program Development Edit and save program errors errors Compile program Execute program and evaluate results SEEM

19 Single-module Programs Let s examine a C program that performs a simple task: reversing a string. We will learn how to write, compile, link, and execute a program that solves the problem using a single source file. It s better to split the program up into several independent modules. (will be explained later) A source code listing of the first version of the reverse program is next presented. SEEM

20 1 /* reverse.c */ 2 #include <stdio.h> 3 4 /* Function prototype */ 5 void reverse (char* before, char* after); 6 7 /*******************************************/ 8 int main() 9 { 10 char str[100]; /* buffer to hold reversed string */ 11 reverse("cat",str); /* reverse the string "cat" */ 12 printf ("reverse("cat") = %s\n", str); 13 reverse("noon",str); 14 printf ("reverse("noon") = %s\n", str); 15 } /*******************************************/ 18 void reverse (char* before, char* after) 19 { 20 int i,j,len; len = strlen(before); 23 i=0; 24 for (j=len-1; j>=0; j--) 25 { 26 after[i] = before[j]; 27 i++; 28 } 29 after[len] = NULL; 30 } SEEM

21 C String - Revision In C, a string is represented as an array of characters For example: noon is represented as: n o o n NULL X (special char) (garbage) SEEM

22 C Program Development First we need to type the program source code into a file called source file (or source program file). Suppose that we call this file reverse.c The format of the source file should be a text file since it contains text characters A text file in Unix can be created using an Unix editor such as emacs, pico, vim. Suppose that we first create a directory (folder) called reverse under my home directory to prepare the development of the program. SEEM

23 Unix - Making A Directory : mkdir We can use the mkdir utility to create a new directory. An example of the mkdir utility: Utility: mkdir newdirectoryname cuse93:> mkdir reverse... create a directory called reverse cuse93:> SEEM

24 Unix - Moving To A Directory : cd In general, it s a good idea to move your shell into a directory if you intend to do a lot of work there. To do this, use the cd command. cuse93:> cd reverse go to the reverse directory cd isn t actually a UNIX utility, but instead is an example of a shell built-in command. Your shell recognizes cd as a special keyword and executes it directly. Shell Command: cd [directoryname] The cd (change directory) shell command changes a shell s current working directory to directoryname. If the directoryname argument is omitted, the shell is moved to its owner s home directory. SEEM

25 Editing Programs: Using an Editor pico Editor General Command Write editor contents to a file [Ctrl] o Save the file and exit pico [Ctrl] x Spell Check [Ctrl] t Justify the text [Ctrl] j Moving around in your file Move one character to the right [Ctrl] f or right arrow key Move one character to the left [Ctrl] b or left arrow key Move up one line [Ctrl] p or up arrow key Move down one line [Ctrl] n or down arrow key Other editors such as emacs and vim can be used SEEM

26 Unix - Listing The Contents Of A Directory: ls We can use the ls utility to list the name and other information about a file or a directory. Suppose that we have used an editor to edit the program reverse.c cuse93:> ls list all files in current directory reverse.c cuse93:> ls -l reverse.c long listing of reverse.c -rw-r--r-- 1 glass 106 Jan 30 19:46 reverse.c The -l is an option for the ls utility SEEM

27 Unix - Listing A File: cat We can use the cat utility to display the content of a text file. cuse93:> cat reverse.c /* reverse.c */ #include <stdio.h> /* Function prototype */ void reverse (char* before, char* after); display the contents of the reverse.c /*******************************************/ int main() { char str[100]; /* buffer to hold reversed string */ reverse("cat",str); /* reverse the string "cat" */ printf ("reverse("cat") = %s\n", str); : : SEEM

28 Unix - Listing A File: more cat is good for listing small files, but doesn t pause between full screens of output. The more utility is better suited for larger files and contains advanced facilities such as the ability to scroll backward through a file. cuse93:> more reverse.c /* reverse.c */ #include <stdio.h> /* Function prototype */ void reverse (char* before, char* after); display the contents of the reverse.c /*******************************************/ int main() : : SEEM

29 C Compilers Until recently, a C compiler was a standard component in UNIX, especially UNIX versions that came with source code. Depending on your needs, you should check on this in any version of UNIX you are considering using. Even if your version of UNIX no longer ships a C compiler, you have an alternative, thanks to the GNU Project: GNU C (gcc) and GNU C++ (g++) are freely available C and C++ compilers, respectively GNU Compiler Collection web site, SEEM

30 Compiling a C program Compile the C program with the gcc utility. By default, gcc creates an executable file called a.out in the current directory. The format of executable file is called binary file which contains binary bits. Therefore, we cannot use the Unix utilities cat or more to display the content on the screen. To run the program, type./a.out. Any errors that are encountered are sent to the standard error channel, which is connected by default to your terminal s screen. SEEM

31 Compiling a C program (con t) Here s what happened when I compiled my program: cuse93:> mkdir reverse create subdirectory for source code cuse93:> cd reverse cuse93:> pico reverse.c... create the file reverse.c using pico cuse93:> gcc reverse.c... compile source. reverse.c: In function main : reverse.c:12: parse error before cat reverse.c:14: parse error before noon cuse93:> As you can see, gcc found a number of compile-time errors, listed together with their causes as follows: The errors on lines 12 and 14 were due to an inappropriate use of double quotes within double quotes. SEEM

32 Compiling a C program (con t) If there are so many compilation errors that it cannot fit into one screen. One way is to compile by the following command: gcc reverse.c & more which means that the compilation errors will be displayed screen by screen. It will display the first screen of errors and wait. After the user examines the errors, he/she can choose to display the next screen of errors by hitting RETURN or quit by hitting Control-C. The corrected version of the reverse program is given in the next page. SEEM

33 1 /* reverse.c */ 2 #include <stdio.h> 3 4 /* Function prototype */ 5 void reverse (char* before, char* after); 6 7 /*******************************************/ 8 int main() 9 { 10 char str[100]; /* buffer to hold reversed string */ 11 reverse("cat",str); /* reverse the string "cat" */ 12 printf ("reverse(\"cat\") = %s\n", str); 13 reverse("noon",str); 14 printf ("reverse(\"noon\") = %s\n", str); 15 } /*******************************************/ 18 void reverse (char* before, char* after) 19 { 20 int i,j,len; len = strlen(before); 23 i=0; 24 for (j=len-1; j>=0; j--) 25 { 26 after[i] = before[j]; 27 i++; 28 } 29 after[len] = NULL; 30 } SEEM

34 Compiling a C program (con t) If there are many compilation errors, it is a good strategy to debug the first few errors since some remaining compilation errors may not be actual errors. They exist due to the limitations of the compiler. Hence, fixing earlier errors will usually result in fewer errors encountered in the debugging process. e.g. a semicolon is mistakenly added after the function heading line of reverse would produce a lot of compilation errors. SEEM

35 Compiling a C program (con t) Running a C Program After compiling the second version of reverse.c, I ran it by typing the name of the executable file, a.out. As you can see, the answers were correct: cuse93:> gcc reverse.c compile source. cuse93:> ls l reverse.c a.out list file information. -rwxr-xr-x 1 glass Jan5 16:16 a.out* -rw----r-- 1 glass 439 Jan 5 16:15 reverse.c cuse93:>./a.out run program reverse ( cat ) = tac reverse ( noon ) = noon cuse93:> SEEM

36 Compiling a C program (con t) Overriding the Default Executable Name The name of the default executable file, a.out, is rather cryptic, and an a.out file produced by a subsequent compilation would overwrite the one that I just produced. To avoid both problems, it s best to use the -o option with gcc, which allows you to specify the name of the executable file that you wish to create: cuse93:> gcc -o reverse reverse.c name the executable reverse cuse93:> ls -l reverse -rwxr-xr-x 1 glass Jan 5 16:19 reverse* cuse93:>./reverse run the executable reverse reverse ( cat ) = tac reverse ( noon ) = noon cuse93:> SEEM

37 Summary of gcc utility gcc reverse.c source file: reverse.c compilation via gcc executable file: a.out gcc o reverse reverse.c source file: reverse.c compilation via gcc executable file: reverse 37

38 Syntax and Semantics The syntax rules of a language define how we can put together symbols, reserved words, and identifiers to make a valid program The semantics of a program statement define what that statement means (its purpose or role in a program) A program that is syntactically correct is not necessarily logically (semantically) correct A program will always do what we tell it to do, not only what we intend to tell it to do 38

39 Program Errors A program can have three types of errors The compiler will find syntax errors and other basic problems (compile-time errors) If compile-time errors exist, an executable version of the program is not created A problem can occur during program execution, such as trying to divide by zero, which causes a program to terminate abnormally (run-time errors) A program may run, but produce incorrect results, perhaps using an incorrect formula (logical errors) 39

40 Program Errors In Unix, many runtime errors and logical errors only provide the following error messages: Segmentation fault Bus error The above messages do not provide good hints for the causes of the error In other words, it is almost not useful to rely on this message for debugging Therefore, debugging techniques or tools are needed Inserting printing statements to display the content of variables Use a debugger utility SEEM

41 Debugging by Inserting printing Statements A good way for debugging is to insert printing statements in the program. The purpose is to print the content of some important variables to see if the execution follows our design. Suppose we inserted the following line after the statement i++ in the reverse function: printf( i=%d j=%d\n,i,j) The execution would look like: cuse93:>./reverse run the executable reverse i = 1 j = 2 i = 2 j = 1 i = 3 j = 0 reverse ( cat ) = tac i = 1 j = 3 : SEEM

42 Debugging by Inserting printing Statements (cont) When the output text to the screen is very long, we can re-direct the output text to a file instead of the screen so that we can examine the content in a more convenient way. To re-direct in Unix the output from the screen to a text file, we can use the character > meaning that the text output is re-directed from the system output (screen) to a specified text file. In the following example, it is re-directed to a text file called debug.txt cuse93:>./reverse > debug.txt cuse93:> more debug.txt i = 1 j = 2 i = 2 j = 1 i = 3 j = 0 reverse ( cat ) = tac i = 1 j = 3 : run the executable reverse SEEM

43 The Unix Debugger : gdb Preparing a Program for Debugging To debug a program, it must have been compiled using the -g option to gcc, which places debugging information into the object module. cuse93:> gcc g o reverse reverse.c The UNIX debugger, gdb, allows you to debug a program symbolically. It includes the following facilities: single stepping breakpoints editing from within the debugger accessing and modifying variables searching for functions tracing SEEM

44 The Unix Debugger : gdb (con t) Utility: gdb executablefilename gdb is a UNIX debugger. The named executable file is loaded into the debugger and a user prompt is displayed. To obtain information on the various gdb commands, enter help at the prompt. Entering the Debugger Once a program has been compiled correctly, you may invoke gdb, with the name of the executable file as the first argument. gdb presents you with a prompt. You enter help at the prompt to see a list of all the gdb commands: cuse93:> gdb reverse (gdb) help SEEM

45 The Unix Debugger : gdb (con t) (gdb) break reverse Breakpoint 1 at 0x1077c: file reverse.c, line 22 (gdb) run Starting program: reverse Breakpoint 1, reverse(before=0x11360 ) at reverse.c:22 22 len = strlen(before) (gdb) display i 1: i=0 (gdb) display j 2: j = (gdb) step 23 i = 0; 2: j = : i = 0 (gdb) step 24 for (j=len-1; j>=0; j--) 2: j = : i = 0 (gdb) step 26 after [i] = before [j] 2: j = 2 1: i = 0 SEEM

46 The Unix Debugger : gdb (con t) (gdb) continue Continuing. reverse( cat ) = tac Breakpoint 1, reverse (before = 0x11380.) at reverse.c:22 22 len = strlen(before); 2: j = -1 1: i = 3 (gdb) step 23 i = 0; 2: j = -1 1: i = 3 (gdb) step 24 for (j=len-1; j>=0; j--) 2: j = -1 1: i = 0 (gdb) continue Continuing. Reverse( noon ) = noon Program exited with code 01 SEEM

Tutorial 0A Programming on the command line

Tutorial 0A Programming on the command line Tutorial 0A Programming on the command line Operating systems User Software Program 1 Program 2 Program n Operating System Hardware CPU Memory Disk Screen Keyboard Mouse 2 Operating systems Microsoft Apple

More information

CS 103 Lab Linux and Virtual Machines

CS 103 Lab Linux and Virtual Machines 1 Introduction In this lab you will login to your Linux VM and write your first C/C++ program, compile it, and then execute it. 2 What you will learn In this lab you will learn the basic commands and navigation

More information

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery PHP Debugging Draft: March 19, 2013 2013 Christopher Vickery Introduction Debugging is the art of locating errors in your code. There are three types of errors to deal with: 1. Syntax errors: When code

More information

Command Line - Part 1

Command Line - Part 1 Command Line - Part 1 STAT 133 Gaston Sanchez Department of Statistics, UC Berkeley gastonsanchez.com github.com/gastonstat Course web: gastonsanchez.com/teaching/stat133 GUIs 2 Graphical User Interfaces

More information

Thirty Useful Unix Commands

Thirty Useful Unix Commands Leaflet U5 Thirty Useful Unix Commands Last revised April 1997 This leaflet contains basic information on thirty of the most frequently used Unix Commands. It is intended for Unix beginners who need a

More information

CMSC 216 UNIX tutorial Fall 2010

CMSC 216 UNIX tutorial Fall 2010 CMSC 216 UNIX tutorial Fall 2010 Larry Herman Jandelyn Plane Gwen Kaye August 28, 2010 Contents 1 Introduction 2 2 Getting started 3 2.1 Logging in........................................... 3 2.2 Logging

More information

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform

TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform October 6, 2015 1 Introduction The laboratory exercises in this course are to be conducted in an environment that might not be familiar to many of you. It is based on open source software. We use an open

More information

Lab 1: Introduction to C, ASCII ART and the Linux Command Line Environment

Lab 1: Introduction to C, ASCII ART and the Linux Command Line Environment .i.-' `-. i..' `/ \' _`.,-../ o o \.' ` ( / \ ) \\\ (_.'.'"`.`._) /// \\`._(..: :..)_.'// \`. \.:-:. /.'/ `-i-->..

More information

Introduction to Mac OS X

Introduction to Mac OS X Introduction to Mac OS X The Mac OS X operating system both a graphical user interface and a command line interface. We will see how to use both to our advantage. Using DOCK The dock on Mac OS X is the

More information

University of Toronto

University of Toronto 1 University of Toronto APS 105 Computer Fundamentals A Tutorial about UNIX Basics Fall 2011 I. INTRODUCTION This document serves as your introduction to the computers we will be using in this course.

More information

CS3600 SYSTEMS AND NETWORKS

CS3600 SYSTEMS AND NETWORKS CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 2: Operating System Structures Prof. Alan Mislove (amislove@ccs.neu.edu) Operating System Services Operating systems provide an environment for

More information

Running your first Linux Program

Running your first Linux Program Running your first Linux Program This document describes how edit, compile, link, and run your first linux program using: - Gnome a nice graphical user interface desktop that runs on top of X- Windows

More information

Introduction to Unix Tutorial

Introduction to Unix Tutorial Topics covered in this Tutorial Introduction to Unix Tutorial 1. CSIF Computer Network 2. Local Logging in. 3. Remote computer access: ssh 4. Navigating the UNIX file structure: cd, ls, and pwd 5. Making

More information

Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment.

Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment. Software Requirement Specification for Web Based Integrated Development Environment DEVCLOUD Web Based Integrated Development Environment TinTin Alican Güçlükol Anıl Paçacı Meriç Taze Serbay Arslanhan

More information

Introduction to the UNIX Operating System and Open Windows Desktop Environment

Introduction to the UNIX Operating System and Open Windows Desktop Environment Introduction to the UNIX Operating System and Open Windows Desktop Environment Welcome to the Unix world! And welcome to the Unity300. As you may have already noticed, there are three Sun Microsystems

More information

Setting up PostgreSQL

Setting up PostgreSQL Setting up PostgreSQL 1 Introduction to PostgreSQL PostgreSQL is an object-relational database management system based on POSTGRES, which was developed at the University of California at Berkeley. PostgreSQL

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

Unix Guide. Logo Reproduction. School of Computing & Information Systems. Colours red and black on white backgroun

Unix Guide. Logo Reproduction. School of Computing & Information Systems. Colours red and black on white backgroun Logo Reproduction Colours red and black on white backgroun School of Computing & Information Systems Unix Guide Mono positive black on white background 2013 Mono negative white only out of any colou 2

More information

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002)

Cisco Networking Academy Program Curriculum Scope & Sequence. Fundamentals of UNIX version 2.0 (July, 2002) Cisco Networking Academy Program Curriculum Scope & Sequence Fundamentals of UNIX version 2.0 (July, 2002) Course Description: Fundamentals of UNIX teaches you how to use the UNIX operating system and

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

Operating System Structures

Operating System Structures COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating

More information

LECTURE-7. Introduction to DOS. Introduction to UNIX/LINUX OS. Introduction to Windows. Topics:

LECTURE-7. Introduction to DOS. Introduction to UNIX/LINUX OS. Introduction to Windows. Topics: Topics: LECTURE-7 Introduction to DOS. Introduction to UNIX/LINUX OS. Introduction to Windows. BASIC INTRODUCTION TO DOS OPERATING SYSTEM DISK OPERATING SYSTEM (DOS) In the 1980s or early 1990s, the operating

More information

CPSC 2800 Linux Hands-on Lab #7 on Linux Utilities. Project 7-1

CPSC 2800 Linux Hands-on Lab #7 on Linux Utilities. Project 7-1 CPSC 2800 Linux Hands-on Lab #7 on Linux Utilities Project 7-1 In this project you use the df command to determine usage of the file systems on your hard drive. Log into user account for this and the following

More information

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered

More information

HOW TO USE THIS DOCUMENT READ OBEY

HOW TO USE THIS DOCUMENT READ OBEY Exercise: Learning Batch Computing on OSCER s Linux Cluster Supercomputer This exercise will help you learn to use Boomer, the Linux cluster supercomputer administered by the OU Supercomputing Center for

More information

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE

More information

CS420: Operating Systems OS Services & System Calls

CS420: Operating Systems OS Services & System Calls NK YORK COLLEGE OF PENNSYLVANIA HG OK 2 YORK COLLEGE OF PENNSYLVAN OS Services & System Calls James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts,

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

CSIL MiniCourses. Introduction To Unix (I) John Lekberg Sean Hogan Cannon Matthews Graham Smith. Updated on: 2015-10-14

CSIL MiniCourses. Introduction To Unix (I) John Lekberg Sean Hogan Cannon Matthews Graham Smith. Updated on: 2015-10-14 CSIL MiniCourses Introduction To Unix (I) John Lekberg Sean Hogan Cannon Matthews Graham Smith Updated on: 2015-10-14 What s a Unix? 2 Now what? 2 Your Home Directory and Other Things 2 Making a New Directory

More information

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems Module 9: Operating Systems Objective What is an operating system (OS)? OS kernel, and basic functions OS Examples: MS-DOS, MS Windows, Mac OS Unix/Linux Features of modern OS Graphical operating system

More information

Unix Sampler. PEOPLE whoami id who

Unix Sampler. PEOPLE whoami id who Unix Sampler PEOPLE whoami id who finger username hostname grep pattern /etc/passwd Learn about yourself. See who is logged on Find out about the person who has an account called username on this host

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Unix the Bare Minimum

Unix the Bare Minimum Unix the Bare Minimum Norman Matloff September 27, 2005 c 2001-2005, N.S. Matloff Contents 1 Purpose 2 2 Shells 2 3 Files and Directories 4 3.1 Creating Directories.......................................

More information

The programming language C. sws1 1

The programming language C. sws1 1 The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan

More information

Programming with the Dev C++ IDE

Programming with the Dev C++ IDE Programming with the Dev C++ IDE 1 Introduction to the IDE Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. As similar IDEs, it offers to the programmer

More information

Getting Started with UNIX From Kaua i, Maui, Moloka i, Lāna i, and Hawai i

Getting Started with UNIX From Kaua i, Maui, Moloka i, Lāna i, and Hawai i UNIX004 November 2003 Getting Started with UNIX From Kaua i, Maui, Moloka i, Lāna i, and Hawai i Introduction...1 Applying for a UH Username and Password...1 UNIX Environment...2 Software...2 Getting Connected

More information

Hands-On UNIX Exercise:

Hands-On UNIX Exercise: Hands-On UNIX Exercise: This exercise takes you around some of the features of the shell. Even if you don't need to use them all straight away, it's very useful to be aware of them and to know how to deal

More information

CP Lab 2: Writing programs for simple arithmetic problems

CP Lab 2: Writing programs for simple arithmetic problems Computer Programming (CP) Lab 2, 2015/16 1 CP Lab 2: Writing programs for simple arithmetic problems Instructions The purpose of this Lab is to guide you through a series of simple programming problems,

More information

USEFUL UNIX COMMANDS

USEFUL UNIX COMMANDS cancel cat file USEFUL UNIX COMMANDS cancel print requested with lp Display the file cat file1 file2 > files Combine file1 and file2 into files cat file1 >> file2 chgrp [options] newgroup files Append

More information

1 Introduction FrontBase is a high performance, scalable, SQL 92 compliant relational database server created in the for universal deployment.

1 Introduction FrontBase is a high performance, scalable, SQL 92 compliant relational database server created in the for universal deployment. FrontBase 7 for ios and Mac OS X 1 Introduction FrontBase is a high performance, scalable, SQL 92 compliant relational database server created in the for universal deployment. On Mac OS X FrontBase can

More information

CPSC 226 Lab Nine Fall 2015

CPSC 226 Lab Nine Fall 2015 CPSC 226 Lab Nine Fall 2015 Directions. Our overall lab goal is to learn how to use BBB/Debian as a typical Linux/ARM embedded environment, program in a traditional Linux C programming environment, and

More information

An Introduction to Using the Command Line Interface (CLI) to Work with Files and Directories

An Introduction to Using the Command Line Interface (CLI) to Work with Files and Directories An Introduction to Using the Command Line Interface (CLI) to Work with Files and Directories Mac OS by bertram lyons senior consultant avpreserve AVPreserve Media Archiving & Data Management Consultants

More information

GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

Lab 1 Beginning C Program

Lab 1 Beginning C Program Lab 1 Beginning C Program Overview This lab covers the basics of compiling a basic C application program from a command line. Basic functions including printf() and scanf() are used. Simple command line

More information

IUCLID 5 Guidance and support. Installation Guide Distributed Version. Linux - Apache Tomcat - PostgreSQL

IUCLID 5 Guidance and support. Installation Guide Distributed Version. Linux - Apache Tomcat - PostgreSQL IUCLID 5 Guidance and support Installation Guide Distributed Version Linux - Apache Tomcat - PostgreSQL June 2009 Legal Notice Neither the European Chemicals Agency nor any person acting on behalf of the

More information

Lecture 25 Systems Programming Process Control

Lecture 25 Systems Programming Process Control Lecture 25 Systems Programming Process Control A process is defined as an instance of a program that is currently running. A uni processor system or single core system can still execute multiple processes

More information

Code::Blocks Student Manual

Code::Blocks Student Manual Code::Blocks Student Manual Lawrence Goetz, Network Administrator Yedidyah Langsam, Professor and Theodore Raphan, Distinguished Professor Dept. of Computer and Information Science Brooklyn College of

More information

Agenda. Using HPC Wales 2

Agenda. Using HPC Wales 2 Using HPC Wales Agenda Infrastructure : An Overview of our Infrastructure Logging in : Command Line Interface and File Transfer Linux Basics : Commands and Text Editors Using Modules : Managing Software

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Who am I? Lo Chi Wing, Peter Lecture 1: Introduction to Android Development Email: Peter@Peter-Lo.com Facebook: http://www.facebook.com/peterlo111

More information

Repetition Using the End of File Condition

Repetition Using the End of File Condition Repetition Using the End of File Condition Quick Start Compile step once always g++ -o Scan4 Scan4.cpp mkdir labs cd labs Execute step mkdir 4 Scan4 cd 4 cp /samples/csc/155/labs/4/*. Submit step emacs

More information

Fred Hantelmann LINUX. Start-up Guide. A self-contained introduction. With 57 Figures. Springer

Fred Hantelmann LINUX. Start-up Guide. A self-contained introduction. With 57 Figures. Springer Fred Hantelmann LINUX Start-up Guide A self-contained introduction With 57 Figures Springer Contents Contents Introduction 1 1.1 Linux Versus Unix 2 1.2 Kernel Architecture 3 1.3 Guide 5 1.4 Typographical

More information

1 Basic commands. 2 Terminology. CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger

1 Basic commands. 2 Terminology. CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger CS61B, Fall 2009 Simple UNIX Commands P. N. Hilfinger 1 Basic commands This section describes a list of commonly used commands that are available on the EECS UNIX systems. Most commands are executed by

More information

TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control

TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control Version 3.4, Last Edited 9/10/2011 Students Name: Date of Experiment: Read the following guidelines before working in

More information

Unix Scripts and Job Scheduling

Unix Scripts and Job Scheduling Unix Scripts and Job Scheduling Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Overview Shell Scripts

More information

Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor

Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Vim, Emacs, and JUnit Testing Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Overview Vim and Emacs are the two code editors available within the Dijkstra environment. While both

More information

Introduction. What is an Operating System?

Introduction. What is an Operating System? Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization

More information

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Cynthia Cornelius Center for Computational Research University at Buffalo, SUNY 701 Ellicott St Buffalo, NY 14203 Phone: 716-881-8959

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment?

How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment? Author Janice Hong Version 1.0.0 Date Mar. 2014 Page 1/56 How to use the VMware Workstation / Player to create an ISaGRAF (Ver. 3.55) development environment? Application Note The 32-bit operating system

More information

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2 Unix Shell Scripts Norman Matloff July 30, 2008 Contents 1 Introduction 1 2 Invoking Shell Scripts 2 2.1 Direct Interpretation....................................... 2 2.2 Indirect Interpretation......................................

More information

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11

Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 In this lab, you will first learn how to use pointers to print memory addresses of variables. After that, you will learn

More information

Digital Forensics Tutorials Acquiring an Image with Kali dcfldd

Digital Forensics Tutorials Acquiring an Image with Kali dcfldd Digital Forensics Tutorials Acquiring an Image with Kali dcfldd Explanation Section Disk Imaging Definition Disk images are used to transfer a hard drive s contents for various reasons. A disk image can

More information

Introduction to MIPS Programming with Mars

Introduction to MIPS Programming with Mars Introduction to MIPS Programming with Mars This week s lab will parallel last week s lab. During the lab period, we want you to follow the instructions in this handout that lead you through the process

More information

Operating Systems and Networks

Operating Systems and Networks recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls

More information

Linux Overview. Local facilities. Linux commands. The vi (gvim) editor

Linux Overview. Local facilities. Linux commands. The vi (gvim) editor Linux Overview Local facilities Linux commands The vi (gvim) editor MobiLan This system consists of a number of laptop computers (Windows) connected to a wireless Local Area Network. You need to be careful

More information

Tutorial Guide to the IS Unix Service

Tutorial Guide to the IS Unix Service Tutorial Guide to the IS Unix Service The aim of this guide is to help people to start using the facilities available on the Unix and Linux servers managed by Information Services. It refers in particular

More information

Building Applications Using Micro Focus COBOL

Building Applications Using Micro Focus COBOL Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.

More information

CSCE 665: Lab Basics. Virtual Machine. Guofei Gu

CSCE 665: Lab Basics. Virtual Machine. Guofei Gu CSCE 665: Lab Basics Guofei Gu Virtual Machine Virtual Machine: a so?ware implementacon of a programmable machine(client), where the so?ware implementacon is constrained within another computer(host) at

More information

Editing Files on Remote File Systems

Editing Files on Remote File Systems Terminal Intro (Vol 2) Paul E. Johnson 1 2 1 Department of Political Science 2 Center for Research Methods and Data Analysis, University of Kansas 2015 Outline 1 Editing Without a Mouse! Emacs nano vi

More information

CLC Server Command Line Tools USER MANUAL

CLC Server Command Line Tools USER MANUAL CLC Server Command Line Tools USER MANUAL Manual for CLC Server Command Line Tools 2.5 Windows, Mac OS X and Linux September 4, 2015 This software is for research purposes only. QIAGEN Aarhus A/S Silkeborgvej

More information

Future Technology Devices International Ltd. Mac OS X Installation Guide

Future Technology Devices International Ltd. Mac OS X Installation Guide Future Technology Devices International Ltd. Mac OS X Installation Guide I Mac OS X Installation Guide Table of Contents Part I Welcome to the Mac OS X Installation Guide 2 Part II VCP Drivers 3 1 Installing

More information

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T) Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating

More information

Witango Application Server 6. Installation Guide for OS X

Witango Application Server 6. Installation Guide for OS X Witango Application Server 6 Installation Guide for OS X January 2011 Tronics Software LLC 503 Mountain Ave. Gillette, NJ 07933 USA Telephone: (570) 647 4370 Email: support@witango.com Web: www.witango.com

More information

Sequential Program Execution

Sequential Program Execution Sequential Program Execution Quick Start Compile step once always g++ -o Realtor1 Realtor1.cpp mkdir labs cd labs Execute step mkdir 1 Realtor1 cd 1 cp../0/realtor.cpp Realtor1.cpp Submit step cp /samples/csc/155/labs/1/*.

More information

Hadoop Basics with InfoSphere BigInsights

Hadoop Basics with InfoSphere BigInsights An IBM Proof of Technology Hadoop Basics with InfoSphere BigInsights Part: 1 Exploring Hadoop Distributed File System An IBM Proof of Technology Catalog Number Copyright IBM Corporation, 2013 US Government

More information

Embedded Software Development

Embedded Software Development Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) TDDI11, Embedded Software 2010-04-22 Embedded Software Development Host and Target Machine Typical embedded

More information

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

Operating System Structure

Operating System Structure Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural

More information

SSH Connections MACs the MAC XTerm application can be used to create an ssh connection, no utility is needed.

SSH Connections MACs the MAC XTerm application can be used to create an ssh connection, no utility is needed. Overview of MSU Compute Servers The DECS Linux based compute servers are well suited for programs that are too slow to run on typical desktop computers but do not require the power of supercomputers. The

More information

grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print

grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print grep, awk and sed three VERY useful command-line utilities Matt Probert, Uni of York grep = global regular expression print In the simplest terms, grep (global regular expression print) will search input

More information

Welcome to GAMS 1. Jesper Jensen TECA TRAINING ApS jensen@tecatraining.dk. This version: September 2006

Welcome to GAMS 1. Jesper Jensen TECA TRAINING ApS jensen@tecatraining.dk. This version: September 2006 Welcome to GAMS 1 Jesper Jensen TECA TRAINING ApS jensen@tecatraining.dk This version: September 2006 1 This material is the copyrighted intellectual property of Jesper Jensen. Written permission must

More information

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components

More information

Unix Primer - Basic Commands In the Unix Shell

Unix Primer - Basic Commands In the Unix Shell Unix Primer - Basic Commands In the Unix Shell If you have no experience with the Unix command shell, it will be best to work through this primer. The last section summarizes the basic file manipulation

More information

ODBC Driver User s Guide. Objectivity/SQL++ ODBC Driver User s Guide. Release 10.2

ODBC Driver User s Guide. Objectivity/SQL++ ODBC Driver User s Guide. Release 10.2 ODBC Driver User s Guide Objectivity/SQL++ ODBC Driver User s Guide Release 10.2 Objectivity/SQL++ ODBC Driver User s Guide Part Number: 10.2-ODBC-0 Release 10.2, October 13, 2011 The information in this

More information

PMOD Installation on Linux Systems

PMOD Installation on Linux Systems User's Guide PMOD Installation on Linux Systems Version 3.7 PMOD Technologies Linux Installation The installation for all types of PMOD systems starts with the software extraction from the installation

More information

Operating Systems. Study this screen display and answer these questions.

Operating Systems. Study this screen display and answer these questions. UNIT 6 Operating Systems STARTER Study this screen display and answer these questions. 1 How do you enter Unix commands? 2 Which Unix commands does it show? 3 What is the output of each command? 4 What

More information

CommandCenter Secure Gateway

CommandCenter Secure Gateway CommandCenter Secure Gateway Quick Setup Guide for CC-SG Virtual Appliance and lmadmin License Server Management This Quick Setup Guide explains how to install and configure the CommandCenter Secure Gateway.

More information

Lecture 4: Writing shell scripts

Lecture 4: Writing shell scripts Handout 5 06/03/03 1 Your rst shell script Lecture 4: Writing shell scripts Shell scripts are nothing other than les that contain shell commands that are run when you type the le at the command line. That

More information

The Advanced JTAG Bridge. Nathan Yawn nathan.yawn@opencores.org 05/12/09

The Advanced JTAG Bridge. Nathan Yawn nathan.yawn@opencores.org 05/12/09 The Advanced JTAG Bridge Nathan Yawn nathan.yawn@opencores.org 05/12/09 Copyright (C) 2008-2009 Nathan Yawn Permission is granted to copy, distribute and/or modify this document under the terms of the

More information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

Opening a Command Shell

Opening a Command Shell Opening a Command Shell Win Cmd Line 1 In WinXP, go to the Programs Menu, select Accessories and then Command Prompt. In Win7, go to the All Programs, select Accessories and then Command Prompt. Note you

More information

Xcode User Default Reference. (Legacy)

Xcode User Default Reference. (Legacy) Xcode User Default Reference (Legacy) Contents Introduction 5 Organization of This Document 5 Software Version 5 See Also 5 Xcode User Defaults 7 Xcode User Default Overview 7 General User Defaults 8 NSDragAndDropTextDelay

More information

Figure 1: Graphical example of a mergesort 1.

Figure 1: Graphical example of a mergesort 1. CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your

More information

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights

More information

DataTraveler Vault - Privacy User Manual

DataTraveler Vault - Privacy User Manual DataTraveler Vault - Privacy User Manual Document No. 48000012-001.A02 DataTraveler Vault - Privacy Page 1 of 29 Table of Contents About This Manual... 3 System Requirements... 3 Recommendations... 4 Setup

More information

Running Hadoop on Windows CCNP Server

Running Hadoop on Windows CCNP Server Running Hadoop at Stirling Kevin Swingler Summary The Hadoopserver in CS @ Stirling A quick intoduction to Unix commands Getting files in and out Compliing your Java Submit a HadoopJob Monitor your jobs

More information

Getting Started with Command Prompts

Getting Started with Command Prompts Getting Started with Command Prompts Updated March, 2013 Some courses such as TeenCoder : Java Programming will ask the student to perform tasks from a command prompt (Windows) or Terminal window (Mac

More information

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS

GeBro-BACKUP. Die Online-Datensicherung. Manual Pro Backup Client on a NAS GeBro-BACKUP Die Online-Datensicherung. Manual Pro Backup Client on a NAS Created and tested on a QNAP TS-559 Pro Firmware 4.0.2 Intel x86 Architecture Default hardware configuration OBM v6.15.0.0 Last

More information