Главная страница

Open Source Software


Скачать 1.28 Mb.
НазваниеOpen Source Software
Дата26.05.2022
Размер1.28 Mb.
Формат файлаdocx
Имя файлаFinal_OS 2.docx
ТипДокументы
#551026
страница1 из 39
  1   2   3   4   5   6   7   8   9   ...   39


Open Source Software Development Methods

Week 1

Open Source Software


1. What are the main types of Open Source Software (OSS) licenses? Select all answers that apply.
Ans:

  • Restrictive

  • Permissive

2. Linux began:

Ans: In 1991 with an Internet post by a student in Finland

3. Which method best describes the way Android is developed?

Ans: Company-Led

4. Which method best describes the way FreeBSD is developed?

Ans: Governing Board

5. Which method best describes the way Linux kernel is developed?

Ans: Benevolent Dictatorship

Why Use Open Source Software?

1. From a business perspective, use of OSS (Select all answers that apply):

Ans:

  • Makes marketing easier as some ingredients are already well-known and trusted

  • Enables use of ingredients from other sources and speeds development

2. OSS is (Select all answers that apply):

Ans:

  • Secure or insecure depending on the quality and priorities of the project maintainers, but at least users can judge this by open discussion and code inspection

  • Can be more secure because many developers can easily see the code, look for problems, and mitigate problems when they are discovered

3. For school systems at any level, use of OSS (Select all answers that apply):

Ans:

  • Can lower costs by letting older hardware be used

  • Can lower costs by letting low-cost or free software be used

4. School systems can benefit from using OSS because (Select all answers that apply):

Ans:

  • Students may learn how to join projects and contribute from an early age or stage in their education

  • As the world's IT infrastructure becomes more and more OSS-based, students will be better prepared to enter the work force especially as developers

  • Students can more easily learn about how things really work as compared to using closed source operating systems and applications

5. Developers working in OSS will:

Ans: Will often find it easier to get good jobs because their work will be more open to inspection



Successful OSS Projects: Examples


1. The git version control system arose from needs of which project:

Ans: The Linux Kernel

2. Which of the following are OSS projects used to construct a graphical user interface (GUI)?

Ans:

  • Wayland

  • X Window System

  • KDE

  • GNOME

3. Which of the following are projects emanating from the Free Software Foundation?

Ans:

  • gcc

  • glibc

  • gdb

  • bash

4. Which of the following are widespread fully OSS Projects (Select all that apply):

Ans: None of the above

5. Which of the following document preparation systems are OSS projects (Select all that apply):

Ans:

  • TeX, LaTeX and related versions

  • LibreOffice


Week 2

Working in OSS Projects

1. When first getting involved in an OSS project, you should (Select all answers that apply):

Ans:

  • Start by helping test and report results

  • Consider what it is you would like to work on, either because it is needed by you, or it just interests you

2. When working on an OSS project, the best strategy is to:

Ans: Submit changes one at a time in a sequential manner, even if the full change will not do much until the entire patch series is incorporated

3. When there is someone in the project community that gets abusive or just difficult to deal with, you should (Select all answers that apply):

Ans:

  • Actually read what they are saying; even if phrased in a nasty manner, the points might need addressing, and you can respond to them calmly

  • Let established community members moderate the conflict

4. You have worked hard on implementing a new feature for an OSS project and submitted your work. A senior maintainer liked you ideas, but ignored your implementation and substituted their own new one to the same end. You should:

Ans: If the other implementation is successful at achieving its purpose, you should accept the result gratefully (after registering your displeasure that rather than reviewing and modifying your work, it was abandoned), and contribute to improving the new implementation as needed

5. On a project mailing list, someone inserts an irrelevant political, religious, or philosophical comment into an otherwise technical discussion and this is at least mildly offensive to you. A good and proper response could be (Select all that apply):

Ans:

  • Politely ask the poster to not make such comments. If they counter with more and stronger statements, ask any discussion moderators to quiet the issue offline if needed.

  • Ignore the comment and just answer the technical issues



Continuous Integration

1. Continuous Integration (Select all answers that apply):

Ans:

  • Speeds up the development process, as builds and tests are fully automated

  • Can speed development, as wrong paths can be discovered before they are pursued for a long time

  • Minimizes regression bugs, since thorough testing is done at every stage before release (i.e. continuously)

  • Can put a strain on developers who have to submit changes constantly

  • Can be costly to set up, as it requires a server and staff and training developers to use properly

2. What is the correct order of the Continuous Integration process stages?

Ans: Integration, Delivery and Deployment

3. Which statement is true?

Ans: Use of Continuous Integration and revision control methods are independent, but are usually employed together

4. The Linux Kernel Continuous Integration Project was initiated by:

Ans: Linaro

5. There are many tooling suites used for Continuous Integration. The most widely used one is:

Ans: Jenkins



OSS Licensing and Legal Issues

1. What are some considerations that go into OSS license selection (Select all answers that apply)?

