ASU Cal Poly MTU NCSU OSU Purdue RIT Rutgers Stevens UCLA UCSC UIUC UMBC UMD UW VT

Our next meeting is: Monday, September 16, in the CAVE from 9-11 PM.

Topics for Future Meetings

The topics that RU SLUG meetings are about should be simple enough to be adequately explained in under an hour to an audience that only has a general knowledge of its background unless a substantial amount of members show interest in it. Below is a list of suggestions for talks and workshops, but members and guests alike are allowed to propose presentations and workshops on different topics.

Beginner Topics

Introduction to Package Management

At the heart of almost every Linux distribution is a package manager, a mean by which users can easily obtain software and data usually provided by the maintainers of the distribution. These centralized sources, in addition to the freedom to choose alternatives, are for some the largest draw to the Linux family of operating systems. The basic use of most of them are mostly quite similar, but some differences in the philosophies of the creators becomes apparent in some of the nuances of their operation.

Shell Scripting

Why do so many Linux tools seem so cryptic, and why do so many users insist upon using the command line above graphical tools? The belief is that by having less complex software, the system as a whole can be more robust by there being less space for bugs to weaken it and by tools not having to reimplement each other. Indeed, it made more sense to the creators of the Unix operating system, for which Linux can be considered an open-source heir to, to connect programs together to achieve a particular task. Shell scripting is the standard way to do this, and involves the sequential execution of several command-line programs as one larger program. programs. This is a critical skill to have for administrative tasks on any Unix-like system, and the skills discussed may even be transferable to operating systems not related to the Unix-like family, like Windows and VMS.

The vi and Vim Text Editors

The vi family of text editors are the most popular text editors in Linux and other Unix-like operating systems, being standard on most distributions and with some form of it required to be included if the operating system is to be POSIX-compliant. While its plain user interface can seem unforgiving to new users, those familiar with the editor proclaim that its simplicity is a feature that makes both the user and the program itself more efficient. Vim, short for "vi improved," is an iteration of vi with new features such as syntax highlighting and multi-file editing that can be configured via its built-in scripting language.

Version Control Systems

Almost every software project today is managed by a version control system, a piece of software that logs changes to a directory. Today, Git is favored by developers the, but Subversion is a popular alternative and Concurrent Version System is used for much legacy open-source software. All of these enable anyone who needs to share a changing body of files to keep track of these changes in a standardized way and to have a standard protocol to have people other than the original creator contribute to a project. Sites such as GitHub and GitLab are popular centralized destinations to place one's own repositories, but repositories may be shared from any location.

Desktop Customization

There is a dizzying number of different graphical user interfaces available on free operating systems. While all aim to be as user-friendly as possible, each individual project has a different to creating something that its users will prefer to use. User interfaces on Linux are on spectrum from the highly-integrated GNOME and KDE that will be approachable for users of any experience, to more specialized user interfaces intended for advanced users.

Typesetting tools

Outside of what-you-see-is-what-you-get word processing software lies a rich set of tools for producing documents using only plain text. In mathematics, computer science, and physics, TeX is the single most common tool used to typeset papers, while Markdown is quite common for personal use and for software documentation. Furthermore, plaintext typesetting tools may be used beyond documentation and articles, with the LaTeX "Beamer" class and the domain-specific language TiKZ being specifically tailored for presentations and graphics alike.

Software Engineering

IEEE Portable Operating System Interface (POSIX)

In the 1980s, the US government set to create a standard that computer operating systems would have to follow to be eligible for its use. A committee at IEEE quickly standardized around the popular System V Unix as a base for the specification. While POSIX was not particularly successful in its goals for government contracts, it found new life as a standard that all Unix-like operating systems could use for portability between them.

Minimalist Software

Separate from the spiraling complexity of modern software, for which the Linux kernel and GNU project are not immune from, lies a community of elite programmers who explicitly want their software to do less. In exchange for the reduced number, users of minimalist software get increased performance, greater security, and the ability to reasonably maintain a personal fork of they software they use. The most notable par of this community is Suckless, whose stated mission is to make software that "sucks less," admitting that "all software sucks." Minimalism is also closely associated with the Arch Linux, Gentoo Linux, OpenBSD, and Plan 9 operating systems in their entirety.

Rust for Linux

Rust is an increasingly-popular systems programming that emphasizes memory safety. In 2022, the Linux kernel began to allow developers to submit code in Rust. Currently, Asahi Linux is the most popular distribution which uses this functionality, which is used in its case in the distribution's custom fork of the kernel to provide compatibility with the Apple Silicon series of systems on chips.

The X Window System

