CS计算机代考程序代写 c++ python flex Java Excel gui database algorithm javascript Module 03 Working in Linux

Module 03 Working in Linux

Exam Objective
1.2 Major Open Source Applications
Objective Description
Awareness of major applications as well as their uses and development

Exam Objective
1.4 ICT Skills and Working in Linux
Objective Description
Basic Information and Communication Technology (ICT) skills and working in Linux

Introduction

Introduction
¡ñ This module will cover the basics of working in Linux such as:
¡ð Navigating the Linux desktop
¡ð Applications
¡ð Console tools
¡ð Package management
¡ð Development Languages
¡ð Security
¡ð The cloud

Navigating the Linux Desktop

Navigating the Linux Desktop
¡ñ To be a Linux systems administrator, it is necessary to be comfortable with Linux as a desktop operating system and have proficiency with basic Information and Communication Technology (ICT) skills.
¡ñ Systems administrators use Linux to manage servers, assist users with configuration issues, recommend new software, and update documentation among other tasks.
¡ñ After familiarizing oneself with the Linux Graphical User Interface (GUI), or desktop, the next step is learning how to perform tasks from the command line.

Getting to the Command Line
¡ñ The command line interface (CLI) is a simple text input system for entering anything from single word commands to complicated scripts.
¡ñ On systems that boot to a GUI, there are two common ways of accessing the command line, a GUI-based terminal, and a virtual terminal:
¡ð Browse to the Terminal application from the applications menu
¡ð A virtual terminal can be run at the same time as a GUI but may require the user to log in via the virtual terminal before they can execute commands

Applications

Applications
¡ñ The kernel decides which program gets which blocks of memory, it starts and kills applications, and it handles displaying text or graphics on a monitor.
¡ñ Applications make requests to the kernel and in return receive resources, such as memory, CPU, and disk space.
¡ñ The kernel also handles the switching of applications, a process known as multitasking.
¡ñ There are a large variety of application types such as word processors, web browsers, and email
clients, and more.
¡ñ A process is just one task that is loaded and tracked by the kernel.
¡ñ An application may even need multiple processes to function, so the kernel takes care of running the processes, starting and stopping them as requested, and handing out system resources.

Major Applications
¡ñ Linux software generally falls into one of three categories:
¡ð Server Applications: The purpose of this software is to serve information to other
computers, called clients.
¡ð Desktop Applications: Web browsers, text editors, music players, or other applications with
which users interact directly.
¡ð Tools: A loose category of software that exists to make it easier to manage computer systems.

Server Applications
¡ñ Linux excels at running server applications because of its reliability and efficiency.
¡ñ One of the early uses of Linux was for web servers.
¡ð A web server hosts content for web pages, which are viewed by a web browser using the HyperText Transfer Protocol (HTTP) or its encrypted flavor, HTTPS.
¡ñ There is a growing demand for private cloud server software that can be deployed and administered internally.
¡ð The ownCloud project provides software to store, sync and share data from private cloud servers.
¡ð The Nextcloud project also provides private cloud software

Desktop Applications
¡ñ The Linux ecosystem has a wide variety of desktop applications. ¡ñ Email:
¡ð The Mozilla Foundation came out with Thunderbird, a full-featured desktop email client that connects to a POP or IMAP server.
¡ð Other notable email clients are Evolution and KMail which are the GNOME and KDE project¡¯s email clients. ¡ñ Creative:
¡ð For the creative types, there is Blender, GIMP (Gnu Image Manipulation Program), and Audacity which handle 3D movie creation, 2D image manipulation, and audio editing respectively.
¡ñ Productivity
¡ð LibreOffice is a fork of the OpenOffice (sometimes called OpenOffice.org) application suite.

Desktop Applications
¡ñ Web browsers:
¡ð The Mozilla Firefox and Google Chrome browsers are open source web browsers that are fast, feature rich, and have excellent support for web developers.

Console Tools

Console Tools
¡ñ UNIX has considerable overlap between the skills of software development and systems administration.
¡ñ The tools for managing systems have features of computer languages, such as loops, and are used extensively in automating systems administration tasks.
¡ñ Therefore, basic familiarity with programming is required for competent systems administrators.
¡ñ Shells:
¡ð Users interact with a Linux system through a shell, which accepts commands to execute.
¡ð Linux offers a variety of shells to choose from such as; the Bourne shell, the C shell, the Bourne Again (Bash) shell, the tcsh, the Korn shell (Ksh), and the zsh.