Ans:

  • Should all modifications be public (restrictive vs permissive)

  • Policy on patents

2. Which of the following is a "copyleft" license?

Ans: GPL

3. FUD stands for:

Ans: Fear, Uncertainty and Doubt

4. Select the true statement:

Ans: OSS and Closed Source Software can co-exist in a product, but careful analysis should be done to make sure proper boundaries are respected and enforced

5. Select the true statement:

Ans: Use of OSS has no predetermined effect on legal costs. It can lower them, since proper license enforcement can be built-in early, or it can raise them by having more people pick at the code if attribution has been sloppy



Week 3

Leadership vs. Control and Why Projects Fail

1. The abbreviation BDFL stands for:

Ans: The abbreviation BDFL stands for:

2. The job of a mentor includes:

Ans:

  • Teaching contributors how to handle criticism, as well as how to give constructive criticism

  • Finding ways to empower people to give their maximum contribution

  • Training new project contributors in how to submit their work successfully in the right form

3. If a project fails in the sense that it stops moving forward, it is likely because (Select all answers that may apply):

Ans:

  • There is insufficient interest in the wider community of developers

  • There are not enough developers contributing

  • Leadership is poor

4. Which statement is true?

Ans: A project should have a clear license to begin with. It may possibly make a change later if it really needs to, but that is often non-trivial if there are quite a few contributors

5. Most open source projects fail in the sense that they stagnate and fade away. Is this bad?

Ans: It is not bad. Many seeds are planted and only some bloom, and it is difficult to predict which ones. It is always good to encourage a lot of new ideas and methods, and let them compete until the winners emerge.



Respecting and Encouraging Diversity in OSS

1. OSS projects should explicitly encourage diversity with respect to (Select all answers that apply):

Ans:

  • Sex and gender identity

  • National origin and language

  • Race

2. The majority of OSS projects carry out their discussions in English. Therefore (Select all answers that apply):

Ans: One should always speak as clearly as possible, and while not being dull, think about the audience and what they will be familiar with

3. With respect to criticism, an OSS contributor and reviewer should (Select all answers that apply):

Ans:

  • Answer thoughtfully and point out where one agrees or disagrees, where changes are accepted or not.

  • Not hold back, it is important to have open and forthright discussion

4. Some one on an OSS mailing list introduces a political aside and perhaps a preference during a technical discussion. Appropriate responses include (Select all correct answers):

Ans:

  • Ignore the point and just address the technical issues as needed.

  • Acknowledge the issue but briefly without putting down anyone with differing opinions. Avoid amplifying

5. You propose a new way of doing something, or adding a new feature. Another contributor points out this idea was reject previously. You should (Select all answers that apply):

Ans:

  • Study the previous discussion and see whether it applies, including whether or not differences between your ideas and the old ones were not seen

  • Ask whether or not technical abilities have evolved to the point where something that was not feasible can be done today

  • Ask whether the need for this feature has grown; the earlier discussion may have been premature



GitHub and Other Hosting Providers

1. Select the correct statement. GitHub:

Ans: Is a private company acquired by Microsoft in 2018

2. Sites that offer services similar to GitHub include (select all that apply):

Ans:

  • GitLab

  • GitKraken

  • Launchpad

3. When using a GitHub public repository:

Ans: Anyone on the Internet can download the data, but only authorized collaborators can upload information and modifications

4. To use Git, you:

Ans: Be on any operating system and version that has Git installed, and almost all do

5. To use GitHub and the other sites that provide repository hosting:

Ans: You can work from either a graphical interface or a command line



Linux Tools for Developers

Week 1

Essential Command Line Tools

1. Which command will list all files under the current directory with a .cfg extension, and then delete them?

Ans: find . -name "*.cfg" -exec rm {} ';'

2. Which command will list all files and directories on the system with cfg in their name?

Ans:ls –l(locate cfg)

3. Which command will find all files and directories in the system whose name ends with cfg?

Ans: locate -r "cfg$"

4. Which commands can change all occurrences within a file of the string boris to natasha (Select all answers that apply)?

Ans:

  • sed -e s:boris:natasha:g file

  • sed -e s/boris/natasha/g file

5. Which command will print out all lines beginning with "X" in all files in the current directory?

Ans: grep "^X" *



File and Text Manipulation Utilities

1. Which command is used to combine three files into a fourth file?

Ans: cat file1 file2 file3 > file4

2. Which of the following commands can be used to view the last 15 lines of a file (Select all answers that apply)?

Ans:

  • tail -15 some_file

  • tail -n15 some_file

3. Which of the following commands will replace all instances of the word "dog" with "pig" in the file named some_file and send the output to stdout (Select all answers that apply)?

Ans:

  • sed -e s:dog:pig:g some_file

  • sed -e s/dog/pig/g some_file

  • cat some_file | sed -e s/dog/pig/g

