0% found this document useful (0 votes)
19 views

OSLab06 Updated

The laboratory manual for CS11303 Operating Systems outlines the objectives and tasks related to using Linux for programming, specifically focusing on the installation of the GCC compiler and Vim editor. It includes a rubric for assessing students' understanding and performance in using Linux tools, along with detailed instructions for installing and verifying these tools. Additionally, the manual provides a framework for evaluating students' ability to relate theoretical concepts to practical applications in a Linux environment.

Uploaded by

ifhamaakil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

OSLab06 Updated

The laboratory manual for CS11303 Operating Systems outlines the objectives and tasks related to using Linux for programming, specifically focusing on the installation of the GCC compiler and Vim editor. It includes a rubric for assessing students' understanding and performance in using Linux tools, along with detailed instructions for installing and verifying these tools. Additionally, the manual provides a framework for evaluating students' ability to relate theoretical concepts to practical applications in a Linux environment.

Uploaded by

ifhamaakil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Laboratory Manual

Subject Name: CS11303 Operating Systems


Student Name

Reg. No.
Date

MAPPING OF LAB TO CLOs & PLOs


CLO 3: Use Linux to implement system programs related to
process synchronization, shared memory, mailboxes and file PLO 5: Modern Tool Usage
Psychomotor Domain: P3
systems.

Rubric for Modern Tool Usage

Criteria Attainment Score


Excellent Very good Good Fair Poor
(100-85%) (84-71%) (70-61%) (60-50%) (49-0%)
Understanding Demonstrates Demonstrates a Demonstrates Demonstrates Demonstrates minimal
of Linux skillful ability to very good ability good ability to some ability to or no ability to describe
environment and describe and to describe and describe and describe and and explain the Linux
explain the Linux explain the Linux explain the Linux environment and its
its terminal explain the
environment and environment and environment and terminal
Linux its terminal its terminal its terminal
environment and
its terminal
Ability to Demonstrates Demonstrates a Demonstrates Demonstrates Demonstrates minimal
perform skillful ability to very good ability good ability to some ability to or no ability to perform
experiment perform to perform perform perform experiment using
experiment using experiment using experiment using Linux terminal
using Linux experiment using
Linux terminal Linux terminal Linux terminal
terminal Linux terminal
Generation and Demonstrates Demonstrates a Demonstrates Demonstrates Demonstrates minimal
Interpretation of skillful ability to very good ability good ability to some ability to or no ability to
results using generate results to generate generate results generate results generate results using
using Linux results using using Linux Using Linux Linux terminal
Linux terminal
terminal Linux terminal terminal terminal
Ability to relate Demonstrates Demonstrates a Demonstrates a Demonstrates Demonstrates minimal
theory concepts skillful ability to very good ability good ability to some ability to or no ability to
and its understand to understand understand understand understand significance
significance of significance of significance of significance of of experiment and its
significance
experiment and experiment and experiment and experiment and relation to the theory
its relation to the its relation to the its relation to the its relation to the
theory theory theory theory
Lab 6: Installation of C compiler and Vim editor in Linux.

Objective:

 Learn to install the C compiler and Vim editor using Linux-appropriate commands
 Learn how to write and compile code in Linux.
GCC Compiler:
Introduction: The GNU Compiler Collection (GCC) is a renowned and widely-used set of
compilers for various programming languages. It is a fundamental tool in the world of Linux and
open-source software development. In this theoretical overview, we'll explore the key concepts,
components, and principles related to the GCC compiler in the context of Linux.
1. Compiler Basics:
 A compiler is a software tool that translates high-level programming code (e.g., C, C++)
into machine code or assembly language that can be executed by a computer's CPU.
 GCC is a suite of compilers designed to support multiple programming languages, with a
primary focus on C, C++, and Fortran.
2. Components of GCC:
 GCC consists of several components:
 Front End: Responsible for parsing the source code, performing syntax checking,
and generating intermediate code.
 Middle End: Optimizes the intermediate code to improve program performance.
 Back End: Generates machine-specific code that can be executed on a target
platform.
 GCC supports various languages through the use of different front ends.
 GCC's extensibility allows developers to add support for new languages or architectures.
3. Compilation Process:
 The compilation process includes several stages:
 Preprocessing: Expands macros, includes header files, and removes comments.
 Compilation: Translates source code into assembly code or intermediate code.
 Assembly: Converts assembly code into machine code.
 Linking: Combines object files and libraries to create an executable binary.
4. Command-Line Interface:
 GCC is typically used through the command line, where developers provide input source