Console Tools
¡ñ Text editors:
¡ð Most Linux systems provide a choice of text editors which are commonly used at the console to edit configuration files.
¡ð The two main editors are Vi (or the more modern Vim) and Emacs.
¡ð Pico and Nano are available on most systems and provide very basic, yet user friendly text editing.

Package Management

Package Management
¡ñ Every Linux system needs to add, remove, and update software.
¡ñ Modern distributions use packages.
¡ñ Packages are compressed files that bundle up an application and it¡¯s dependencies (or required files), greatly simplifying the installation.
¡ñ A package manager takes care of keeping track of which files belong to which package and even downloading updates from repositories.
¡ñ In Linux, there are many different software package management systems, but the two most popular are those from Debian and Red Hat.

Package Management
¡ñ Debian Package Management:
¡ð The Debian distribution and its derivatives such as Ubuntu and Mint, use the Debian package management system.
¡ð Debian package management has software packages that are distributed as files ending in the .deb extension.
¡ð Tools for managing these files include dpkg, apt-get, aptitude, Synaptic, and Software Center.
¡ñ RPM (Red Hat Package Manager) Package Management:
¡ð According to the Linux Standards Base, the standard package management system is RPM.
¡ð RPM makes use of an .rpm file for each software package.
¡ð Distributions derived from Red Hat, including Centos and Fedora, use RPM.
¡ð The back-end tool most commonly used for RPM Package Management is the rpm command.

Development Languages

Development Languages
Computer programming languages provide a way for a programmer to enter instructions in a more human readable format, and for those instructions to eventually become translated into something the computer understands.
¡ñ Languages fall into one of two camps: interpreted or compiled.
¡ð An interpreted language translates the written code into computer code as the program runs.
¡ð A compiled language is translated all at once.
¡ñ Linux itself was written in a compiled language called C.
¡ñ C has been extended over the years to C++ and Objective C and other variants.
¡ñ The Java language uses hypothetical CPU called the Java Virtual Machine (JVM) and then compiles all the code to that.
¡ñ JavaScript is a high-level interpreted programming language that is one of the core technologies on the world wide web.

Development Languages
¡ñ Perl is an interpreted language originally developed to perform text manipulation but has gained favor with systems administrators and is used in everything from automation to building web applications.
¡ñ PHP is a language that was initially built to create dynamic web pages.
¡ñ Ruby is another language that was influenced by Perl and Shell that powers many of the leading
automation tools.
¡ñ Python is another scripting language that is in general use
¡ð Python has excellent statistical processing abilities and is a favorite in academia.
¡ñ OpenSSL is a cryptographic library that is used in everything from web servers to the command
line.
¡ñ C library. It provides a basic set of functions for reading and writing to files and displays, which is used by applications and other languages alike.

Security

Security
¡ñ Administrators and computer users are increasingly aware of privacy concerns
¡ñ Cookies are the primary mechanism that websites use to track you.
¡ð As you browse the web, a web server can send back the cookie, which is a small piece of text, along with the web page.
¡ð Browsers typically offer cookie-related settings, users can opt to have the browser tell the site not to track.

Password issues
¡ñ Good password management is essential to security in any computing environment.
¡ñ The most privileged user on any Linux system is root; this account is the primary administrator which is created when the operating system is installed.
¡ñ There are many levels of access and various means of password management on a Linux system.
¡ð When users are created, they are given different login permissions depending on what groups they are assigned to
¡ð Services that run on systems such as databases can also have login permissions with their own passwords and privileges.
¡ð There are specific passwords for accessing systems remotely through SSH, FTP, or other management programs.
¡ñ Increasingly users and administrators are turning to password manager programs to store login credentials in encrypted form.
¡ñ Another trend is two-factor authentication (2FA), where a passcode sent to the user’s phone or other devices.

Protecting Yourself
¡ñ As you browse the web, you leave a digital footprint.
¡ñ Some of this information is gathered to collect statistics for advertising, and some can be used for malicious purposes.
¡ñ Some ways you can protect yourself include:
¡ð Use a good, unique password everywhere you go.
¡ð Use a password manager like KeePassX to generate passwords.
¡ð Limit the information you give to sites to only what is needed.
¡ð Make a point of checking for system updates periodically.
¡ð Protect your computer from accepting incoming connections by using a firewall.
¡ö A firewall is a device that filters network traffic, and Linux has one built-in.
¡ö If you are using Ubuntu, then the Gufw is a graphical interface to Ubuntu¡¯s Uncomplicated Firewall (UFW).