The X Windowing System is the standard graphical user interface protocol for Unix-like systems. As a server, it has functionalities beyond serving a single user: it may forward the graphical output of a program over an internet, as was common in many organizations that could not afford dedicated workstations. It may also be used on operating systems that are not Unix-like at all, also being the standard graphical user interface protocol on OpenVMS. Windows and macOS may also use X programs through various compatibility layers.

The Wayland Protocol

X11 developers at Freedesktop.org saw the standard protocol as having inherent security flaws, such as the ability for a program to know the state of all others in the same X environment. Furthermore, looking to modernize the way users interact with their environments, then new Wayland protocol was designed to take advantage of hardware graphics acceleration universally present on modern PCs, tablets, and smartphones.

μCLinux

Maintained fork of the Linux kernel designed to run on microcontrollers without a memory management unit (MMU). This is the most common way to get Linux-based operating systems on embedded devices like the Apple iPod or Nintendo DS, which do not have have MMUs.

SELinux

Security-Enhanced Linux. It is the default kernel on the Red Hat family of distributions, which includes Red Hat Enterprise Linux, Fedora, and CentOS Stream.

Monolithic Kernels versus Microkernels

Perhaps the single largest choice an operating system designer can make is that between a monolithic kernel, which holds most the core functionality of the operating system within the kernel, or as a microkernel, which is as small as possible and has external software in userspace perform most of the operating system's duties. In the first year of the Linux kernel's development, this was a point in controversy: Andrew Tannenbaum, the creator of Minix, thought the monolithic kernel design was outdated even in 1991, while Linus Torvalds held to his opinion that a monolithic kernel was more practical in production. Some operating systems, such as macOS with the XNU kernel and Windows with the NT kernel, try to bridge the gap between these two designs by having a microkernel and a core set of servers within kernel space.

System Administration

Package Management with Nix

Nix is a package manager that is configured by a functional programming language also called Nix and is the central draw to NixOS, which is based around the package manager. It has gained substantial attention in the past few years because of its attention to reproducible builds, robustness, extensibility, and portability.

Virtual Machines

A virtual machine is a class of emulator that is expected to replicate all the functionalities and behavior of a physical machine in real time. They are particularly useful for testing and debugging system software and software that runs on an operating system not native to the host.

Containers

For developers and system administrators alike, containers provide a virtualized system to test and run specific programs outside of host operating system.

Choosing a Shell

There are several different shells, with each operating system seeming to have a different default. On just about every system, there exists a limited POSIX-compliant shell useful for basic tasks that require portability, but for interactive use, BASH, ZSH, and FISH are more common. Users of older systems may also be familiar with the Korn shell.

Single-board Computers

Slotting in price and ability below even most thin clients, these dimunitive computers have seen resounding success in educational, hobbyist, and embedded markets. Popular solutions include the Raspberry Pi and BeagleBoard lines of devices. Due to their lightweight nature, they rarely run a proprietary desktop operating system like Windows, usually opting for Linux or a specialized real-time operating system (RTOS).

Securing a Unix System

In production and at home, system administrators have become increasingly aware of the security threats that a system may face when exposed to people inside and outside the organization it belongs to. There is a list of standard techniques and preferred solutions to mitigate security risks.

PGP Encryption

Pretty Good Protection is a common standard for encryption on machines running a Unix-like operating system. GNU Privacy Guard is one implementation of it. In particular, this workshop or presentation should focus upon encrypting e-mail with it, and can be tied together with a potential keysharing event.

A workshop was given by Mannan on February 9, 2024.

Networked File Systems

Users increasingly want to access their data remotely. From the 1980s, Sun Microsystems, a vendor of Unix workstations, had created the Network File System standard for multiple devices to access the same storage over a network. For Windows and OS/2 users, Common Internet File System (CIFS), formerly known as Server Message Block, is the standard protocol to access information over an internet. Due to their popularity, both have been implemented as servers within the mainline Linux kernel despite the security risks they may impose. Users of Unix-like operating systems may run Samba to use CIFS.

Compiling a Linux Kernel

For many users of Linux-based operating systems, recompiling one's own kernel is a rite of passage to becoming an advanced user. By understanding the features and options that the kernel has, users may enable functionality they need or disable functionality they do not need to save space and improve performance, especially during startup. On modern systems, the task of configuring and compiling a Linux kernel is not especially involved, but contains many options that may not seem especially clear even with the included documentation.

Writing Manual Pages

Documentation is often overlooked by developers, especially in fast-moving projects, but is the user's main way of understanding what a particular protocol or piece of software does. The on-line manual page format has been relatively standard and straightforward since its inception in the 1970s, and will be second nature to those familiar with the troff typesetting utility.

Volume Managers