4. Which commands can be used to print the lines that contain the numbers 0–5 in a file (Select all answers that apply)?

Ans:

  • grep [0,1,2,3,4,5] filename

  • grep [0-5] filename

5. Which command is used to extract columns from a file to work on them later?

Ans: cut



Bash Scripting

1. Which of the following commands are equivalent (Select all answers that apply)?

Ans:

  • if [[ -f file.c ]] ; then cat file.c ; fi

  • if test -f file.c ; then cat file.c ; fi

  • if [ -f file.c ] ; then cat file.c ; fi

  • [[ -f file.c ]] && cat file.c

2. Which commands will list all files under the current directory ending in "

" (Select all answers that apply)?

Note: Output lists may differ in format.

Ans:

  • find . -name "*" -exec ls -l {} ';'

  • find . -name "*" -ls

  • find . -name "*" | xargs ls -l

  • ls -l $(find . -name "*")

3. Functions (subprograms) are useful in bash scripts because (Select all answers that apply):

Ans:

  • It is better not to have to call another script to get things done

  • They make things easier to read and comprehend

  • They eliminate the need to retype the same set of commands more than once

4. How would you get the value of a variable named VAR into a script?

Ans: read VAR

5. Select the correct statement:

Ans: A bash function must be placed before it is used in a script


Week 2

Files and Filesystems

1. Which statement is correct?

Ans: In Linux, file types are rarely determined by extension letters

2. If the first character in the long file listing is a "-", the listed object is a:

Ans: Normal File

3. If the first character in the long file listing is an "s", the listed object is a:

Ans: Unix Domain Socket

4. Which of the following commands are equivalent (Select all answers that apply):

Ans:

  • chown donald.ducks file

  • chown donald file ; chgrp ducks file

  • chown donald:ducks file

5. Which command will give all users the right to look at a file, but give only the owner the right to change it or execute it:

Ans: chmod 744 some_file



Linux Filesystems

1. Which of the following are journaling filesystems (Select all answers that apply):

Ans:

  • btrfs

  • ext4

  • XFS

2. For a filesystem to be mounted at boot:

Ans: It must be listed in /etc/fstab

3. When mounting a filesystem, it may be specified by any of the following methods (Select all answers that apply):

Ans:

  • Device node

  • UUID

  • Label

4. LVM stands for:

Ans: Logical Volume Management

5. Loopback filesystems (Select all answers that apply):

Ans:

  • Have slower performance than just having a native filesystem

  • Can be useful for testing filesystem features



Week 3

Building RPM and Debian Packages

1. Use of a package management system (Select all true statements):

Ans: Simplifies upgrade and update of individual software packages, as well as the system

2. Which of the following distributions use the RPM package management system (Select all answers that apply)?

Ans:

  • SUSE

  • Red Hat

  • Fedora

  • CentOS

3. Which of the following distributions use the APT (dpkg) package management system (Select all answers that apply)?

Ans:

  • Linux Mint

  • Ubuntu

  • Debian

4. With RPM, all information to configure, compile and install is contained in:

Ans: The spec file

5. Which of the following statements are true (Select all answers that apply)?

Ans:

  • The source package contains one file in RPM-based systems

  • The source package contains multiple files in Debian-based systems


Compiling, Linking and Libraries

1. GCC stands for:

Ans: GNU Compiler Collection

2. A good choice of compiler options for day-to-day use would be:

Ans: gcc -O2 -Wall -pedantic program.c

3. Why might you choose to link your program statically, rather than use a shared library version?

Ans: The static program will not use new versions of shared libraries as they become available, and thus may avoid breakage and bugs

4. To find the shared libraries used by /usr/bin/cp you can do (Select all answers that apply):

Ans:

  • ldd $(which cp)

  • ldd /usr/bin/cp

5. Which statements are true (Select all answers that apply):

Ans:

  • Use of shared libraries can cause bugs because the application may conflict with the new library version

  • Applications can load faster when using shared libraries

  • Use of shared libraries saves memory

  • Use of shared libraries enables applications to stay up to date with new library features without being recompiled



Java Installation and Environment

1. Which of the following statements are true (Select all answers that apply)?

Ans:

  • Java programs developed on other systems can be expected to run without modification on Linux

  • There are a number of choices which can be used for the Java implementation on Linux machines, and one can switch between them

  • The biggest problem in porting Java code to Linux is often fear

2. Which utility can be used to select the default Java Implementation on a Linux system?

Ans: alternatives

3. Which commands will show you information about which version of Java you are running (Select all answers that apply):

Ans:

  • (which java)

  • java -version

4. Which of the following are Integrated Development Environments that can be used for Java on Linux (Select all answers that apply)?

Ans:

  • NetBeans

  • Eclipse

5. If you are experienced in using Eclipse on another operating system, when moving to Linux:

Ans: The interface and functioning should be almost the same and have little or no learning curve required



  1   2   3   4   5   6   7   8   9   ...   39


написать администратору сайта