├── .gitignore ├── Doth's Edited section: USB Trouble shooting PC and MAC ├── Practice Final Markdown ├── Doth's Final Edit for USB(Pc, Mac,Troubleshooting) └── Readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /Doth's Edited section: USB Trouble shooting PC and MAC: -------------------------------------------------------------------------------- 1 | ### Booting (Mac) from an external USB device 2 | + 3 | + APPLE iOS MAC USER 4 | + 5 | + You can boot using an external flash drive USB using Startup Manager. 6 | + 7 | +* Begin by restarting your computer by clicking the restart option with the mouse or by simply pressing the power button. 8 | + 9 | +* Right when the computer begins to boot up and a sound is heard, (usually before the the logo appears) immediately press and hold the Option (⌥) key, until the Startup Manager appears. 10 | + 11 | +Startup Manager will scan and list connected drives and volumes that can be booted from. 12 | + 13 | +* Select the volume you want by using the mouse or arrow keys on the keyboard. 14 | + 15 | +* Use the mouse to select or press the return key to select which to boot your Mac from the selected volume. 16 | + 17 | + You should now be able to boot from external flash drive USB 18 | + 19 | + 20 | +Another way to boot your external flash drive USB while the computer is ON, is to use what is called System Preference. 21 | + 22 | +* Begin by searching and opening the the System Preferences application in the Dock. 23 | + 24 | +* Click the Startup Disk pane and you will see all the disk icons available. 25 | + 26 | +* Select the appropriate device or system you wish to use to boot with. 27 | + 28 | +* Now restart the computer by selecting restart or by pressing the power button and then power it back on. 29 | + 30 | + You should now be able to boot the external flash drive USB. 31 | + 32 | +**References** 33 | +"[How to start up Mac from bootable media](http://www.idownloadblog.com/2015/09/14/how-to-start-up-mac-from-bootable-media/)" 34 | + 35 | +### Booting (PC) from an external USB device 36 | + 37 | +* Begin by inserting the flash drive USB to a USB port. 38 | + 39 | +* Restart the computer (if on) by choosing to restart using the mouse, or by simply pressing the power button. 40 | + 41 | +* Power on the computer back on (if off). While the computer is beginning to boot up, you will need to press the Boot Menu key to load the Boot Menu. On many computers this is the F12 key, or one of the other F row keys. 42 | + 43 | +The Boot Menu should now appear. Look for anything regarding booting via USB or removable devices. 44 | + 45 | +* Use the arrow keys to highlight the desired USB or removable device and press enter to select. 46 | + 47 | +The computer should now boot via flash drive USB. 48 | + 49 | + 50 | +If nothing happens, or it did not work, you may need to enter the BIOS to configure the settings to see the boot menu. 51 | + 52 | +See USB booting issues. 53 | + 54 | + 55 | +### USB Booting Issues 56 | + 57 | +USB Booting Issues 58 | + 59 | +Did you have an issue when your PC did not boot the external flash drive USB even after going to Bios and selecting appropriate device? Did an Error message popped up saying something along the lines of "device is not found"? What do you do? 60 | + 61 | +After you install what ever that it is you want on your external flash drive USB you may find out that you are finding some trouble getting it to work. This means something needs to be configured in the BIOS to allow the external flash drive USB to be recognized and booted. Once this is complete, your external hard drive USB device should now be able to run and work. 62 | + 63 | +Some computers boot immediately from the internal hard drive by default, which ignores any bootable devices unless it is instructed to do otherwise. Some computers may use UEFI motherboards instead of the tradional BIOS. This all depends on the operating system, as it may support either UEFI or BIOS. 64 | + 65 | +UEFI motherboards support what is called legacy boot, which allows the computer to boot external devices instead of the internal default. 66 | + 67 | +Here are the steps to to configure UEFI/Legacy Boot: 68 | + 69 | +* Begin by inserting the Flash drive USB to a USB port. 70 | + 71 | +* Restart the computer by choosing to restart using the mouse, or by simply pressing the power button on the keyboard. 72 | + 73 | +* While the computer is beginning to boot up, continuously press the F12 key until the Boot Menu comes up. 74 | + 75 | +If nothing happens, or it didn't work, you may need to enter the BIOS and configure the settings to see the boot menu. 76 | + 77 | +* Once again, you may need to restart the computer. THIS time, instead of pressing the F12, you'll want to press the F1 Key. 78 | +This will allow you to enter the BIOS. 79 | + 80 | +You'll want to look for anything regarding UEFI/Legacy Boot. 81 | + 82 | +* Once you find that, change the settings to enable or on. If theres and option for both, you may want to set that as well. (otherwise you'd have to change the setting back to what it was, in order to boot by default the internal hard drive (SSD)) 83 | + 84 | +* Then after you do that you'll have to change the priority. Look for anything regarding the Priority and set or enable the settings to Legacy first. This will allow the external flash drive to boot first instead of the default internal hard drive (SDD) 85 | + 86 | +* Exit the menu and restart the computer either by choosing the restart options, or by powering off using the power button. 87 | + 88 | +You should now be able to boot via external flash drive USB. 89 | + 90 | +**References** 91 | +"[USB Troubleshooting](https://www.pcworld.com/article/3057176/hardware/the-hidden-challenges-of-booting-from-a-usb-flash-drive.html/)" 92 | + 93 | -------------------------------------------------------------------------------- /Practice Final Markdown: -------------------------------------------------------------------------------- 1 | --- 2 | Title: "Final Project" 3 | Instructor: Matthew 4 | Date: 2017-12-06 5 | Subject: "CSCI 2461-70 Fall 2017" 6 | Tags: [Attendance, Journal-Week, UNIX-History, AbantOS] 7 | 8 | ... 9 | 10 | # Attendance 11 | 12 | These are my following attendance for this session: 13 | 14 | 1. 08/30/2017 15 | 2. 09/09/2017 16 | 3. 09/13/2017 17 | 4. 09/20/2017 18 | 5. 09/27/2017 19 | 6. 10/04/2017 20 | 7. 10/11/2017 21 | 8. 10/18/2017 22 | 9. 10/25/2017 23 | 10. 11/1/2017 24 | 11. 11/8/2017 25 | 12. 11/15/2017 26 | 13. 11/29/2017 27 | 14. 12/06/2017 28 | 29 | ## Journal-Week 30 | 31 | ## * Journal-Week 1 * 32 | 33 | How do I learn from Chapter 1: The Big Picture. Unit 1.1 Levels and Layers of Abraction in a Linux System. A layer or level is a classification of component 34 | that sites between the user and hardware. A Linux system has three main levels. These are hardware, kernel, and processes. Of sometimes called user space. 35 | The hardware is at the base. It includes processor (CPU), main memory (RAM), disks, and network ports. The next level up is kernel, which is the core of the 36 | operating system. The kernel is software that telling the CPU what to do. Inside the kernel, it contains system calls process management, memory management, 37 | and device drivers. The kernel also is the primary managing between the hardware and any running program. The upper level is processes and it is the one 38 | the kernel manages. Processes is the way user directly interacts with. There is a critical difference between the kernel and user process run. The kernel runs 39 | in kernel mode and the user processes run in user mode. Code running in kernel mode has unrestricted access the processor and main memory. 40 | This is a powerful tool, but it can easily crash the entire system. User mode restrict access to a subset of memory and safe CPU operation. 41 | Unit 1.2 Hardware: Understanding Main Memory. I learn that main memory is the most important part the hardware on the computer. Main memory is a bunch area 42 | for 0s and 1s. 0s and 1s refers as a bit. All input and output from devices flow through main memory, also as a bunch of bits. Unit 1.3 The Kernel. 43 | I learn that the kernel is in charge of managing tasks in four general system areas. These areas are Processes, Memory, Device drivers, and System calls/Support. 44 | The duty of each of them as follow. Processes is the way the kernel is responsible for determining which processes are allow to use the CPU. Memory is the way 45 | the kernel determines what can be shared between process, and what is free. Drive drivers is the kernel acts as an interface between the hardware disk and 46 | processes. System calls and support is the processes uses to communicate with the kernel. Unit 1.3.1 Process Management. From my understanding, 47 | process management describes the starting, pausing, resuming, and terminating or processes. Many processes may be able to use the CPU, but only one process may 48 | actually use the CPU at any given time. For example, each process uses the CPU for a small fraction of a second, then pauses, then another process takes a turn 49 | and so on. Unit 1.3.2 Memory Management. I learn that the kernel has to manage the memory during a context switch, which it has a difficult job of memory 50 | management. These tasks perform as the following. The kernel must has its own private area in memory that the user cannot access. Each user process needs 51 | its own section of memory. One user process may not access the private memory of another process. User processes can share memory. Come memory in user processes 52 | can be read-only. However, the system can use more memory than is physically present by using disk space as auxiliary. Unit 1.3.3 Device Drivers and 53 | Management. I learn that a device is typically accessible only in kernel mode because improver access could crash the machine. Therefore, devices have 54 | traditionally been part of the kernel, and they strive to present a uniform interface to user process in order to simplify the software developer’s job. 55 | Unit 1.3.4 System Calls and Support. I learn that system calls perform specific tasks that user process alone cannot do well or at all. Fork () and exec () are 56 | the two system calls. Fork () is when a process calls fork (), the kernel creates a nearly identical copy of the process. Exec () is when a process calls 57 | exec (program), the kernel starts program, replacing the current process. Therefore, all users processes on Linux system start as a result of fork (), exec () 58 | to start new program. Unit 1.4 User Space. I learn that user space refers to the memory for the entire collection of running processes. There is a rudimentary 59 | service level or layer structure that the user processes represent. The bottom level tends to consist of small components that perform single uncomplicated 60 | tasks. The middle level has larger components such as mail, print, and database services. Finally, components at the top level perform complicated tasks that 61 | the user often controls directly. Unit 1.5 Users. I learn that a user is an entity that can process and own files. A user is associated with a username. 62 | A username can be named as billyjoe. Therefore, every user-space has a user own and runs as the owner. A user can modify of its own process, but it cannot 63 | mess up or interfere with other’s user processes. The following commands are the one that we learned from journal week 1: * cat* command outputs the contents of one or more files. 64 | ls command lists the contents of a directory. cp command uses to copy files. mv command is similar as cp but it can renames a file. touch command uses to create a file. 65 | rm command uses to delete or a remove a file. echo command prints its arguments to the standard output. cd command changes the shell’s current working directory. 66 | 67 | ## * Journal-Week 2 * 68 | -------------------------------------------------------------------------------- /Doth's Final Edit for USB(Pc, Mac,Troubleshooting): -------------------------------------------------------------------------------- 1 | --- 2 | title: "AbantOS Linux Users Guide (Elive/Debian)" 3 | author: [See Credits] 4 | date: 2017-11-05 5 | subject: "CSCI 2461-70/2482-40 Fall 2017 Final Project" 6 | tags: [AbantOS, Elive, Linux, Incident Handling, Final Project] 7 | titlepage: true 8 | titlpage-color: "D8DE2C" 9 | titlepage-text-color: "5F5F5F" 10 | abstract: "AbantOS Linux, based on Elive/Debian with the Englightenment Window Manager/GUI. Created by and in support of the Fall 2017 Saint Paul College CSCI 2461-70 Computer Networking 3 - Linux, and 2482-40 Incident Handling & Disaster Recovery classes. " 11 | ... 12 | 13 | # Collaborative 2461-70/2482-40 Fall 2017 Final Project 14 | 15 | ## Back Story: Build Your Own Linux 16 | 17 | During Week 10 of CSCI 2461-70 and CSCI 2482-40, after significant discussion all students enrolled in these classes unanimiously decided to join efforts and chose as a Collaborative Class Final Project **building their own Specialized Linux distribution** based on Debian Linux and the Elive project. CSI 2461-70 is focusing on educational components of Linux, and CSCI 2482-40 is focusing on Incident Handling and Disaster Recovery components. 18 | 19 | This document serves as a Users Guide to the 2482-40 and 2461-70 classes and associated tools, techniques and processes. 20 | 21 | ## Project Name: AbantOS Linux 22 | 23 | In the African Bantu group Abantos means "Belongs to Human Beings." 24 | 25 | AbantOS Linux is based on and created in collaboration with Thanatermesis of the eLiveCD Project. 26 | 27 | The name AbantOS is partially an homage to Ubuntu Linux. 28 | 29 | ## Documentation Generation 30 | 31 | This document uses the [Eisvogel.tex Template](https://github.com/Wandmalfarbe/pandoc-latex-template) and Pandoc, using a similar method to [OWASP's Top 10](https://github.com/OWASP/Top10/tree/master/2017) [method](https://github.com/OWASP/Top10/blob/master/2017/generate_document.sh) 32 | 33 | ~~~shell 34 | $ pandoc AbantOS-Elive-UsersGuide-17319-835.md -o ./AbantOS-Elive-UsersGuide-17319-835.pdf --from markdown+multiline_tables --template eisvogel.tex --listings --toc 35 | ~~~ 36 | 37 | ## Copyright & License 38 | 39 | 40 | This work is licensed [Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 41 | 42 | All contributors hold their original Copyright 2017. 43 | 44 | ![Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](AbantOS-Elive-UsersGuide-17319-CC-BY-SA-v4-Intl-88x31.png) 45 | 46 | 47 | 48 | # Introduction 49 | 50 | ## Social Dynamics of Debian 51 | 52 | * The key points to remember in considering Debianos social dynamics as applied to becoming a package maintainer are these: 53 | 54 | - Debian is a volunteer-powered project, and self-motivation and friendly cooperation are crucial. 55 | - Debianos development is consistently evolving, and maintainers must adapt along with it. This adaptation must be self-driven; you canot rely on others to bring you along. 56 | 57 | ## Programs Needed for Development 58 | 59 | Though many if not all packages necessary for development should come installed with the base Debian installation, itos good to check they are present with *aptitude show package* or *dpkg -s package*. The most important package to make sure is installed is *build-essential*. It should pull in other packages that are necessary for the build environment if theyore not already installed. 60 | 61 | Other packages are some measure of helpful and/or necessary for building particular packages down the road. Some are particular compilers for specific languages (i.e. *gfortran* or *gpc*) or packages for scripting languages themselves (i.e. *perl* and *python*). Others make parts of the process easier (such as the *debhelper/dh-make* packages or the *fakeroot* tool) or allow checking for errors after the build (*lintian*). The full range of additional build packages listed should be installed and understood before proceeding. 62 | 63 | ## Documentation needed for development 64 | 65 | This section of chapter 1 includes the debian-policy which is the explanations of the structures and contents of the Debian archive and several OS design issues. It also includes requirements that each package must satisfy to be included in the distribution. 66 | 67 | Important documentations that needed to be read for the development are auto tutorial and gnu-standards. If any errors or bugs occur, the maint-guide package can be used to report using report bug. 68 | 69 | ## Where to ask for help? 70 | 71 | There are a few documentations that will help solve any problems we encounter during installing packages or using any commands. Available sources to solve any issues are; websites such as lists.debian.org or wiki.debian.org/Teams. 72 | 73 | # Debian Package Building 74 | 75 | ## Workflow 76 | 77 | 1. Get a copy of the upstream software, usually in a compressed tar format. 78 | * package-version.tar.gz 79 | 2. Add Debian-specific packaging medications to the upstream program under the Debian directory, and create a non-native source package. 80 | 81 | * package_version.orig.tar.gz 82 | * package_version-revision.debian.tar.gz 83 | * package_version-revision.dsc 84 | 85 | 3. Build Debian binary packages, which are ordinary installable package files in .deb format. The character separating package and version change from hyphen to underscore. As the following command. 86 | 87 | * package_version-revision_arch.deb 88 | 89 | ## Import Upstream 90 | 91 | 92 | 1. First, create the first version of a package, outside of Git. Once it done, you can import the package using the import-dsc command. 93 | 94 | ~~~shell 95 | $ gbp import-dsc /path/to/package_0.1-1.dsc 96 | ~~~ 97 | 98 | 2. This will give output of its progress and make a few commits as well as have some new files and directories. 99 | 100 | ~~~shell 101 | $ ls 102 | package/ 103 | package_0.1-1.orig.tar.gz 104 | ~~~~ 105 | 106 | 3. git-buildpackage command 107 | 108 | * Imported the package into the upstream branch 109 | * This has then been tagged upstream/0.1, which represent package's number 110 | * Imported debian/directory into master and upstream's files 111 | * Tagged the last commit as debian/0.1-1 as it finished package. 112 | 113 | When there is a new version upstream, you could use the following steps to update to the latest version of upstream version. 114 | 115 | $ gbp import-orig -uscan 116 | $ gbp import-orig /path/to/new-upstream.tar.gz -u 0.2 117 | 118 | *if the upstream tarball is already exist in the form of packagename_version.orgi.tar.gz, then the -u option is not required. 119 | 120 | 121 | ## Choosing your program 122 | 123 | The steps to follow after choosing a package to create and in order to check if the package is already in the distribution archive are; the aptitude command, the debian packages web page and the debian package tracker web page. Debian already has packages in the Debian archive which is much larger than that of contributors with upload rights. If you are able to adopt the package, get the sources something like apt-get source but if you are installing new packages in Debian follow the steps below: 124 | 125 | 1. First step is to confirm that the program works. 126 | 2. Second, Make sure no one is working on the package. If no one is working on it, file an ITP bug report to the wnpp pseudo-package using report bug. If someone else is already working on it, contact them if you feel you need to. 127 | 3. Third, the software must have a license. 128 | 4. Fourth, the program should not introduce security and maintenance concerns into the Debian system. The program should be well documented, should not run setuid root and should not be a daemon. 129 | 130 | As a new maintainer, you are encouraged to create simple packages, intermediate complexity packages and high complexity packages. Packaging a high complexity packages requires more knowledge than it takes to build a simple or intermediate packages. 131 | 132 | ## Get the program, and try it out. 133 | 134 | There are a few steps mentioned on this section to get the package and try it out. 135 | 136 | 1. First step is to find and download the original source code. 137 | 2. Second, if your package program comes in tar+gzip format with the extension .tar.gz, format with the extension .tar .bz2 or tar + xz format , it usually contain a directory called package-version with all the sources inside. 138 | 3. Third, if your program comes as some other sort of archive, you should unpack it with the appropriate tools and repack it. 139 | 140 | ## Simple build systems 141 | 142 | 1. Simple programs comes with a Makefile which can be compiled by invoking make. 143 | 2. Compile and run to make sure your program works so it wonot break something else while its installing or running. 144 | 3. You can run make clean to clean up the build directory. 145 | 4. You can use the make uninstall to remove all the installed files. 146 | 147 | ## Popular Portable Build Systems 148 | 149 | Free software is often written in C or C++, and these often use portable build systems to make them portable across platforms. *Autotools* is one example of such a build system; it comprises *Autoconf, Automake, Libtool, and Gettext*. (Cmake is an alternative build system.) 150 | 151 | With these build tools, they must be used to generate the Makefile and other required source files first. The program can then be built using *make; make install*. 152 | 153 | The Autotools workflow generally proceeds as: 154 | 155 | 1. Upstream runs autoreconf -i -f in the source directory and distributes the generated files along with the source. 156 | 2. The user obtains the distributed source and runs ./configure && make in the source directory to compile the program in an executable source binary. 157 | 158 | ## Linux Distributions 159 | 160 | ### Ubuntu and Debian: How is Ubuntu related to Linux and Debian? 161 | 162 | Ubuntu is a Linux distro that starts with the breadth of Debian and adds regular releases (every six months) commitment to security updated with nine months of support for every release. 163 | 164 | Ubuntu builds on the foundations of Debian's architecture and infrastructure but there are important differences such as, Ubuntu has its own user interface, a separate developer community and different release process. 165 | Debian is the rock upon which Ubuntu is built. It is a volunteer project that has developed and maintained a GNV/Linux Operating System of the same name over a decade. 166 | Since its launch, the Debian project has grown to comprise more than 1,000 members with official developers status, alongside many more volunteers and contributors. 167 | Debian is a free operating system. An operating system is the set of basic programs and utilities that make your computer run. At the core of operating system is a Kernel. The Kernel is the most fundamental program on the computer and does all the basic housekeeping and lets you start other programs. Debian system use Linux Kernel or the BSD Kernel. Today Debian encompasses over 20,000 packages of free open source applications and documentation. 168 | 169 | **About Ubuntu** 170 | 171 | Ubuntu is an Open-source project that develops and maintains a cross-platform, open-source operating system based on Debian. Upgrades are released every six months and support is granted by Canonical for up to five years. Canonical also provides commercial support for Ubuntu deployments across the desktop, the server and the cloud. 172 | 173 | **How does Debian and Ubuntu fit together?** 174 | 175 | Ubuntu is proud to be based on Debian. Ubuntu developers want to maintain a healthy and collaborative relationship with Debian developers. Ubuntu has brought new users and developers to the GNU/Linux community 176 | 177 | **How does Ubuntu differ from Debian?** 178 | 179 | Ubuntu has a narrow focus--community based while Debian is Universal. 180 | 181 | Ubuntu has its own community government structure somehow inspired by Debian's but different. (MOTU) The masters of the universe were team formed to look after the creation of the universe component. 182 | 183 | **Debian for Ubuntu developers** 184 | 185 | Ubuntu benefits from a strong Debian and Debian benefits from a strong Ubuntu. 186 | 187 | Every Debian developer is also an Ubuntu developer because one way to contribute is to contribute to Debian 188 | Ubuntu is Debian based. 189 | 190 | *Edubuntu* 191 | 192 | A complete Linux based operating System targeted for primary and secondary education. It is freely available with community based support. 193 | The Edubuntu community is built on the ideas enshrined in the Edubuntu manifesto: that software, especially for education should be available free of charge and that software tools should be usable by people in their local language and despite any disabilities. [14] 194 | 195 | *Kubuntu* 196 | 197 | An official derivative of Ubuntu Linux using ICDE instead of the GNOME or unity interfaces used by default in Ubuntu. 198 | 199 | ### RedHat/Fedora Based 200 | 201 | ### ArchLinux Based 202 | 203 | ## Linux Window Managers 204 | 205 | ### GNOME 206 | 207 | GNOME (GNU Network Object Model Environment, pronounced as NOHM) is a graphical user interface (GUI) and set of computer Desktop applications for users of the Linux computer operating system. Its intended to make a Linux operating system easy to use for non-programmers and generally corresponds to the windows desktop interface and its most common applications. (Wikipedia) 208 | 209 | ### Englightenment 210 | 211 | **AbantOS** uses the Enlightenment Window Manager 212 | 213 | ## Elive background/history 214 | 215 | ## Elive purpose/objectives 216 | 217 | ## Teaching Linux Objectives 218 | 219 | ## Teaching Linux Scope 220 | 221 | ## Finding Help 222 | 223 | ```shell 224 | >>> help 225 | ``` 226 | 227 | # Installation of Elive 228 | 229 | ## Downloading Elive from [EliveCD.org](www.elivecd.org) 230 | 231 | * The latest release of Elive can be downloaded from www.elivecd.org. The latest Beta release is the recommended version to download. 232 | * Navigate to the Beta downloads by clicking Download, then Beta. 233 | * For writing Elive to a USB drive, click the button labeled Elive Beta - USB. This is an Elive image specifically for writing to USBs. A window will open asking if you want to open or save the .img file. Click Save File and your browser will download the file. 234 | * When the download finishes, open the folder to which it was saved and take note of the file's location. 235 | 236 | ## Release notes at [EliveCD.org](http://www.elivecd.org/news/releases/beta/) 237 | 238 | The archive of release notes on the Beta releases of Elive can be found at http://www.elivecd.org/news/releases/beta/. Each entry contains many details on what features of Elive have been updated and improved in each release. 239 | 240 | ## Writing Elive to USB 241 | 242 | * The recommended USB drive for writing and using Elive is the SanDisk Extreme USB 3.0 32 GB flash drive. 243 | * If you are using Windows, you can write the Elive image to the USB using an image writer application. Elive suggests UsbWriter; other options include the application from Etcher.io or Win32DiskImager. 244 | * With any application, first plug your USB drive into an open USB port on your computer. Using the application, select the Elive image from the location you downloaded it to, then select the correct USB drive and write the image. 245 | * The written image will overwrite any other data contained on the USB drive. In some cases, the USB drive may need to be reformatted first before being able to write a new USB image (for instance, if a previous USB image was written to the drive). You can reformat the drive by right-clicking the drive in the Computer window or using Windows Disk Management. 246 | 247 | ## Booting Elive from the USB 248 | 249 | * Power on your computer with the USB with Elive written to it plugged in. When the initial boot screen of your computer appears, hold down the Boot Menu key to load the boot menu. On many computers this is the F12 key, or one of the other F row keys. A list of common boot menu keys for various manufacturers can be found at http://www.elivecd.org/ufaqs/how-to-tell-the-computer-to-boot-from-another-device/. 250 | * When the boot menu key appears, highlight the USB drive option and press Enter. 251 | * After Elive initiates, the first Elive menu asking the method of installation will appear. For running Elive from the USB, select Live sessions with Persistence. This method will allow you to run Elive direct from the USB without installing the system on your separate hardware, and Persistence will save your configurations of Elive from session to session. 252 | 253 | ### What is BIOS? 254 | 255 | BIOS stands for Basic Input Output System referred to as BIOS. It is a software stored on a small memory chip on the motherboard. It give the computer a set of instructions on how to perform some of the basic functions such as booting and keyboard control as well as configure the hardware in a computer including the hard drive, floppy drive, USB, optical drive, CPU, and memory. 256 | 257 | ### What is EFI and UEFI? 258 | 259 | ### What is a Master Boot Record? 260 | 261 | ### What is a GUID partition type? 262 | 263 | ### Booting (Mac) from an external USB device 264 | 265 | APPLE iOS MAC USER 266 | 267 | You can boot using an external flash drive USB using Startup Manager. 268 | 269 | * Begin by restarting your computer by clicking the restart option with the mouse or by simply pressing the power button. 270 | 271 | * Right when the computer begins to boot up and a sound is heard, (usually before the the logo appears) immediately press and hold the Option (⌥) key, until the Startup Manager appears. 272 | 273 | Startup Manager will scan and list connected drives and volumes that can be booted from. 274 | 275 | * Select the volume you want by using the mouse or arrow keys on the keyboard. 276 | 277 | * Use the mouse to select or press the return key to select which to boot your Mac from the selected volume. 278 | 279 | You should now be able to boot from external flash drive USB 280 | 281 | 282 | Another way to boot your external flash drive USB while the computer is ON, is to use what is called System Preference. 283 | 284 | * Begin by searching and opening the the System Preferences application in the Dock. 285 | 286 | * Click the Startup Disk pane and you will see all the disk icons available. 287 | 288 | * Select the appropriate device or system you wish to use to boot with. 289 | 290 | * Now restart the computer by selecting restart or by pressing the power button and then power it back on. 291 | 292 | You should now be able to boot the external flash drive USB. 293 | 294 | **References** 295 | "[How to start up Mac from bootable media](http://www.idownloadblog.com/2015/09/14/how-to-start-up-mac-from-bootable-media/)" 296 | 297 | ### Booting (PC) from an external USB device 298 | 299 | * Begin by inserting the flash drive USB to a USB port. 300 | 301 | * Restart the computer (if on) by choosing to restart using the mouse, or by simply pressing the power button. 302 | 303 | * Power on the computer back on (if off). While the computer is beginning to boot up, you will need to press the Boot Menu key to load the Boot Menu. On many computers this is the F12 key, or one of the other F row keys. 304 | 305 | The Boot Menu should now appear. Look for anything regarding booting via USB or removable devices. 306 | 307 | * Use the arrow keys to highlight the desired USB or removable device and press enter to select. 308 | 309 | The computer should now boot via flash drive USB. 310 | 311 | 312 | If nothing happens, or it did not work, you may need to enter the BIOS to configure the settings to see the boot menu. 313 | 314 | See USB booting issues. 315 | 316 | 317 | ### USB Booting Issues 318 | 319 | USB Booting Issues 320 | 321 | Did you have an issue when your PC did not boot the external flash drive USB even after going to Bios and selecting appropriate device? Did an Error message popped up saying something along the lines of "device is not found"? What do you do? 322 | 323 | After you install what ever that it is you want on your external flash drive USB you may find out that you are finding some trouble getting it to work. This means something needs to be configured in the BIOS to allow the external flash drive USB to be recognized and booted. Once this is complete, your external hard drive USB device should now be able to run and work. 324 | 325 | Some computers boot immediately from the internal hard drive by default, which ignores any bootable devices unless it is instructed to do otherwise. Some computers may use UEFI motherboards instead of the tradional BIOS. This all depends on the operating system, as it may support either UEFI or BIOS. 326 | 327 | UEFI motherboards support what is called legacy boot, which allows the computer to boot external devices instead of the internal default. 328 | 329 | Here are the steps to to configure UEFI/Legacy Boot: 330 | 331 | * Begin by inserting the Flash drive USB to a USB port. 332 | 333 | * Restart the computer by choosing to restart using the mouse, or by simply pressing the power button on the keyboard. 334 | 335 | * While the computer is beginning to boot up, continuously press the F12 key until the Boot Menu comes up. 336 | 337 | If nothing happens, or it didn't work, you may need to enter the BIOS and configure the settings to see the boot menu. 338 | 339 | * Once again, you may need to restart the computer. THIS time, instead of pressing the F12, you'll want to press the F1 Key. 340 | This will allow you to enter the BIOS. 341 | 342 | You'll want to look for anything regarding UEFI/Legacy Boot. 343 | 344 | * Once you find that, change the settings to enable or on. If theres and option for both, you may want to set that as well. (otherwise you'd have to change the setting back to what it was, in order to boot by default the internal hard drive (SSD)) 345 | 346 | * Then after you do that you'll have to change the priority. Look for anything regarding the Priority and set or enable the settings to Legacy first. This will allow the external flash drive to boot first instead of the default internal hard drive (SDD) 347 | 348 | * Exit the menu and restart the computer either by choosing the restart options, or by powering off using the power button. 349 | 350 | You should now be able to boot via external flash drive USB. 351 | 352 | **References** 353 | "[USB Troubleshooting](https://www.pcworld.com/article/3057176/hardware/the-hidden-challenges-of-booting-from-a-usb-flash-drive.html/)" 354 | 355 | ## Installing on hardware (or Live sessions w/ Persistence) 356 | 357 | ## Help with Installation 358 | 359 | ## Keeping Elive Up to Date 360 | 361 | ```shell 362 | >>> apug 363 | 364 | ``` 365 | 366 | ```shell 367 | >>> sudo apt-get dist-upgrade 368 | 369 | ``` 370 | 371 | # Graphics and Themes 372 | 373 | Elive utilizes the Enlightenment Window Manager. Enlightenment utilizes a set of core libraries called (EFL), created specifically for Enlightenment. EFL is being recognized for its forward thinking approaches as users are wanting more from their operating systems UI. 374 | 375 | ## Elive Tools 376 | 377 | [elive-tools](https://github.com/Elive/elive-tools) are a set of handy and useful tools by Elive, for specialty use in the [Elive project]() 378 | 379 | * audio-configurator 380 | - configure individual alsa cards 381 | * bkp (save states) 382 | * elivepaste (pastebin) 383 | * waitfor 384 | - waits on the shell for a process that terminates and exits, its pretty useful for do things like: $ waitfor rebuild-packages && rebuild-iso 385 | * user-manager 386 | * make-cookies-with-chocolate 387 | 388 | 389 | ## Enlightenment Foundation Linux (EFL) Components 390 | 391 | 1. **Evas** 392 | - Core scene graph and rendering 393 | 2. **Elina** 394 | - Data strucures and low level helpers 395 | 3. **Edje** 396 | - UI layout & animation data files for themes 397 | 4. **Eet** 398 | - Data (de)serialization and storage 399 | 5. **Ecore** 400 | - Core loop and system abstractions like x11 401 | 6. **Efreet** 402 | - Freedesktop.org standards handling 403 | 7. **Eldbus** 404 | - D-Bus glue and handling 405 | 8. **Embryo** 406 | - Tiny VM and compiler based on pawn 407 | 9. **Eeze** 408 | - Device enumeration and access library 409 | 10. **Emotion** 410 | - Video decode wrapping, glue and abstraction 411 | 11. **Ethumb** 412 | - Thumbnailing handler 413 | 12. **Ephysics** 414 | - Physics (bullet) wrapper and Evas glue 415 | 13. **EIO** 416 | - Asynchronus I/O handling 417 | 14. **Evas Generic Loaders** 418 | - Extra image loaders for complex image types 419 | 15. **Emotion Generic Players** 420 | - Extra video decoders (for vlc) 421 | 16. **Elementary** 422 | - Widgets and high level abstractions 423 | 424 | ## Customizing Your Elive/Enlightenment Theme 425 | 426 | Elive currently has three theme options available by default. 427 | 428 | 429 | 1. **Default Theme** 430 | 2. **Elive Light Theme** 431 | - A light theme 432 | 3. **Lucax Theme** 433 | - A dark theme 434 | 435 | ### Change Themes 436 | 437 | Right click on the desktop to bring up the menu, hover over Enlightenment to bring up enlightenment sub menu. Hover over about theme and click it, this will show you the current theme. Close the about theme and right click on the desktop again to bring up the menu. Hover over Settings, scroll down and hover over Theme, you will see the three options available. Right click on the Theme you want and wait for it to change, this may take a minute or two depending on the theme. Open windows and applications will lock up during the transition, this is normal. 438 | 439 | 440 | ### Change Wallpaper 441 | 442 | Right click on the desktop to bring up the menu. Hover over Settings and right click it. A settings window will appear. Right click on Wallpaper, the wallpaper settings will appear. Choose one the the wallpapers and click apply. 443 | 444 | ### Live / Animated Wallpapers 445 | 446 | There are two methods for doing this that I know of, here are both. 447 | 448 | 449 | #### Live Wallpaper: Method 1 450 | 451 | 452 | The first method is to download an HD Wallpaper in .gif format. You can download one here: Animated Wallpaper Sample gif. After you finish downloading your animated wallpaper you have to put it in the right directory open a Terminology terminal and navigate to /Downloads, or wherever you have your .gif wallpaper you downloaded. Now you have to move the wallpaper to the /usr/share/enlightenment/data/backgrounds/ . The command to move the file is: 453 | 454 | ~~~shell 455 | sudo mv "name of file without quotes.gif" /usr/share/enlightenment/data/backgrounds/ 456 | ~~~ 457 | 458 | Close the terminal and right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear and it will open the directory where you just moved your wallpaper. Choose your animated wallpaper and click apply. Close the wallpaper settings. 459 | 460 | NOTE: If you didn't see your wallpaper then your command may have been mistyped, don't forget to remove the quotes. 461 | 462 | 463 | #### Live Wallpaper: Method 2 464 | 465 | 466 | The second method is to download a HD wallpaper .gif and transfer it with the Thunar File Manager. Download your gif using the link above or any you choose in .gif format. Open the thunar file manager and from the home directory click downloads, or navigate to your .gif wallpaper. Open another thunar file manager window by clicking the icon in the dock again. Press (control) and (h) at the same time to show hidden files. Click .e and then e17, now click backgrounds. Drag and drop your animated wallpaper .gif from downloads to the backgrounds directory you just opened. After you transfer the wallpaper press (control) and (h) again to hide the config files. Close the file managers 467 | 468 | Right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear. In the top left click Personal, now you should see the wallpaper you transferred in the list below, click it. Now click apply and close the wallpaper settings. 469 | 470 | ## Advanced Customizations 471 | 472 | ### Settings/Look 473 | 474 | #### Application Theme 475 | 476 | #### Theme 477 | 478 | #### Colors 479 | 480 | #### Fonts 481 | 482 | #### Borders 483 | 484 | #### Ecomorph 485 | 486 | #### Transitions 487 | 488 | #### Scaling 489 | 490 | #### Startup 491 | 492 | ### Settings/Apps 493 | 494 | #### Personal Application Launchers 495 | 496 | #### Favorite Applications 497 | 498 | #### IBar Applications 499 | 500 | #### Screen Lock Applications 501 | 502 | #### Screen Unlock Applications 503 | 504 | #### Restart Applications 505 | 506 | #### Startup Applications 507 | 508 | #### Default Applications 509 | 510 | #### Desktop Environments 511 | 512 | 513 | ### Settings/Screen 514 | 515 | #### Virtual Desktops 516 | 517 | #### Screen Setup 518 | 519 | #### Screen Lock 520 | 521 | #### Blanking 522 | 523 | #### Backlight 524 | 525 | 526 | ### Settings/Windows 527 | 528 | #### Window Display 529 | 530 | #### Window Focus 531 | 532 | #### Window Geometry 533 | 534 | #### Window List Menu 535 | 536 | #### Window Remembers 537 | 538 | #### Window Process Management 539 | 540 | #### Windows Switcher 541 | 542 | ### Settings/Menus 543 | 544 | #### Menu Settings 545 | 546 | 547 | ## Elive Desktop Features 548 | 549 | ### Main Elive Menus 550 | 551 | ### Finding installed applications 552 | 553 | ### Changing appearances/preferences 554 | 555 | ### Restoring settings 556 | 557 | 558 | ## Elive Desktop Help Features 559 | 560 | 561 | # Installing/Removing applications 562 | 563 | ## Installing from the terminal (apt-get) 564 | 565 | ## Installing with a software package manager (i.e. Synaptic) 566 | 567 | ## Removing from the terminal 568 | 569 | ## Removing with a package manager 570 | 571 | ## Updating system and applications 572 | 573 | ## Help with Installation and Removal of Applications 574 | 575 | 576 | # Command references 577 | 578 | ## Whatever commands the class elects would be useful to include in a quick reference 579 | 580 | ## Where to get help 581 | 582 | ## From basic to advanced 583 | 584 | # Repository 585 | 586 | ## Creating Repositories 587 | 588 | ## Setup and Maintain 589 | 590 | There are various reasons for building a repository yourself. You might just have a few packages with local modifications that you want to make available to apt, you may want to run a local mirror with those packages used by several machines to save bandwidth, or you build packages yourself and want to test them prior to publication. 591 | 592 | ## Anatomy of a Repo 593 | 594 | A Debian repository contains several releases. Debian releases are named after characters from the "Toy Story" movies (wheezy, jessie, stretch, ...). The codenames have aliases, so called suites (stable, oldstable, testing, unstable). A release is divided in several components. In Debian these are named main, contrib, and non-free and indicate the licensing terms of the software they contain. A release also has packages for various architectures (amd64, i386, mips, powerpc, s390x, ...) as well as sources and architecture independent packages. 595 | 596 | * Root Directory = dists 597 | * Each release subdirectory contains a cryptographically signed Release file and a directory for each component. 598 | 599 | ## Repository Index File 600 | 601 | 1. dpkg-scanpackages 602 | 603 | ~~~shell 604 | $ dpkg-scansources dists/local/custom/source | gzip > dists/local/custom/source/Sources.gz 605 | ~~~ 606 | 607 | 2. dpkg-scansources 608 | ~~~shell 609 | $ dpkg-scanpackages dists/local/custom/binary-i586 | gzip > dists/local/custom/binary-i586/Packages.gz 610 | ~~~ 611 | 612 | ## Override File 613 | 614 | An override file can be optionally specified. If no override file exists/, dev/null must be provided as an explicit argument. 615 | 616 | ## Working with Repos 617 | 618 | Working with repositories may mean either of two different things: 619 | 620 | 1. You can use a repository with the apt family of programs (apt, apt-get, apt-cache, aptitude) to browse or install packages 621 | 622 | ~~~shell 623 | echo "deb http://ftp.debian.org/debian stable main contrib non-free" >> /etc/apt/sources.list && apt-get update 624 | ~~~ 625 | 626 | 2. You can set up a repository yourself and add, remove or replace packages in it. 627 | 628 | 629 | ## Repository References 630 | 631 | wiki.debian.org/DebianRepository 632 | wiki.debian.org/DebianRepository/Setup 633 | 634 | 635 | # Systems Administration & Configuration 636 | 637 | 1. Boot process and Troubleshooting 638 | 2. System Logging 639 | 3. Disk Management and File System Creation 640 | 4. Managing Linux Users and Groups 641 | 5. Linux Networking (setting up networking and config) 642 | 6. Process and Job Management 643 | 7. Creating, Viewing and Editing Text Files (Vi) 644 | 8. Installing and Updating Software Packages 645 | 9. Scheduling and Automating Future tasks 646 | 10. Network Storage and Management (NFS, SMB) 647 | 11. Service Configuration (DHCP, FTP, DNS, SSH, HTTP etc...) 648 | 12. Linux Shell Scripting 649 | 650 | ## User Management 651 | 652 | To maintain the privacy of users of the Linux system and manage their accounts and supervision, as well as track the problems they will go through, find the solutions to these problems, and inform users the changes, update, and upgrade the system. Even if there is a one user using the system it was always a challenge for the managing users. I will show you some tools and some tasks assigned to add the user to Linux system where you see adding and deleting accounts is an easy process for managing users. 653 | 654 | Before we talk about how to creating and deleting a user account I will talk about the most important text file(/etc/passwd) because is processing the all most and necessary details and information about all users in the Linux system. 655 | 656 | This file it is open to read only for users, and it is read and writable for root account. 657 | 658 | ### /etc/passwd file 659 | 660 | The /etc/passwd file containe only one separate line, limited by a colon (:) for each user account in the system, also it is stored the information for each user using the Linux system. Every time we add new user to the system all details and information for the new user will stored in the same file. 661 | 662 | root /h/jamal >>> sudo cat /etc/passwd 663 | 664 | jamal: x:1001:1001: jamal Ibrahim, 1,,:/home/jamal :/bin/bash 665 | 666 | tyler: x:1002:1002: tyler, 1,,:/home/tyler :/bin/bash 667 | 668 | awil: x:1003:1003: awil, 1,,:/home/awil :/bin/bash 669 | 670 | jacquie: x:1004:1004: jacquie, 1,,:/home/jacquie :/bin/bash 671 | 672 | matthew: x:1005:1005: matthew, 1,,:/home/matthew :/bin/bash 673 | 674 | to get depth in the file I will take the entry of my user name jamal. 675 | 676 | 677 | 678 | Jamal : x : 1001 : 1001 : jamal Ibrahim , 1 ,, : /home/jamal : /bin/bash 679 | 680 | {---1----}{---2---}{---3-----}{---4----}{---------------5---------------}{----------6------}{-------7-----} 681 | 682 | ### /etc/passwd fields 683 | 684 | 1. **Username field**: This field show the user account name; this user name must be used every time when we log in to the system. 685 | 2. **Password field**: Second field is the Password field, not showing the actual password though. The 'x' in this field show the password is encrypted and saved in the /etc/shadow file. 686 | 3. **UID field**: Every time when a user account is created, it is assigned with a user id or UID (UID for the user 'jamal' is 1001, in this case) and this field specifies the same. 687 | 4. **GID field**: Similar to the UID field, this field specifies which group the user belongs to, the group details being present in /etc/group file. 688 | 5. **Comment/Description/User Info field**: This field is the short comment/description/information of the user account. 689 | 6. **User Home Directory**: Every time the user sign in to the system, he is taken to his Home directory, where all his personal files reside. This field provides the absolute path to the user's home directory (/home/jamal in this case). 690 | 7. **Shell**: This field show, the user has access to the shell mentioned in this field (user 'jamal' has been given access to /bin/bash or simply bash shell). 691 | 692 | ## Adding new user accounts to Linux system 693 | 694 | # Package Management 695 | 696 | Elive is based on Debian, the same distribution flavor as Ubuntu, so we use .deb files for our packages and those files collectively live in a repository. 697 | 698 | ## Debian Package Management 699 | 700 | Debian Package Management details can be found in the [Debian Manuals](https://www.debian.org/doc/manuals/debian-reference/ch02.en.html) 701 | 702 | -------------------------------------------------------------------------------- 703 | package popcon size description 704 | --------- -------- ------ ------------- 705 | apt V:871, I:999 3647 Advanced Packaging Tool (APT), front-end for dpkg providing "http", "ftp", and "file" archive access methods (apt-get/apt-cache commands included) 706 | 707 | aptitude V:136, I:778 4415 interactive terminal-based package manager with aptitude(8) 708 | 709 | tasksel V:40, I:972 374 tool for selecting tasks for installation on the Debian system (front-end for APT) 710 | 711 | unattended-upgrades V:188, I:364 254 enhancement package for APT to enable automatic installation of security upgrades 712 | 713 | dselect V:4, I:59 2498 terminal-based package manager (previous standard, front-end for APT and other old access methods) 714 | 715 | dpkg V:932, I:999 6745 package management system for Debian 716 | 717 | synaptic V:70, I:453 7793 graphical package manager (GNOME front-end for APT) 718 | 719 | apt-utils V:391, I:997 1103 APT utility programs: 720 | 721 | apt-listchanges V:350, I:838 365 package change history notification tool 722 | 723 | apt-listbugs V:7, I:12 451 lists critical bugs before each APT installation 724 | 725 | apt-file V:13, I:77 82 APT package searching utility -- command-line interface 726 | 727 | apt-rdepends V:0, I:6 40 recursively lists package dependencies 728 | -------------------------------------------------------------------------------- 729 | Table: Debian package management (Manual), List of Debian package management tools 730 | 731 | Source: [Debian package management manual](https://www.debian.org/doc/manuals/debian-reference/ch02.en.html) and [Popularity Contest Stats](https://qa.debian.org/popcon.php?package=apt) 732 | 733 | ## Elive Packages 734 | 735 | In order to understand the components of the Elive repository here are a couple commands 736 | 737 | ### Listing Packages 738 | 739 | ```shell 740 | 741 | for package in $( dpkg -l | awk '{print $2}' ) ; 742 | do if apt-cache policy "$package" 2>/dev/null | grep -qs "repository.elivecd.org" ; 743 | then echo -e "${package%:*} \tis in Elive repos" ; 744 | fi ; 745 | done 746 | 747 | ``` 748 | 749 | ### Listing Package Count 750 | 751 | ```shell 752 | 753 | cat /var/lib/apt/lists/repository.elivecd.org_*Packages | grep "^Package:" | wc -l 754 | 755 | ``` 756 | 757 | ## Installing Packages 758 | 759 | ```shell 760 | 761 | sudo apt-get 762 | 763 | ``` 764 | 765 | 1. acptool: replacement of apmtool. For laptop users. 766 | 767 | 2. afflib- dpg- on-disk format for storing complete forensic information: sudo apt-get install afflib-dbg, allows files to be digitally signed, chain-of-custody and long-term file integrity. Allows disk images containing privacy sensitive material to be stored on the Internet. Posix stricpting (Linux coding). 768 | 769 | 3. balsa-dbg: get sudo apt-get install balsa-dbg. Mail client from GNOME desktop. Supports both POP3 and IMAP. 770 | 771 | 4. cython3-dbg: sudo apt-get install cython-dbg. Libraries built against versions of Python configured with pydebug. Allows python configuration. 772 | 773 | 5. /etcldibbler/client.conf w/new version. DHCPv6 clients: sudo apt-get install dibbler-client 774 | 775 | 6. sudo apt-get install DVd+rw-tools-dbp 776 | 777 | 7. sudo apt-get update 778 | 779 | 8. sudo apt-get install build-essential save files and execute. 780 | 781 | 9. sudo apt-get install enigma 782 | 783 | 784 | # Testers & Quality Assurance 785 | 786 | ## What are some patterns we should test? 787 | 788 | ## What steps should Testers & QA go through? 789 | 790 | 791 | # User Case Studies 792 | 793 | ## How are we going to use this? 794 | 795 | ## What are your biggest challenges to learning Linux? 796 | 797 | ## What tools and techniques are helpful to you? 798 | 799 | Talk to potential users! 800 | 801 | # Credits 802 | 803 | ## Contributors 804 | 805 | ### Jacquie Kerongo 806 | 807 | Project Lead and Troubleshooting 808 | How is Ubuntu related to Linux and Debian? 809 | 810 | ### Angela Griffin 811 | 812 | Package Management 813 | 814 | ### Jamal Ibrahim 815 | 816 | User Management 817 | 818 | ### Mohamed Mohamud 819 | 820 | Repository & Systems Administration 821 | 822 | ### Tyler Cobb 823 | 824 | Scribe 825 | Quality Assurance / Testing 826 | 827 | ### Rodas Mekonnen 828 | 829 | Cat Hearding 830 | Editing 831 | 832 | ### Roxanne Thao 833 | 834 | Package Management 835 | 836 | ### Doung Doth 837 | 838 | USB Booting (Mac) 839 | 840 | ### Blia Vue 841 | 842 | QA: Debian Package Management Workflow 843 | 844 | ## Editors 845 | 846 | ### Kautz, D.E. 847 | 848 | Project Editor 849 | Original Draft (2017-10-30) 850 | Installation of Elive 851 | 852 | ### Harmon, M.J. 853 | 854 | Formatting 855 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # AbantOS (Elive/Debian Custom Distribution) 2 | 3 | A collaborative 2461-70/2482-40 Fall 2017 Final Project 4 | 5 | ## Back Story: Build Your Own Linux 6 | 7 | During Week 10 of CSCI 2461-70 and CSCI 2482-40, after significant discussion all students enrolled in these classes unanimiously decided to join efforts and chose as a Collaborative Class Final Project **building their own Specialized Linux distribution** based on Debian Linux and the Elive project. CSCI 2461-70 is focusing on educational components of Linux, and CSCI 2482-40 is focusing on Incident Handling and Disaster Recovery components. 8 | 9 | This document serves as a Users Guide to the 2482-40 and 2461-70 classes and associated tools, techniques and processes. 10 | 11 | ## Project Name: AbantOS Linux 12 | 13 | In the African Bantus belong to Bantu group, 'Abanto' in my dilect laguage 'kisii' Abantos means "Belongs to Human Beings/man" 14 | 15 | AbantOS Linux is based on and created in collaboration with Thanatermesis of the eLiveCD Project. 16 | 17 | The name AbantOS is partially an homage to Ubuntu Linux. 18 | 19 | ## Documentation Generation 20 | 21 | This document uses the [Eisvogel.tex Template](https://github.com/Wandmalfarbe/pandoc-latex-template) and Pandoc, using a similar method to [OWASP's Top 10](https://github.com/OWASP/Top10/tree/master/2017) [method](https://github.com/OWASP/Top10/blob/master/2017/generate_document.sh) 22 | 23 | ~~~shell 24 | $ pandoc AbantOS-Elive-UsersGuide-17319-835.md -o ./AbantOS-Elive-UsersGuide-17319-835.pdf --from markdown+multiline_tables --template eisvogel.tex --listings --toc 25 | ~~~ 26 | 27 | ## Copyright & License 28 | 29 | 30 | This work is licensed [Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 31 | 32 | All contributors hold their original Copyright 2017. 33 | 34 | ![Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](AbantOS-Elive-UsersGuide-17319-CC-BY-SA-v4-Intl-88x31.png) 35 | 36 | 37 | 38 | # Introduction 39 | 40 | ## Social Dynamics of Debian 41 | 42 | * The key points to remember in considering Debianos social dynamics as applied to becoming a package maintainer are these: 43 | 44 | - Debian is a volunteer-powered project, and self-motivation and friendly cooperation are crucial. 45 | - Debianos development is consistently evolving, and maintainers must adapt along with it. This adaptation must be self-driven; you cannot rely on others to bring you along. 46 | 47 | ## Programs Needed for Development 48 | 49 | Though many if not all packages necessary for development should come installed with the base Debian installation, it's good to check that they are present with *aptitude show package* or *dpkg -s package*. The most important package is the *build-essential* package. Be sure to that it is installed, otherwise compiling packages will not be possible. It should pull in other packages that are necessary for the build environment if they're not already installed. 50 | 51 | Other packages are some measure of helpful and/or necessary for building particular packages down the road. Some are particular compilers for specific languages (i.e. *gfortran* or *gpc*) or packages for scripting languages themselves (i.e. *perl* and *python*). Others make parts of the process easier (such as the *debhelper/dh-make* packages or the *fakeroot* tool) or allow checking for errors after the build (*lintian*). The full range of additional build packages listed should be installed and understood before proceeding. 52 | 53 | ## Documentation needed for development 54 | 55 | This section of chapter 1 includes the debian-policy which is the explanations of the structures and contents of the Debian archive and several OS design issues. It also includes requirements that each package must satisfy to be included in the distribution. 56 | 57 | Important documentations that needed to be read for the development are auto tutorial and gnu-standards. If any errors or bugs occur, the maint-guide package can be used to report using report bug. 58 | 59 | ## Where to ask for help? 60 | 61 | There are a few documentations that will help solve any problems we encounter during installing packages or using any commands. Available sources to solve any issues are; websites such as lists.debian.org or wiki.debian.org/Teams. 62 | 63 | # Debian Package Building 64 | 65 | ## Workflow 66 | 67 | 1. Get a copy of the upstream software, usually in a compressed tar format. 68 | * package-version.tar.gz 69 | 2. Add Debian-specific packaging medications to the upstream program under the Debian directory, and create a non-native source package. 70 | 71 | * package_version.orig.tar.gz 72 | * package_version-revision.debian.tar.gz 73 | * package_version-revision.dsc 74 | 75 | 3. Build Debian binary packages, which are ordinary installable package files in .deb format. The character separating package and version change from hyphen to underscore. As the following command. 76 | 77 | * package_version-revision_arch.deb 78 | 79 | ## Import Upstream 80 | 81 | 82 | 1. First, create the first version of a package, outside of Git. Once this is done, you can import the package using the import-dsc command. 83 | 84 | ~~~shell 85 | $ gbp import-dsc /path/to/package_0.1-1.dsc 86 | ~~~ 87 | 88 | 2. This will give output of its progress and make a few commits as well as have some new files and directories. 89 | 90 | ~~~shell 91 | $ ls 92 | package/ 93 | package_0.1-1.orig.tar.gz 94 | ~~~~ 95 | 96 | 3. git-buildpackage command 97 | 98 | * Imported the package into the upstream branch 99 | * This has then been tagged upstream/0.1, which represent package's number 100 | * Imported debian/directory into master and upstream's files 101 | * Tagged the last commit as debian/0.1-1 as it finished package. 102 | 103 | When there is a new version upstream, you could use the following steps to update to the latest version of upstream version. 104 | 105 | $ gbp import-orig -uscan 106 | $ gbp import-orig /path/to/new-upstream.tar.gz -u 0.2 107 | 108 | *if the upstream tarball is already exist in the form of packagename_version.orgi.tar.gz, then the -u option is not required. 109 | 110 | 111 | ## Choosing your program 112 | 113 | The steps to follow after choosing a package to create and in order to check if the package is already in the distribution archive are; the aptitude command, the debian packages web page and the debian package tracker web page. Debian already has packages in the Debian archive which is much larger than that of contributors with upload rights. If you are able to adopt the package, get the sources something like apt-get source but if you are installing new packages in Debian follow the steps below: 114 | 115 | 1. First step is to confirm that the program works. 116 | 2. Second, Make sure no one is working on the package. If no one is working on it, file an ITP bug report to the wnpp pseudo-package using report bug. If someone else is already working on it, contact them if you feel you need to. 117 | 3. Third, the software must have a license. 118 | 4. Fourth, the program should not introduce security and maintenance concerns into the Debian system. The program should be well documented, should not run setuid root and should not be a daemon. 119 | 120 | As a new maintainer, you are encouraged to create simple packages, intermediate complexity packages and high complexity packages. Packaging a high complexity packages requires more knowledge than it takes to build a simple or intermediate packages. 121 | 122 | ## Get the program, and try it out. 123 | 124 | There are a few steps mentioned on this section to get the package and try it out. 125 | 126 | 1. First step is to find and download the original source code. 127 | 2. Second, if your package program comes in tar+gzip format with the extension .tar.gz, format with the extension .tar .bz2 or tar + xz format , it usually contains a directory called package-version with all the sources inside. 128 | 3. Third, if your program comes as some other sort of archive, you should unpack it with the appropriate tools and repack it. 129 | 130 | ## Simple build systems 131 | 132 | 1. Simple programs comes with a Makefile which can be compiled by invoking make. 133 | 2. Compile and run to make sure your program works so it wonot break something else while its installing or running. 134 | 3. You can run make clean to clean up the build directory. 135 | 4. You can use the make uninstall to remove all the installed files. 136 | 137 | ## Popular Portable Build Systems 138 | 139 | Free software is often written in C or C++, and these often use portable build systems to make them portable across platforms. *Autotools* is one example of such a build system; it comprises *Autoconf, Automake, Libtool, and Gettext*. (Cmake is an alternative build system.) 140 | 141 | With these build tools, they must be used to generate the Makefile and other required source files first. The program can then be built using *make; make install*. 142 | 143 | The Autotools workflow generally proceeds as: 144 | 145 | 1. Upstream runs autoreconf -i -f in the source directory and distributes the generated files along with the source. 146 | 2. The user obtains the distributed source and runs ./configure && make in the source directory to compile the program in an executable source binary. 147 | 148 | ## Creating a Repository 149 | Two types of 150 | dpkg-scanpackages 151 | dpkg-scansource 152 | dpkg-scanpakages arguments | gzip-9c>Packages.gz 153 | apt-get update 154 | apt-get upgrade 155 | 1. open command line 156 | 2. enter following commands 157 | @repository :+1 :shipit 158 | 159 | $ git init 160 | $ git add 161 | $ git commit -m "First commit" 162 | $git remote add origin 163 | $git remote -v 164 | $ git push origin master 165 | 166 | ## Creating a Package 167 | $ dpkg-buildpackage -us -uc 168 | $ debian/rules clean 169 | $ debian/rules build 170 | $ fakeroot debian/rules binary 171 | 172 | $ apt-get install build-essential dh-make devscripts fakeroot 173 | $ apt-get install patch diff patchutils 174 | $apt-get install linda 175 | 176 | 177 | 178 | ## Source Packages for EFL 179 | -[] efl-dbp 180 | -[] efl-doc 181 | -[] libecore-dev 182 | 183 | ## Install EFL 184 | #create a directory 185 | $mkdir enlight 186 | $cd enlight 187 | #make sure all Dependencies are installed 188 | $ sudo apt install 189 | ##EFL build script 190 | 191 | set -e 192 | # Target directory 193 | PREFIX="/usr/local" 194 | 195 | # List of the needed packages 196 | # To adapt to your needs 197 | PROJECTS="efl enlightenment" 198 | 199 | # Download url 200 | SITE=" https://git.enlightenment.org/core/" 201 | OPT="--prefix=$PREFIX" 202 | 203 | PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" 204 | PATH="$PREFIX/bin:$PATH" 205 | LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH" 206 | LOG="installe.log" 207 | rm -f $LOG # Delete precedent log file 208 | touch $LOG # Create a log file 209 | date >> $LOG # Add current date 210 | 211 | # Download and compile each module 212 | for PROJ in $PROJECTS; do 213 | # Cloning 214 | if [ ! -d $PROJ ]; then 215 | git clone $SITE$PROJ.git $PROJ 216 | fi 217 | # Go building and installing 218 | cd $PROJ* 219 | make clean distclean || true 220 | ./autogen.sh $OPT 221 | make 222 | sudo make install 223 | cd .. 224 | sudo ldconfig 225 | echo $PROJ" is installed" >> $LOG 226 | done 227 | 228 | #Optionnal Terminology 229 | git clone https://git.enlightenment.org/apps/terminology.git 230 | cd terminology 231 | ./autogen.sh $OPT 232 | make 233 | sudo make all install 234 | cd .. 235 | sudo ldconfig 236 | ## Run-time requirements 237 | apt install dbus-x11 xinit xorg 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | ## Linux Distributions 247 | 248 | ### Ubuntu and Debian: How is Ubuntu related to Linux and Debian? 249 | 250 | Ubuntu is a Linux distro that starts with the breadth of Debian and adds regular releases (every six months) commitment to security updated with nine months of support for every release. 251 | 252 | Ubuntu builds on the foundations of Debian's architecture and infrastructure but there are important differences such as, Ubuntu has its own user interface, a separate developer community and different release process. 253 | Debian is the rock upon which Ubuntu is built. It is a volunteer project that has developed and maintained a GNV/Linux Operating System of the same name over a decade. 254 | Since its launch, the Debian project has grown to comprise more than 1,000 members with official developers status, alongside many more volunteers and contributors. 255 | Debian is a free operating system. An operating system is the set of basic programs and utilities that make your computer run. At the core of the operating system is a Kernel. The Kernel is the most fundamental program on the computer and does all the basic housekeeping and lets you start other programs. Debian system use Linux Kernel or the BSD Kernel. Today Debian encompasses over 20,000 packages of free open source applications and documentation. 256 | 257 | **About Ubuntu** 258 | 259 | Ubuntu is an Open-source project that develops and maintains a cross-platform, open-source operating system based on Debian. Upgrades are released every six months and support is granted by Canonical for up to five years. Canonical also provides commercial support for Ubuntu deployments across the desktop, the server and the cloud. 260 | 261 | **How does Debian and Ubuntu fit together?** 262 | 263 | Ubuntu is proud to be based on Debian. Ubuntu developers want to maintain a healthy and collaborative relationship with Debian developers. Ubuntu has brought new users and developers to the GNU/Linux community 264 | 265 | **How does Ubuntu differ from Debian?** 266 | 267 | Ubuntu has a narrow focus--community based while Debian is Universal. 268 | 269 | Ubuntu has its own community government structure somehow inspired by Debian's but different. (MOTU) The masters of the universe were team formed to look after the creation of the universe component. 270 | 271 | **Debian for Ubuntu developers** 272 | 273 | Ubuntu benefits from a strong Debian and Debian benefits from a strong Ubuntu. 274 | 275 | Every Debian developer is also an Ubuntu developer because one way to contribute is to contribute to Debian 276 | Ubuntu is Debian based. 277 | 278 | *Edubuntu* 279 | 280 | A complete Linux based operating System targeted for primary and secondary education. It is freely available with community based support. 281 | The Edubuntu community is built on the ideas enshrined in the Edubuntu manifesto: that software, especially for education should be available free of charge and that software tools should be usable by people in their local language and despite any disabilities. [14] 282 | 283 | *Kubuntu* 284 | 285 | An official derivative of Ubuntu Linux using ICDE instead of the GNOME or unity interfaces used by default in Ubuntu. 286 | 287 | ### RedHat/Fedora Based 288 | 289 | ### ArchLinux Based 290 | 291 | ## Linux Window Managers 292 | 293 | ### GNOME 294 | 295 | GNOME (GNU Network Object Model Environment, pronounced as NOHM) is a graphical user interface (GUI) and set of computer Desktop applications for users of the Linux computer operating system. Its intended to make a Linux operating system easy to use for non-programmers and generally corresponds to the windows desktop interface and its most common applications. (Wikipedia) 296 | 297 | ### Englightnment 298 | 299 | **AbantOS** uses the Enlightenment Window Manager 300 | 301 | ## Elive background/history 302 | 303 | ## Elive purpose/objectives 304 | 305 | ## Teaching Linux Objectives 306 | 307 | ## Teaching Linux Scope 308 | 309 | ## Finding Help 310 | 311 | ```shell 312 | >>> help 313 | ``` 314 | 315 | # Installation of Elive 316 | 317 | ## Downloading Elive from [EliveCD.org](www.elivecd.org) 318 | 319 | * The latest release of Elive can be downloaded from www.elivecd.org. The latest Beta release is the recommended version to download. 320 | * Navigate to the Beta downloads by clicking Download, then Beta. 321 | * For writing Elive to a USB drive, click the button labeled Elive Beta - USB. This is an Elive image specifically for writing to USBs. A window will open asking if you want to open or save the .img file. Click Save File and your browser will download the file. 322 | * When the download finishes, open the folder to which it was saved and take note of the file's location. 323 | 324 | ## Release notes at [EliveCD.org](http://www.elivecd.org/news/releases/beta/) 325 | 326 | The archive of release notes on the Beta releases of Elive can be found at http://www.elivecd.org/news/releases/beta/. Each entry contains many details on what features of Elive have been updated and improved in each release. 327 | 328 | ## Writing Elive to USB 329 | 330 | * The recommended USB drive for writing and using Elive is the SanDisk Extreme USB 3.0 32 GB flash drive. 331 | * If you are using Windows, you can write the Elive image to the USB using an image writer application. Elive suggests UsbWriter; other options include the application from Etcher.io or Win32DiskImager. 332 | * With any application, first plug your USB drive into an open USB port on your computer. Using the application, select the Elive image from the location you downloaded it to, then select the correct USB drive and write the image. 333 | * The written image will overwrite any other data contained on the USB drive. In some cases, the USB drive may need to be reformatted first before being able to write a new USB image (for instance, if a previous USB image was written to the drive). You can reformat the drive by right-clicking the drive in the Computer window or using Windows Disk Management. 334 | 335 | ## Booting Elive from the USB 336 | 337 | * Power on your computer with the USB with Elive written to it plugged in. When the initial boot screen of your computer appears, hold down the Boot Menu key to load the boot menu. On many computers this is the F12 key, or one of the other F row keys. A list of common boot menu keys for various manufacturers can be found at http://www.elivecd.org/ufaqs/how-to-tell-the-computer-to-boot-from-another-device/. 338 | * When the boot menu key appears, highlight the USB drive option and press Enter. 339 | * After Elive initiates, the first Elive menu asking the method of installation will appear. For running Elive from the USB, select Live sessions with Persistence. This method will allow you to run Elive direct from the USB without installing the system on your separate hardware, and Persistence will save your configurations of Elive from session to session. 340 | 341 | ### What is BIOS? 342 | First and foremost BIOS is pronounced by-oss and is sometimes referred to as the System BIOS, ROM BIOS, or PC BIOS 343 | The word BIOS stands for Basic Input Output System. It is a software that can be located on a memory chip on the motherboard. The BIOS gives the computer instructions to perform some functions like booting and keyboard control and also configure the hardware in a computer including the hard drive, floppy drive, USB, optical drive, CPU, memory to list a few, it also help in the proccess of trouble shouting. The BIOS is also responsible for the POST (POST stands for "Power On Self Test." It is a diagnostic program built into the computer's hardware to tests different hardware components before the computer boots up. The POST process is run on both Windows and Macintosh computers). reason why it the first software to run when a computer is started (BIOS). The BIOS firmware settings are always saved and recoverable even after power has been removed from the device. 344 | The BIOS is can be accessed and configured through the it's Setup Utility and is pre-installed before the computer is purchased. Unlike the operating system such as Windows, which needs to be downloaded or obtained on a disc, and needs to be installed by the user or the manufacturer. 345 | 346 | ### EFI and UEFI 347 | Standing for Extensible Firmware Interface, EFI is a recent firmware developed by Intel and introduced with the release of IA-64. EFI's version has improved the fonctions previously available in the BIOS. The EFI specification was made into a general standard known as UEFI. The EFI System Partition (ESP) is the partition on a data storage device (usually a hard disk drive or solid-state drive) that is used by computers to the Unified Extensible Firmware Interface (UEFI). When a computer is booted (also meaning started), UEFI firmware loads files stored on the ESP to start the installation of the operating systems and other utilities. The ESP needs to be formatted with a file system whose specification is based on the FAT file system and maintained as part of the UEFI specification; so the file system specification can be independent from the original FAT specification. EFI can be used to eliminate the boot loader, that will allow the firmware to select the operating system and at the same time enables vendors to create drivers that cannot be reversed or engineered to contains a small shell. This process can be run at boot and allow a small and manageable working environment without compromising anything on the computer. It has been noticed nowadays that new computers use UEFI firmware instead of the traditional BIOS. Both are still low-level software that starts at the same time as the computer is started at the boot level, but UEFI is a more of a modern solution. It was devellopped in the intention to make the BIOS better. reason why it supports larger hard drives, make the boot proccess go faster, has more security features, and-conveniently-graphics and mouse cursors. There are newer PCs that has the chip with UEFI still refer to as the “BIOS” to avoid confusing people who are used to a traditional PC BIOS, but does not mean that the chip still has the BIOS running. Even if your PC uses the term “BIOS”, modern PCs baught nowadays almost al of them has certainly ship with UEFI firmware instead of the old BIOS. 348 | 349 | * Why the BIOS Is Outdated 350 | To be clear BIOS has not been labeled bad or wrong, all this new developemnt are only for improuvment. The BIOS has been around for quite a long time, and was not evolving much. Even MS-DOS PCs released in the 1980s still had a BIOS on the ship on the motherboard. But still modification have been made to improve the BIOS along all those years. Some extensions were developed, all in the name of improvment such as ACPI (the Advanced Configuration and Power Interface). This allows the BIOS to more easily configure devices and perform advanced power management functions, like sleep which is not off. But the BIOS hasn’t advanced and improved nearly as much as other PC technology has since the days of MS-DOS. Still The BIOS was experiencing some limitations. For example tt can only boot from drives of 2.1 TB or less, while 3 TB drives are common now, and a computer with a BIOS can’t boot from them. That limitation is due to the way the BIOS’s Master Boot Record system works. The BIOS must run in 16-bit processor mode, and only has 1 MB of space to execute in. It has trouble initializing multiple hardware devices at once, which leads to a slower boot process when initializing all the hardware interfaces and devices on a modern PC. The BIOS was basically crying for replacement or improvment if you want to call it for a very long time. Intel started working on the Extensible Firmware Interface (EFI) specification back in 1998. Apple chose EFI when it switched to the Intel architecture on its Macs in 2006, but other PC manufacturers didn’t follow. In 2007, Intel, AMD, Microsoft, and PC manufacturers agreed on a new Unified Extensible Firmware Interface (UEFI) specification. This is an industry-wide standard managed by the Unified Extended Firmware Interface Forum, and isn’t solely driven by Intel. UEFI support was introduced to Windows with Windows Vista Service Pack 1 and Windows 7. The vast majority of computers you can buy today now use UEFI rather than a traditional BIOS. 351 | 352 | ### Master boot record 353 | The Master Boot Record (MBR) is a set information located in the first sector of hard disks or diskette that identifies. It has the prepuse of detecting how and where an operating system is located so that it can be boot (loaded) into the computer's main storage or random access memory. The Master Boot Record is also refer to as the "partition sector" or the "master partition table" because it includes a table that locates each partition that the hard disk has been formatted into. The MBR also includes a program that reads the boot sector record of the partition that contains the operating system to be booted into RAM, that record contains a program that loads the rest of the operating system into RAM. The MBR, is the most important data structure on the disk and it is created when the disk is partitioned. it contains a low amount of executable code refer to as the master boot code, the disk signature, and the partition table for the disk. At the end of the MBR there is a 2-byte structure called a signature word or end of sector marker. This sector is always set to 0x55AA. A signature word also represent the end of an extended boot record (EBR) and the boot sector. 354 | A disk signature is known to be a unique number at offset 0x01B8, that set out the disk to the operating system. Windows 2000 for example uses the disk signature like an index to save and retrieve information about the disk in the registry. 355 | * Master Boot Code 356 | The master boot code runs numerous features like, Scaning the partition table for the active partition; Finding the starting sector of the active partition, Loading a copy of the boot sector from the active partition into memory, Transfering control to the executable code in the boot sector. In case the master boot code is unable to complete any of these activities, the system will be displaying one an error messages like; Invalid partition table; or Error loading operating system; or even Missing operating system 357 | but there is to say There is no MBR on a floppy disk. The first sector on a floppy disk is the boot sector. Every hard disk contains an MBR, the master boot code is used only if the disk contains the active, primary partition. 358 | 359 | ### GUID partition type 360 | * What is a GUID Partition Table disk? 361 | The GUID Partition Table disk architecture was introduced as part of the Extensible Firmware Interface initiative. GUID Partition Table is a new disk architecture that expands on the older Master Boot Record (MBR) partitioning scheme that has been common to Intel-based computers. A partition is a contiguous space of storage on a physical or logical disk that functions as though it were a physically separate disk. Partitions are visible to the system firmware and the installed operating systems. Access to a partition is controlled by the system firmware and the operating system that is currently active. 362 | * Why do we need GUID Partition Table? 363 | GUID Partition Table disks can grow to a very large size. In July 2001, the Microsoft implementation supports a hard disk of up to 18 EB (512 KB LBAs). The number of partitions on a GUID Partition Table disk is not constrained by temporary schemes such as container partitions as defined by the MBR Extended Boot Record. The Microsoft implementation of GUID Partition Table is limited to 128 partitions. However, it is important to note that one partition is used for the EFI System Partition, one for the Microsoft Reserved and two more are used if you use dynamic disks. This leaves 124 partitions for data use. The GUID Partition Table disk partition format is well defined and fully self-identifying. Data that is critical to the operating system is located in partitions and not in partitioned or "hidden" sectors. GUID Partition Table does not allow for hidden sectors or partitions. GUID Partition Table disks use primary and backup partition tables for redundancy and CRC32 fields for improved partition data structure integrity. The GUID Partition Table partition format uses version number and size fields for future expansion.Each GUID Partition Table partition has a unique identification GUID and a partition content type, so no coordination is necessary to prevent partition identifier collision. Each GUID Partition Table partition has a 36-character Unicode name, which means that any software can present an easily readable name for the partition without any additional understanding of the partition. 364 | 365 | BIOS stands for Basic Input Output System. BIOS is software stored on a small memory chip on the motherboard. It gives the computer a set of instructions on how to perform some of the basic functions such as booting and keyboard control as well as configure the hardware in a computer including the hard drive, floppy drive, USB, optical drive, CPU, memory to list a few. 366 | 367 | ### What is EFI and UEFI? 368 | 369 | ### What is a Master Boot Record? 370 | 371 | * APPLE iOS MAC USER? 372 | * If you are using an iOS - Apple Mac, and is having some issues geting your external flashdrive USB to work, try some of these things. 373 | * If your external flash drive USB contains a usable operating system or an OS X installer, you can select it at boot time using OS X’S built-in feature called Startup Manager, which can be invoked via a simple keystroke. 374 | * Power on your Mac by pressing the power button or restart it if it’s already on. 375 | * Press and hold the Option (⌥) key immediately when you heari the startup chime. Release the key after Startup Manager appears. Startup Manager will scan and list connected drives and volumes that can be booted from. 376 | * Select the volume you want to use by using the mouse or left and right arrow keys on the keyboard. 377 | * Double-click or press the Return key to boot your Mac from the selected volume. 378 | You should now be able to boot from external an external flash drive USB 379 | 380 | If you'd like to use system preference, with the computer on: 381 | * Open the System Preferences application in the Dock. 382 | * Now click the Startup Disk pane. You will be presented with various disk icons. 383 | * Select the system you would like to use to start your computer up. 384 | * Now click the Restart button to start up your Mac using the chosen volume. 385 | 386 | Note: If there are several USB storage devices connected to your Mac, Startup Manager will only list the ones containing bootable volumes. 387 | 388 | **References** 389 | "[How to start up Mac from bootable media](http://www.idownloadblog.com/2015/09/14/how-to-start-up-mac-from-bootable-media/)" 390 | 391 | ### Booting (PC) from an external USB device 392 | 393 | ### USB Booting Issues 394 | 395 | ## Installing on hardware (or Live sessions w/ Persistence) 396 | 397 | ## Help with Installation 398 | 399 | ## Keeping Elive Up to Date 400 | 401 | ```shell 402 | >>> apug 403 | 404 | ``` 405 | 406 | ```shell 407 | >>> sudo apt-get dist-upgrade 408 | 409 | ``` 410 | 411 | # Graphics and Themes 412 | 413 | Elive utilizes the Enlightenment Window Manager. Enlightenment utilizes a set of core libraries called (EFL), created specifically for Enlightenment. EFL is being recognized for its forward thinking approaches as users are wanting more from their operating systems UI. 414 | 415 | ## Elive Tools 416 | 417 | [elive-tools](https://github.com/Elive/elive-tools) are a set of handy and useful tools by Elive, for specialty use in the [Elive project]() 418 | 419 | * audio-configurator 420 | - configure individual alsa cards 421 | * bkp (save states) 422 | * elivepaste (pastebin) 423 | * waitfor 424 | - waits on the shell for a process that terminates and exits, its pretty useful for do things like: $ waitfor rebuild-packages && rebuild-iso 425 | * user-manager 426 | * make-cookies-with-chocolate 427 | 428 | 429 | ## Enlightenment Foundation Linux (EFL) Components 430 | 431 | 1. **Evas** 432 | - Core scene graph and rendering 433 | 2. **Elina** 434 | - Data strucures and low level helpers 435 | 3. **Edje** 436 | - UI layout & animation data files for themes 437 | 4. **Eet** 438 | - Data (de)serialization and storage 439 | 5. **Ecore** 440 | - Core loop and system abstractions like x11 441 | 6. **Efreet** 442 | - Freedesktop.org standards handling 443 | 7. **Eldbus** 444 | - D-Bus glue and handling 445 | 8. **Embryo** 446 | - Tiny VM and compiler based on pawn 447 | 9. **Eeze** 448 | - Device enumeration and access library 449 | 10. **Emotion** 450 | - Video decode wrapping, glue and abstraction 451 | 11. **Ethumb** 452 | - Thumbnailing handler 453 | 12. **Ephysics** 454 | - Physics (bullet) wrapper and Evas glue 455 | 13. **EIO** 456 | - Asynchronus I/O handling 457 | 14. **Evas Generic Loaders** 458 | - Extra image loaders for complex image types 459 | 15. **Emotion Generic Players** 460 | - Extra video decoders (for vlc) 461 | 16. **Elementary** 462 | - Widgets and high level abstractions 463 | 464 | ## Customizing Your Elive/Enlightenment Theme 465 | 466 | Elive currently has three theme options available by default. 467 | 468 | 469 | 1. **Default Theme** 470 | 2. **Elive Light Theme** 471 | - A light theme 472 | 3. **Lucax Theme** 473 | - A dark theme 474 | 475 | ### Change Themes 476 | 477 | Left click on the desktop to bring up the menu, hover over Enlightenment to bring up enlightenment sub menu. Hover over about theme and click it, this will show you the current theme. Close the about theme and Left click on the desktop again to bring up the menu. Hover over Settings, scroll down and hover over Theme, you will see the three options available. Left click on the Theme you want and wait for it to change, this may take a minute or two depending on the theme. Open windows and applications will lock up during the transition, this is normal. 478 | 479 | 480 | ### Change Wallpaper 481 | 482 | Left click on the desktop to bring up the menu. Hover over Settings and Left click it. A settings window will appear. Left click on Wallpaper, the wallpaper settings will appear. Choose one the the wallpapers and click apply. 483 | 484 | ### Live / Animated Wallpapers 485 | 486 | There are two methods for doing this that I know of, here are both. 487 | 488 | 489 | #### Live Wallpaper: Method 1 490 | 491 | 492 | The first method is to download an HD Wallpaper in .gif format. You can download one here: Animated Wallpaper Sample gif. After you finish downloading your animated wallpaper you have to put it in the right directory open a Terminology terminal and navigate to /Downloads, or wherever you have your .gif wallpaper you downloaded. Now you have to move the wallpaper to the /usr/share/enlightenment/data/backgrounds/. 493 | ~~~shell 494 | sudo mv "name of file without quotes.gif" /usr/share/enlightenment/data/backgrounds/ 495 | ~~~ 496 | 497 | Close the terminal and right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear and it will open the directory where you just moved your wallpaper. Choose your animated wallpaper and click apply. Close the wallpaper settings. 498 | 499 | NOTE: If you didn't see your wallpaper then your command may have been mistyped, don't forget to remove the quotes. 500 | 501 | 502 | #### Live Wallpaper: Method 2 503 | 504 | 505 | The second method is to download a HD wallpaper .gif and transfer it with the Thunar File Manager. Download your gif using the link above or any you choose in .gif format. Open the thunar file manager and from the home directory click downloads, or navigate to your .gif wallpaper. Open another thunar file manager window by clicking the icon in the dock again. Press (control) and (h) at the same time to show hidden files. Click .e and then e17, now click backgrounds. Drag and drop your animated wallpaper .gif from downloads to the backgrounds directory you just opened. After you transfer the wallpaper press (control) and (h) again to hide the config files. Close the file managers 506 | 507 | Right click on the desktop to bring up the menu, click settings and then Wallpaper. The wallpaper settings will appear. In the top left click Personal, now you should see the wallpaper you transferred in the list below, click it. Now click apply and close the wallpaper settings. 508 | 509 | ## Advanced Customizations 510 | 511 | ### Settings/Look 512 | 513 | #### Application Theme 514 | 515 | #### Theme 516 | 517 | #### Colors 518 | 519 | #### Fonts 520 | 521 | #### Borders 522 | 523 | Changing Window Borders: 524 | 525 | Click on the desktop and then (settings) this will open the settings panel. Click (Look) and then (Borders) This will open the Default Border Style window. Choose the style you like and click (OK). The changes will take place immediately. If you don't like your changes to the window border follow the steps above and choose (default). 526 | 527 | Ecomorph: 528 | Elive used to have a tool called ecsm (Ecomorph Config Settings manager) which it used to configure compiz on Elive, but it eventually got rid of it. To install Compiz now all you have to do is download the Elive Distro, this is because compiz has been integrated into the Elive system. looking for Compiz specific tools is pointless as Compiz has been tweaked to work with Enlightenment. You would instead look through the Ecomorph configuration tools. You would find this tool in main > settings > Ecomorph. Once you have navigated to the location you can find many of the Compiz's standard settings available to you here, there may however be some features not located in the location, you can find these key combos in a different window, we will return to this in a little while. While in the config tool there is a checkbox and 2 buttons, you can disable or enable Ecomorph with the checkbox and you can start or stop Ecomorph with the buttons. this should be the first place to look if Ecomorph isn't working or if something feels wrong while running Ecomorph. We will now return to the keybindings for certain features, to set up keybindings for Ecomorph you need to go to main > then settings > then settings panel, once there click the input tab and click key bindings. when you get to this window you can configure any keybindings for your system. there is a problem with doing this as if you choose a keybinding on the left the action bound to the keybinding is shown on the right. This is problematic because if you want to know what a combination for a certain action is you have to find the combination in reverse order, meaning you have to go through the keybinding listings hoping to find the associated action you are looking for. To create a keybinding for an action just do the following: click add key, press the combination you want, choose the action from the pane on the right then click apply. One final thing to remember, if you mess up your keybindings just hit the restore default bindings to fix the problem. 529 | 530 | 531 | #### Transitions 532 | 533 | #### Scaling 534 | 535 | #### Startup 536 | 537 | ### Settings/Apps 538 | 539 | #### Personal Application Launchers 540 | 541 | #### Favorite Applications 542 | 543 | #### IBar Applications 544 | 545 | Changing Ibar Applications: 546 | 547 | The IBar is located at the bottom of the screen and gives you quick access to applications that you use regularly. The default applications can be changed to fit your needs. 548 | 549 | Click on the desktop and then (Settings) this will open the Settings Panel. At the top you will see the options /Look/Apps/Screen/Windows/etc. Click (Apps) and then (Ibar Applications). This will open an IBar Applications window. In the Ibar Applications window you will have two options at the top, (Applications) and (Order). The (Applications) tab will show you applications available to the IBar. Applications currently in the IBar will show a light next to them in the IBar Applicatons Window. 550 | 551 | To add a new application Click on the desktop and then (Settings) this will open the Settings Panel. At the top you will see the options /Look/Apps/Screen/Windows/etc. Click (Apps) and then (Ibar Applications). This will open an IBar Applications window. Scroll down until you see the application you want to add. Click the (Application) and then near the bottom of the window click (Add). A light will show up next to the application in the window signifying it to be added. Now at the bottom of the window click (ok), the (Ibar Applications Window) will disappear and your Application will have been added to the IBar. 552 | 553 | To remove applications Click on the desktop and then (Settings) this will open the Settings Panel. At the top you will see the options /Look/Apps/Screen/Windows/etc. Click (Apps) and then (Ibar Applications). This will open an IBar Applications window. Scroll down until you see the application you want to remove. Click the application you want to remove, at the bottom of the window click (Remove) and the (OK). the (Ibar Applications Window) will disappear and your Application will have been removed. Repeat the process until you remove all unwanted applications from the IBar. 554 | 555 | Changing the order/placement of the applications in the IBar. 556 | 557 | To change the order of the applications Click on the desktop and then (Settings) this will open the Settings Panel. At the top you will see the options /Look/Apps/Screen/Windows/etc. Click (Apps) and then (Ibar Applications). This will open an IBar Applications window. You have two options at the top, (Applications) and (Order), Click (Order). This will open the application order window. Here you can change the application order by selecting an application and then choosing (Up) (Down) or (Remove). Moving applications up and down in this list will change where it sits on the IBar. Choosing (remove) will remove the highlighted application. Example: Click (Terminology) and then (Down) and then (OK). The Terminology application will move one spot right on the IBar. 558 | 559 | #### Screen Lock Applications 560 | 561 | #### Screen Unlock Applications 562 | 563 | #### Restart Applications 564 | 565 | #### Startup Applications 566 | 567 | #### Default Applications 568 | 569 | #### Desktop Environments 570 | 571 | 572 | ### Settings/Screen 573 | 574 | #### Virtual Desktops 575 | 576 | #### Screen Setup 577 | 578 | #### Screen Lock 579 | 580 | #### Blanking 581 | 582 | #### Backlight 583 | 584 | 585 | ### Settings/Windows 586 | 587 | #### Window Display 588 | 589 | #### Window Focus 590 | 591 | #### Window Geometry 592 | 593 | #### Window List Menu 594 | 595 | #### Window Remembers 596 | 597 | #### Window Process Management 598 | 599 | #### Windows Switcher 600 | 601 | ### Settings/Menus 602 | 603 | #### Menu Settings 604 | 605 | 606 | ## Elive Desktop Features 607 | 608 | ### Main Elive Menus 609 | 610 | ### Finding installed applications 611 | 612 | ### Changing appearances/preferences 613 | 614 | ### Restoring settings 615 | 616 | 617 | ## Elive Desktop Help Features 618 | right click on the desktop using the mouse the mouse and you will see all you want or looking for as you scroll the mouse. 619 | 620 | # Installing/Removing applications 621 | 622 | ## Installing from the terminal (apt-get) 623 | 624 | ## Installing with a software package manager (i.e. Synaptic) 625 | 626 | ## Removing from the terminal 627 | 628 | ## Removing with a package manager 629 | 630 | ## Updating system and applications 631 | 632 | ## Help with Installation and Removal of Applications 633 | 634 | 635 | # Command references 636 | 637 | ## Whatever commands the class elects would be useful to include in a quick reference 638 | 639 | ## Where to get help 640 | 641 | ## From basic to advanced 642 | 643 | # Repository 644 | Software Repository is a database for programming application installation and software upgrades. It is used mostly along with Linux based distributors. Because Linux doesn’t use or download applications like Window distributors; it uses Software Repository compiled applications that is for specific systems. Depending on whether the program is demanding, the repository language or manager will obey and program it to the users’ satisfaction. These sorts of systems are designed as malfunction free allowing the user’ to use the program freely without worrying about the system malfunctioning. 645 | 646 | ## Creating Repositories 647 | 648 | ## Setup and Maintain 649 | 650 | There are various reasons for building a repository yourself. You might just have a few packages with local modifications that you want to make available to apt, you may want to run a local mirror with those packages used by several machines to save bandwidth, or you build packages yourself and want to test them prior to publication. 651 | 652 | ## Anatomy of a Repo 653 | 654 | A Debian repository contains several releases. Debian releases are named after characters from the "Toy Story" movies (wheezy, jessie, stretch, ...). The codenames have aliases, so called suites (stable, oldstable, testing, unstable). A release is divided in several components. In Debian these are named main, contrib, and non-free and indicate the licensing terms of the software they contain. A release also has packages for various architectures (amd64, i386, mips, powerpc, s390x, ...) as well as sources and architecture independent packages. 655 | 656 | * Root Directory = dists 657 | * Each release subdirectory contains a cryptographically signed Release file and a directory for each component. 658 | 659 | ## Repository Index File 660 | 661 | 1. dpkg-scanpackages 662 | 663 | ~~~shell 664 | $ dpkg-scansources dists/local/custom/source | gzip > dists/local/custom/source/Sources.gz 665 | ~~~ 666 | 667 | 2. dpkg-scansources 668 | ~~~shell 669 | $ dpkg-scanpackages dists/local/custom/binary-i586 | gzip > dists/local/custom/binary-i586/Packages.gz 670 | ~~~ 671 | 672 | ## Override File 673 | 674 | An override file can be optionally specified. If no override file exists, dev/null must be provided as an explicit argument. 675 | 676 | ## Working with Repos 677 | 678 | Working with repositories may mean one or two different things: 679 | 680 | 1. You can use a repository with the apt family of programs (apt, apt-get, apt-cache, aptitude) to browse or install packages 681 | 682 | ~~~shell 683 | echo "deb http://ftp.debian.org/debian stable main contrib non-free" >> /etc/apt/sources.list && apt-get update 684 | ~~~ 685 | 686 | 2. You can set up a repository yourself and add, remove or replace packages in it. 687 | 688 | 689 | ## Repository References 690 | 691 | wiki.debian.org/DebianRepository 692 | wiki.debian.org/DebianRepository/Setup 693 | 694 | 695 | # Systems Administration & Configuration 696 | 697 | 1. Boot process and Troubleshooting 698 | 2. System Logging 699 | 3. Disk Management and File System Creation 700 | 4. Managing Linux Users and Groups 701 | 5. Linux Networking (setting up networking and config) 702 | 6. Process and Job Management 703 | 7. Creating, Viewing and Editing Text Files (Vi) 704 | 8. Installing and Updating Software Packages 705 | 9. Scheduling and Automating Future tasks 706 | 10. Network Storage and Management (NFS, SMB) 707 | 11. Service Configuration (DHCP, FTP, DNS, SSH, HTTP etc...) 708 | 12. Linux Shell Scripting 709 | 710 | ## User Management 711 | 712 | To maintain the privacy of users of the Linux system and manage their accounts and supervision, as well as track the problems they will go through, find the solutions to these problems, and inform users the changes, update, and upgrade the system. Even if there is a one user using the system it was always a challenge for the managing users. I will show you some tools and some tasks assigned to add the user to Linux system where you see adding and deleting accounts is an easy process for managing users. 713 | 714 | Before we talk about how to create and delete a user account I will talk about the most important text file (/etc/passwd) this text file contains all necessary details and information about all users in the Linux system. 715 | 716 | This file it is open to read only for users, and it is read and writable for root account. 717 | 718 | ### /etc/passwd file 719 | 720 | The /etc/passwd file containe only one separate line, limited by a colon (:) for each user account in the system, also it is stored the information for each user using the Linux system. Every time we add new user to the system all details and information for the new user will stored in the same file. 721 | 722 | root /h/jamal >>> sudo cat /etc/passwd 723 | 724 | jamal: x:1001:1001: jamal Ibrahim, 1,,:/home/jamal :/bin/bash 725 | 726 | tyler: x:1002:1002: tyler, 1,,:/home/tyler :/bin/bash 727 | 728 | awil: x:1003:1003: awil, 1,,:/home/awil :/bin/bash 729 | 730 | jacquie: x:1004:1004: jacquie, 1,,:/home/jacquie :/bin/bash 731 | 732 | matthew: x:1005:1005: matthew, 1,,:/home/matthew :/bin/bash 733 | 734 | to get depth in the file I will take the entry of my username jamal. 735 | 736 | 737 | 738 | Jamal : x : 1001 : 1001 : jamal Ibrahim , 1 ,, : /home/jamal : /bin/bash 739 | 740 | {---1----}{---2---}{---3-----}{---4----}{---------------5---------------}{----------6------}{-------7-----} 741 | 742 | ### /etc/passwd fields 743 | 744 | 1. **Username field**: This field show the user account name; this user name must be used every time when we log in to the system. 745 | 2. **Password field**: Second field is the Password field, not showing the actual password though. The 'x' in this field show the password is encrypted and saved in the /etc/shadow file. 746 | 3. **UID field**: Every time when a user account is created, it is assigned with a user id or UID (UID for the user 'jamal' is 1001, in this case) and this field specifies the same. 747 | 4. **GID field**: Similar to the UID field, this field specifies which group the user belongs to, the group details being present in /etc/group file. 748 | 5. **Comment/Description/User Info field**: This field is the short comment/description/information of the user account. 749 | 6. **User Home Directory**: Every time the user signs into the system, he/she is taken to their Home directory, where all their personal files reside. This field provides the absolute path to the user's home directory (/home/jamal in this case). 750 | 7. **Shell**: This field show, the user has access to the shell mentioned in this field (user 'jamal' has been given access to /bin/bash or simply bash shell). 751 | 752 | ## Adding new user accounts to Linux system 753 | 754 | # Package Management 755 | 756 | Elive is based on Debian, the same distribution flavor as Ubuntu, so we use .deb files for our packages and those files collectively live in a repository. 757 | 758 | ## Debian Package Management 759 | 760 | Debian Package Management details can be found in the [Debian Manuals](https://www.debian.org/doc/manuals/debian-reference/ch02.en.html) 761 | 762 | -------------------------------------------------------------------------------- 763 | package popcon size description 764 | --------- -------- ------ ------------- 765 | apt V:871, I:999 3647 Advanced Packaging Tool (APT), front-end for dpkg providing "http", "ftp", and "file" archive access methods (apt-get/apt-cache commands included) 766 | 767 | aptitude V:136, I:778 4415 interactive terminal-based package manager with aptitude(8) 768 | 769 | tasksel V:40, I:972 374 tool for selecting tasks for installation on the Debian system (front-end for APT) 770 | 771 | unattended-upgrades V:188, I:364 254 enhancement package for APT to enable automatic installation of security upgrades 772 | 773 | dselect V:4, I:59 2498 terminal-based package manager (previous standard, front-end for APT and other old access methods) 774 | 775 | dpkg V:932, I:999 6745 package management system for Debian 776 | 777 | synaptic V:70, I:453 7793 graphical package manager (GNOME front-end for APT) 778 | 779 | apt-utils V:391, I:997 1103 APT utility programs: 780 | 781 | apt-listchanges V:350, I:838 365 package change history notification tool 782 | 783 | apt-listbugs V:7, I:12 451 lists critical bugs before each APT installation 784 | 785 | apt-file V:13, I:77 82 APT package searching utility -- command-line interface 786 | 787 | apt-rdepends V:0, I:6 40 recursively lists package dependencies 788 | -------------------------------------------------------------------------------- 789 | Table: Debian package management (Manual), List of Debian package management tools 790 | 791 | Source: [Debian package management manual](https://www.debian.org/doc/manuals/debian-reference/ch02.en.html) and [Popularity Contest Stats](https://qa.debian.org/popcon.php?package=apt) 792 | 793 | ## Elive Packages 794 | 795 | In order to understand the components of the Elive repository here are a couple commands 796 | 797 | ### Listing Packages 798 | 799 | ```shell 800 | 801 | for package in $( dpkg -l | awk '{print $2}' ) ; 802 | do if apt-cache policy "$package" 2>/dev/null | grep -qs "repository.elivecd.org" ; 803 | then echo -e "${package%:*} \tis in Elive repos" ; 804 | fi ; 805 | done 806 | 807 | ``` 808 | 809 | ### Listing Package Count 810 | 811 | ```shell 812 | 813 | cat /var/lib/apt/lists/repository.elivecd.org_*Packages | grep "^Package:" | wc -l 814 | 815 | ``` 816 | 817 | ## Installing Packages 818 | 819 | ```shell 820 | 821 | sudo apt-get 822 | 823 | ``` 824 | 825 | 1. acptool: replacement of apmtool. For laptop users. 826 | 827 | 2. afflib- dpg- on-disk format for storing complete forensic information: sudo apt-get install afflib-dbg, allows files to be digitally signed, chain-of-custody and long-term file integrity. Allows disk images containing privacy sensitive material to be stored on the Internet. Posix stricpting (Linux coding). 828 | 829 | 3. balsa-dbg: get sudo apt-get install balsa-dbg. Mail client from GNOME desktop. Supports both POP3 and IMAP. 830 | 831 | 4. cython3-dbg: sudo apt-get install cython-dbg. Libraries built against versions of Python configured with pydebug. Allows python configuration. 832 | 833 | 5. /etcldibbler/client.conf w/new version. DHCPv6 clients: sudo apt-get install dibbler-client 834 | 835 | 6. sudo apt-get install DVd+rw-tools-dbp 836 | 837 | 7. sudo apt-get update 838 | 839 | 8. sudo apt-get install build-essential save files and execute. 840 | 841 | 9. sudo apt-get install enigma 842 | 843 | 844 | # Testers & Quality Assurance 845 | 846 | ## What are some patterns we should test? 847 | 848 | ## What steps should Testers & QA go through? 849 | 850 | 851 | # User Case Studies 852 | 853 | ## How are we going to use this? 854 | 855 | ## What are your biggest challenges to learning Linux? 856 | The biggest challenges for learning Linux are commands, create a file, and installed image Ubuntu into the USB. When I started to learning the Linux from this course, it is hard for me at the beginning. 857 | ## What tools and techniques are helpful to you? 858 | 859 | Talk to potential users! 860 | 861 | # Credits 862 | 863 | ## Contributors 864 | 865 | ### Jacquie Kerongo 866 | 867 | Project Lead and Troubleshooting 868 | How is Ubuntu related to Linux and Debian? 869 | 870 | ### Angela Griffin 871 | 872 | Package Management 873 | 874 | ### Jamal Ibrahim 875 | 876 | User Management 877 | 878 | ### Mohamed Mohamud 879 | 880 | Repository & Systems Administration 881 | 882 | ### Tyler Cobb 883 | 884 | Scribe 885 | Quality Assurance / Testing 886 | 887 | ### Rodas Mekonnen 888 | 889 | Cat Hearding 890 | Editing 891 | 892 | ### Roxanne Thao 893 | 894 | Package Management 895 | 896 | ### Doung Doth 897 | 898 | USB Booting (Mac) 899 | 900 | ### Blia Vue 901 | 902 | QA: Debian Package Management Workflow 903 | 904 | ## Editors 905 | 906 | ### Kautz, D.E. 907 | 908 | Project Editor 909 | Original Draft (2017-10-30) 910 | Installation of Elive 911 | 912 | ### Harmon, M.J. 913 | 914 | Formatting 915 | --------------------------------------------------------------------------------