When computer systems grow large enough, they may include multiple hard drives. To increase performance, back up data, and create a seamless user experience, volume management software can make an operating system view multiple disks as a single large volume. On Linux-based systems, Logical Volume Management is common, while ZFS is common on Linux, BSD, and Solaris operating systems, especially in enterprise use or in NAS installations.

Systemd

Most popular modern Linux distributions use the init system Systemd. It seeks to improve startup times, streamline system administration, and make running multiple instances of the same daemon concurrently a simple task. Systemd is also the most controversial part of modern GNU/Linux systems. Seeking to do more than traditional init systems, it is seen as overly-complicated and difficult to maintain, and in general at odds with the principles that make the Unix-like family of operating systems attractive. Furthermore, Systemd is not a portable program due to its complicated nature and its heavy use of the Linux kernel API as opposed to POSIX, and may impose vendor lock-in to the GNU/Linux ecosystem by having popular software like GNOME need it as a dependency.

Non-Linux Operating Systems

Berkeley Software Distribution (BSD)

In the 1980s, the University of California, Berkeley gained access to the Unix source. Associates of the university modified the sources and distributed them under a special license that allowed people to distribute the software nearly without restriction. These modified sources later became foundational to several commercial Unix variants. In the late 1980s, a company looking to commercialize the product called BSDi was founded. Although the vast majority of the operating system was free software derived from the BSD project, six files relating to the networking code that originated from AT&T were still present within their operating system's source code. AT&T promptly sued BSDi, but the court ruled in favor of the startup's favor. This operating system, known as 386BSD, became the base for the subsequent free BSD projects which are active thirty years later, most notably FreeBSD, NetBSD, and OpenBSD. Darwin, the core of macOS, iOS, and iPad OS, also shares a substantial amount of code with FreeBSD, and the two projects frequently exchange code.

A workshop was given on December 11, 2023 by Nick D.

Windows Subsystem for Linux (WSL)

As a replacement for the previous Windows NT "personality" that could run POSIX programs and Windows Services for Unix, Microsoft has bundled Linux compatibility into Windows starting with Windows 10. Windows Subsystem for Linux 2 (WSL2) uses a complete Linux kernel and has compatibility with graphical programs on the Windows API.

Plan 9 From Bell labs

Named for the cult classic Ed Wood film Plan 9 From Outer Space, this operating system was created by the original developers of Unix at Bell Labs as a continuation and evolution of the Unix philosophy — simplicity, maintainability, and "everything is a file" — while reducing the amount of work required to run distributed programs and graphical user interfaces. It is the origin of the UTF-8 standard and 9P protocol.

Unix Workstations

Before GNU/Linux became the most popular Unix-like operating system for software development, servers, and scientific computing, and before the Personal Computer platform was seen as capable enough for these applications, vendors of specialized high-end personal computers each offered their own variant of Unix, usually based on Version 7 Unix, System V Unix, or BSD. They also often had specialized microprocessors, like SPARC, POWER and PowerPC, PA-RISC, Alpha, and Itanium. While this class of hardware was largely rendered redundant by 64-bit x86 workstations, the software that ran on them survives in the form of AIX from IBM, HP-UX from HP, Solaris from Oracle (formerly by Sun), and macOS from Apple (derived from NeXT).

Social Issues in Computing

Free Software Licenses

In the past decade, releasing one's own software as open-source has become the standard method of distribution. Most people who release open-source software prefer to give a higher degree of freedom to the software's users: they may choose a free software license that enables this. Choosing between the myriad ready-to-use licenses or writing a new license is a point of concern for many developers who may not understand the rights they are or are not granting their software's users.

The Intel Management Engine and Free BIOSes

The BIOS (basic input/output system) is the last piece of common computer software that does not have a standard free implementation. The Intel Management engine is a small CPU core present on the motherboard's chipset that currently has an unknown purpose, but runs a fully-featured multitasking operating system and has complete access to the computer's hardware, including the memory, disks, and network interfaces. A common goal of free BIOS projects is to disable this device. Two of the most popular and successful projects for the PC platform are Coreboot and Libreboot, with the latter being a fork of the former without binary blobs.

Big Tech and Free Software

Free software has become increasingly preferred by developers as it guarantees rights for themselves and their users. Despite its legal nonprofit status, the Linux Foundation can be considered a commercial entity, emphasizing its corporate members such as Microsoft, Google, and Amazon Web Services. Their contributions to the free software ecosystem can be considered beneficial to projects themselves, but free software advocates are concerned that these large companies are using free software out of economic incentive rather than as a more ethical method of distribution of their products. Permissive licenses such as BSD and MIT have been similarly divisive because they do not require the parties which modify the source code to publicly publish their changes, leading to situations where large projects do not receive contributions that could have benefited the entire community had they not been integrated exclusively in a proprietary fork.


This page is maintained by Nicholas Di Girolamo (Public Key).