files and specify compilation options.
 Common GCC commands include gcc for C, g++ for C++, and gfortran for Fortran.
 Options can control optimization levels, produce debugging information, or link libraries.
5. Optimization:
 GCC offers a range of optimization flags (-O1, -O2, -O3, etc.) that affect the generated
code's performance.
 Higher optimization levels can increase execution speed but may require more
compilation time.
 Developers must balance performance and debugging capabilities.
6. Portability:
 GCC's portability is one of its strengths. It can compile code on multiple architectures
and operating systems, making it versatile and widely adopted.
 Cross-compilation allows developers to build code for a target architecture different from
the host system.
7. Open Source and Community-Driven:
 GCC is part of the GNU Project and is released under the GNU General Public License
(GPL).
 A vibrant and dedicated community of developers maintains, updates, and improves
GCC.
Vim Editor:
Introduction: Vim is a highly versatile and powerful text editor widely used in the Linux and
Unix environments. It is renowned for its efficiency, extensibility, and rich feature set. In this
theoretical overview, we'll delve into the key concepts and principles of using Vim in Linux.
1. Modes in Vim:
 Vim operates in different modes, which provide distinct functionalities:
 Normal Mode: The default mode for navigation, editing, and executing
commands.
 Insert Mode: For inserting and editing text.
 Visual Mode: Used for text selection.
 Command-Line Mode: Enables entering commands, saving files, and more.
2. Keyboard Commands:
 Vim relies heavily on keyboard commands for navigation and editing.
 Common commands include 'h', 'j', 'k', and 'l' for movement, ':w' for saving, and ':q' for
quitting.
 Extensive keyboard mappings and custom keybindings are possible, offering efficient
text manipulation.
3. Extensibility and Customization:
 Vim can be customized extensively to fit the user's workflow.
 Users can create and install plugins, change color schemes, and configure settings in their
.vimrc file.
 Vimscript, the built-in scripting language, allows for advanced customizations.
4. Syntax Highlighting:
 Vim provides syntax highlighting for various programming languages and file types.
 This feature aids code readability and helps identify syntax errors.
5. Buffers and Windows:
 Vim supports multiple buffers and windows, enabling users to edit and navigate through
multiple files simultaneously.
 Each buffer can have its own text content and file association.
6. Text Manipulation:
 Vim offers a rich set of commands for text manipulation, such as search and replace,
copy and paste, and advanced regular expression support.
 Text objects, like words or paragraphs, can be manipulated efficiently.
7. File Navigation:
 Vim provides file navigation capabilities, including opening, saving, and closing files.
 Users can also work with directories, explore file trees, and navigate between different
files and directories.
8. Integration with Linux Environment:
 Vim seamlessly integrates with the Linux environment. It can be used as the default
editor for various Linux utilities, like crontab and git.
 Vim is also a common choice for programming and scripting in Linux due to its speed
and power.
9. Remote and Terminal Usage:
 Vim can be used remotely via SSH to edit files on remote servers.
 It works efficiently within terminal emulators, making it an ideal tool for command-line
text editing.
10. Learning Curve:
 Vim has a learning curve, and beginners may find it challenging initially.
 However, proficiency in Vim leads to significant productivity gains.
Task 1:
Imagine you are a system administrator responsible for setting up a Linux for a team of
developers who will be working on C and C++ projects. Your task is to install the GCC (GNU
Compiler Collection) to enable software development using these programming languages.
Deliverables:
1. A script or set of instructions for installing the GCC compiler on the Linux.
2. A verification section showing the successful installation of GCC.
3. Any additional components or packages installed.
4. Documentation within the script or instructions explaining the purpose of each command.
5. A statement indicating the successful completion of the task.

Task 2:
Imagine you are a system administrator responsible for configuring a Linux development for a
team of programmers. The developers prefer using Vim as their text editor for coding and require
it to be installed on Linux.
Deliverables:
1. A script or set of instructions for installing Vim on Linux.
2. A verification section showing the successful installation of Vim.
3. Any optional components or plugins installed.
4. Documentation within the script or instructions explaining the purpose of each command.
5. A section for basic Vim customization.
6. A statement indicating the successful completion of the task.

Task 3:
Compile the Following C code.
Lab Assessment
Understanding of Ability to perform Generation and
Linux environment experiments using a Interpretation of
and its terminal Linux terminal results using Total
(Criteria 1) (Criteria 2) Linux terminal
15 Marks
(3) (Criteria 3)
(7)
(5)
Task 1

Task 2

Task 3

Average
Marks

Lab Engineer Name: Engr. Umar Javed Signature: ___________________

You might also like