Privacy Tools
¡ñ The use of modern privacy tools, both at the server and user level can help prevent system intrusions and unauthorized access to data.
¡ñ However, there are still many known weaknesses that hackers can take advantage of.
¡ñ The proactive systems administrator is wise to deploy privacy tools that protect their users as well as the systems they use.
¡ñ There are many levels of access and various means of password management on a Linux system.
¡ð Administrators deploy encryption with authentication keys on almost every system that communicates with the outside world.
¡ö The HyperText Transfer Protocol Secure (HTTPS) standard used on web servers to ensure that data transmitted between users and online resources cannot be intercepted as it travels on the open Internet.
¡ð Virtual private networks (VPN) work by creating an encrypted channel of communication between two systems, so the data transmitted between them is scrambled by an algorithm only the systems know.
¡ð The Tor project and tools like its Tor Browser relay internet requests through a network of servers that prevents websites and others from learning the identity of the person making the request.

The Cloud

The Cloud
¡ñ Cloud computing allows computing resources to be moved to remote locations where content can be accessed, manipulated and shared around the globe.
¡ñ Cloud adoption is the migration of an organization’s IT applications and processes to cloud services.
¡ñ A cloud can be described as computing resources from one or many off-site data centers which can be accessed over the internet.
¡ñ The data and resources that organizations store in the cloud can include data, servers, storage, application hosting, analytics and a myriad of other services.

The Cloud
¡ñ A cloud deployment model provides a basis for how cloud infrastructure is built, managed, and accessed.
¡ñ There are four primary cloud deployment models:
¡ð Public Cloud: A cloud infrastructure deployed by a provider to offer cloud services to the general public and organizations over the Internet.
¡ð Private Cloud: A cloud infrastructure that is set up for the sole use of a particular organization.
¡ð Community Cloud: A cloud infrastructure that is set up for the sole use by a group of organizations with
common goals or requirements.
¡ð Hybrid Cloud: A hybrid cloud is composed of two or more individual clouds, each of which can be private, community, or public clouds.

Linux in the Cloud
¡ñ Linux plays a pivotal role in cloud computing. What makes Linux uniquely suited to enabling cloud computing?
¡ð Flexibility: Cloud computing provides the capability to provision IT resources quickly and at any time.
¡ð Accessibility: Applications and data reside centrally and are accessed from anywhere over a network from
any device.
¡ð Community Cloud: Consumers can scale IT resources to meet workload demand, thereby eliminating overhead from underutilized resources.
¡ð Hybrid Cloud: A significant portion of Linux servers operating in the cloud are created and managed by automated management programs rather than human operators.
¡ö This process frees up administrators to monitor computing operations rather than manually configuring and updating systems.
¡ð Security: Linux can help offset security issues because it is one of the most secure and reliable operating systems available.
¡ö Linux is open source, meaning its source code can be inspected for vulnerabilities and compatibility issues.

Virtualization
¡ñ Virtualization is one of the most significant advancements that has contributed to the enablement cloud computing.
¡ñ Virtualization is the process where one physical computer, called the host, runs multiple copies of an operating system, each copy called a guest.
¡ñ Each guest gets its own virtual resources and communicates with the network on its own.
¡ñ The host system runs software called a hypervisor that switches resources between the various guests.
¡ñ With software from companies like VMWare and Openbox, you can take a powerful CPU and use it to run multiple virtual machines.
¡ð This optimizes usage of physical resources and dramatically reduces costs over the previous one machine, one OS model.

Containers and Bare Metal Deployment
¡ñ Application software is now being written that runs in a ¡°serverless¡± environment due to the rise of containerization technologies like Docker and Kubernetes.
¡ñ Programmers are creating software that does one single function of a system (like database processing or storage) that runs in a container.
¡ñ These containers are organized in ¡°pods¡± that run within a ¡°node¡± and can talk with each other, and the outside world if needed.
¡ñ Linux is the underlying technology that makes container technology work.
¡ñ Working in Linux will increasingly mean working within a development team that draws on the disciplines of programming, database design, networking, and systems administration to create the systems of the future.