The Linux Programmer's Toolbox.Pdf

Total Page:16

File Type:pdf, Size:1020Kb

The Linux Programmer's Toolbox.Pdf The Linux Programmer’s Toolbox Prentice Hall Open Source Software Development Series Arnold Robbins, Series Editor “Real world code from real world applications” Open Source technology has revolutionized the computing world. Many large-scale projects are in production use worldwide, such as Apache, MySQL, and Postgres, with programmers writing applications in a variety of languages including Perl, Python, and PHP.These technologies are in use on many different systems, ranging from proprietary systems, to Linux systems, to traditional UNIX systems, to mainframes. The Prentice Hall Open Source Software Development Series is designed to bring you the best of these Open Source technologies. Not only will you learn how to use them for your projects, but you will learn from them. By seeing real code from real applications, you will learn the best practices of Open Source developers the world over. Titles currently in the series include: Linux® Debugging and Performance Tuning: Tips and Techniques Steve Best 0131492470, Paper, ©2006 Understanding AJAX: Using JavaScript to Create Rich Internet Applications Joshua Eichorn 0132216353, Paper, ©2007 Embedded Linux Primer Christopher Hallinan 0131679848, Paper, ©2007 SELinux by Example Frank Mayer, David Caplan, Karl MacMillan 0131963694, Paper, ©2007 UNIX to Linux® Porting Alfredo Mendoza, Chakarat Skawratananond, Artis Walker 0131871099, Paper, ©2006 Linux Programming by Example: The Fundamentals Arnold Robbins 0131429647, Paper, ©2004 The Linux® Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures Claudia Salzberg, Gordon Fischer, Steven Smolski 0131181637, Paper, ©2006 OSD_Series_7x9_25.indd 1 6/27/06 5:44:08 PM The Linux Programmer’s Toolbox John Fusco Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trade- marks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied war- ranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or con- sequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 [email protected] For sales outside the United States, please contact: International Sales [email protected] Visit us on the Web: www.prenhallprofessional.com Library of Congress Cataloging-in-Publication Data Fusco, John. The Linux programmer’s toolbox / John Fusco. p. cm. Includes bibliographical references and index. ISBN 0-13-219857-6 (pbk. : alk. paper) 1. Linux. 2. Operating systems (Computers) I. Title. QA76.76.O63F875 2007 005.4'32—dc22 2006039343 Copyright © 2007 Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and per- mission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval sys- tem, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to: Pearson Education, Inc. Rights and Contracts Department One Lake Street Upper Saddle River, NJ 07458 Fax: (201) 236-3290 ISBN 0-13-219857-6 Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts. First printing, March 2007 To my wife, Lisa, and my children, Andrew, Alex, and Samantha. This page intentionally left blank Contents Foreword . xvii Preface . xix Acknowledgments . xxiii About the Author . xxv Chapter 1 Downloading and Installing Open Source Tools . 1 1.1 Introduction . 1 1.2 What Is Open Source? . 2 1.3 What Does Open Source Mean to You? . 2 1.3.1 Finding Tools . 3 1.3.2 Distribution Formats . 4 1.4 An Introduction to Archive Files . 4 1.4.1 Identifying Archive Files . 6 1.4.2 Querying an Archive File . 7 1.4.3 Extracting Files from an Archive File . 11 1.5 Know Your Package Manager . 12 1.5.1 Choosing Source or Binary . 14 1.5.2 Working with Packages . 16 1.6 Some Words about Security and Packages . 17 1.6.1 The Need for Authentication . 19 1.6.2 Basic Package Authentication . 19 1.6.3 Package Authentication with Digital Signatures . 21 1.6.4 GPG Signatures with RPM . 22 1.6.5 When You Can’t Authenticate a Package . 25 vii viii Contents 1.7 Inspecting Package Contents . 27 1.7.1 How to Inspect Packages . 28 1.7.2 A Closer Look at RPM Packages . 30 1.7.3 A Closer Look at Debian Packages . 31 1.8 Keeping Packages up to Date . 33 1.8.1 Apt: Advanced Package Tool . 34 1.8.2 Yum: Yellowdog Updater Modified . 35 1.8.3 Synaptic: The GUI Front End for APT . 36 1.8.4 up2date: The Red Hat Package Updater . 37 1.9 Summary . 39 1.9.1 Tools Used in This Chapter . 39 1.9.2 Online References . 40 Chapter 2 Building from Source . 41 2.1 Introduction . 41 2.2 Build Tools . 41 2.2.1 Background . 42 2.2.2 Understanding make . 44 2.2.3 How Programs Are Linked . 67 2.2.4 Understanding Libraries . 69 2.3 The Build Process . 74 2.3.1 The GNU Build Tools . 74 2.3.2 The configure Stage . 74 2.3.3 The Build Stage: make . 77 2.3.4 The Install Stage: make install . 78 2.4 Understanding Errors and Warnings . 78 2.4.1 Common Makefile Mistakes . 79 2.4.2 Errors during the configure Stage . 82 2.4.3 Errors during the Build Stage . 83 2.4.4 Understanding Compiler Errors . 86 2.4.5 Understanding Compiler Warnings . 88 2.4.6 Understanding Linker Errors . 98 2.5 Summary . 100 2.5.1 Tools Used in This Chapter . 101 2.5.2 Online References . 101 Contents ix Chapter 3 Finding Help . 103 3.1 Introduction . 103 3.2 Online Help Tools . 103 3.2.1 The man Page . 104 3.2.2 man Organization . 105 3.2.3 Searching the man Pages: apropos . 107 3.2.4 Getting the Right man Page: whatis . 110 3.2.5 Things to Look for in the man Page . ..
Recommended publications
  • CST8207 – Linux O/S I
    Mounting a Filesystem Directory Structure Fstab Mount command CST8207 - Algonquin College 2 Chapter 12: page 467 - 496 CST8207 - Algonquin College 3 The mount utility connects filesystems to the Linux directory hierarchy. The mount point is a directory in the local filesystem where you can access mounted filesystem. This directory must exist before you can mount a filesystem. All filesystems visible on the system exist as a mounted filesystem someplace below the root (/) directory CST8207 - Algonquin College 4 can be mounted manually ◦ can be listed in /etc/fstab, but not necessary ◦ all mounting information supplied manually at command line by user or administrator can be mounted automatically on startup ◦ must be listed /etc/fstab, with all appropriate information and options required Every filesystem, drive, storage device is listed as a mounted filesystem associated to a directory someplace under the root (/) directory CST8207 - Algonquin College 5 CST8207 - Algonquin College 6 Benefits Scalable ◦ As new drives are added and new partitions are created, further filesystems can be mounted at various mount points as required. ◦ This means a Linux system does not need to worry about running out of disk space. Transparent ◦ No application would stop working if transferred to a different partition, because access to data is done via the mount point. ◦ Also transparent to user CST8207 - Algonquin College 7 All known filesystems volumes are typically listed in the /etc/fstab (static information about filesystem) file to help automate the mounting process If it is not listed in the /etc/fstab file, then all appropriate information about the filesystem needs to be listed manually at the command line.
    [Show full text]
  • Thermo-Calc-Installation-Guides.Pdf
    Thermo-Calc Installation Guides Thermo-Calc Version 2021b Including the TC-Python and TC-Toolbox for MATLAB® Installation Guides Copyright 2021 Thermo-Calc Software AB. All rights reserved. Information in this document is subject to change without notice. The software or database described in this document is furnished under a license agreement or nondisclosure agreement. The software or database may be used or copied only in accordance with the terms of those agreements. You can read more on our website. Thermo-Calc Software AB Råsundavägen 18, SE-169 67 Solna, Sweden +46 8 545 959 30 www.thermocalc.com Installing Thermo-Calc Installing Thermo-Calc In this section: Key to Using this Guide 4 Installation Terminology 6 About the Thermo-Calc Components Being Installed 8 System Requirements 10 Platforms Tested and SDK Availability 11 Installing Thermo-Calc ǀ 3 of 141 Installing Thermo-Calc Key to Using this Guide This guide is available in PDF format: (1) On the website or (2) when in Thermo-Calc go to Help → Manuals Folder → Installation. This installation guide is for all Thermo-Calc installations running on Windows, macOS, or Linux operating systems. It is also applicable to previously installed versions of Thermo-Calc (the new version is installed next to the old version). This guide includes information about: l The types of licenses and installations available. l Installing the Thermo-Calc software and its components on standalone computers, servers, and client computers. l Installing the license management software for network installations. l Retrieving and installing license files. l Details about the specific instructions needed to install two of the SDKs, TC-Python and TC-Toolbox for MATLAB®.
    [Show full text]
  • The GNU Linker
    The GNU linker ld (GNU Binutils) Version 2.37 Steve Chamberlain Ian Lance Taylor Red Hat Inc [email protected], [email protected] The GNU linker Edited by Jeffrey Osier ([email protected]) Copyright c 1991-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Overview :::::::::::::::::::::::::::::::::::::::: 1 2 Invocation ::::::::::::::::::::::::::::::::::::::: 3 2.1 Command-line Options ::::::::::::::::::::::::::::::::::::::::: 3 2.1.1 Options Specific to i386 PE Targets :::::::::::::::::::::: 40 2.1.2 Options specific to C6X uClinux targets :::::::::::::::::: 47 2.1.3 Options specific to C-SKY targets :::::::::::::::::::::::: 48 2.1.4 Options specific to Motorola 68HC11 and 68HC12 targets :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 48 2.1.5 Options specific to Motorola 68K target :::::::::::::::::: 48 2.1.6 Options specific to MIPS targets ::::::::::::::::::::::::: 49 2.1.7 Options specific to PDP11 targets :::::::::::::::::::::::: 49 2.2 Environment Variables :::::::::::::::::::::::::::::::::::::::: 50 3 Linker Scripts:::::::::::::::::::::::::::::::::: 51 3.1 Basic Linker Script Concepts :::::::::::::::::::::::::::::::::: 51 3.2 Linker Script
    [Show full text]
  • Practical C Programming, 3Rd Edition
    Practical C Programming, 3rd Edition By Steve Oualline 3rd Edition August 1997 ISBN: 1-56592-306-5 This new edition of "Practical C Programming" teaches users not only the mechanics or programming, but also how to create programs that are easy to read, maintain, and debug. It features more extensive examples and an introduction to graphical development environments. Programs conform to ANSI C. 0 TEAM FLY PRESENTS Table of Contents Preface How This Book is Organized Chapter by Chapter Notes on the Third Edition Font Conventions Obtaining Source Code Comments and Questions Acknowledgments Acknowledgments to the Third Edition I. Basics 1. What Is C? How Programming Works Brief History of C How C Works How to Learn C 2. Basics of Program Writing Programs from Conception to Execution Creating a Real Program Creating a Program Using a Command-Line Compiler Creating a Program Using an Integrated Development Environment Getting Help on UNIX Getting Help in an Integrated Development Environment IDE Cookbooks Programming Exercises 3. Style Common Coding Practices Coding Religion Indentation and Code Format Clarity Simplicity Summary 4. Basic Declarations and Expressions Elements of a Program Basic Program Structure Simple Expressions Variables and Storage 1 TEAM FLY PRESENTS Variable Declarations Integers Assignment Statements printf Function Floating Point Floating Point Versus Integer Divide Characters Answers Programming Exercises 5. Arrays, Qualifiers, and Reading Numbers Arrays Strings Reading Strings Multidimensional Arrays Reading Numbers Initializing Variables Types of Integers Types of Floats Constant Declarations Hexadecimal and Octal Constants Operators for Performing Shortcuts Side Effects ++x or x++ More Side-Effect Problems Answers Programming Exercises 6.
    [Show full text]
  • The “Stabs” Debug Format
    The \stabs" debug format Julia Menapace, Jim Kingdon, David MacKenzie Cygnus Support Cygnus Support Revision TEXinfo 2017-08-23.19 Copyright c 1992{2021 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Julia Menapace, Jim Kingdon, and David MacKenzie. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Overview of Stabs ::::::::::::::::::::::::::::::: 1 1.1 Overview of Debugging Information Flow ::::::::::::::::::::::: 1 1.2 Overview of Stab Format ::::::::::::::::::::::::::::::::::::::: 1 1.3 The String Field :::::::::::::::::::::::::::::::::::::::::::::::: 2 1.4 A Simple Example in C Source ::::::::::::::::::::::::::::::::: 3 1.5 The Simple Example at the Assembly Level ::::::::::::::::::::: 4 2 Encoding the Structure of the Program ::::::: 7 2.1 Main Program :::::::::::::::::::::::::::::::::::::::::::::::::: 7 2.2 Paths and Names of the Source Files :::::::::::::::::::::::::::: 7 2.3 Names of Include Files:::::::::::::::::::::::::::::::::::::::::: 8 2.4 Line Numbers :::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.5 Procedures ::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.6 Nested Procedures::::::::::::::::::::::::::::::::::::::::::::: 11 2.7 Block Structure
    [Show full text]
  • Debugging with DDD
    Debugging with DDD User’s Guide and Reference Manual First Edition, for DDD Version 3.2 Last updated 2000-01-03 Andreas Zeller Debugging with DDD User’s Guide and Reference Manual Copyright c 2000 Universität Passau Lehrstuhl für Software-Systeme Innstraße 33 D-94032 Passau GERMANY Distributed by Free Software Foundation, Inc. 59 Temple Place – Suite 330 Boston, MA 02111-1307 USA ddd and this manual are available via the ddd www page. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the sections entitled “Copying” and “GNU General Public License” (see Appendix G [License], page 181) are included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Send questions, comments, suggestions, etc. to [email protected]. Send bug reports to [email protected]. i Short Contents Summary of DDD .............................................. 1 1 A Sample DDD Session ...................................... 5 2 Getting In and Out of DDD ................................... 15 3 The DDD Windows ........................................ 39 4 Navigating through the Code .................................. 71 5 Stopping the Program ....................................... 79 6 Running the Program ....................................... 89 7 Examining Data .........................................
    [Show full text]
  • Smart Battery Charging Programmer Software User Manual Smart Battery Charging Programmer Software User Manual
    Smart Battery Charging Programmer Software User Manual Smart Battery Charging Programmer Software User Manual 1. Introduction ............................................................................................................... 1 ................................................................................................... 2. Prerequisites 1 .................................................................................................. 2.1 System requirements 1 .................................................................................................. 2.2 Hardware installation 1 ................................................................................................... 2.3 Software installation 2 3. User Interface ............................................................................................................ 2 .............................................................................................................. 3.1 Basic layout 2 CURVE PROFILE ......................................................................................................... 3.2 2 SETTING ...................................................................................... ............. 3.3 ................ 3 . ...................................................................................................... 4 General Operation 4 ...................................................................................................... 4.1 Connection 4 4.2 .........................................................................
    [Show full text]
  • Vmware Fusion 12 Vmware Fusion Pro 12 Using Vmware Fusion
    Using VMware Fusion 8 SEP 2020 VMware Fusion 12 VMware Fusion Pro 12 Using VMware Fusion You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ VMware, Inc. 3401 Hillview Ave. Palo Alto, CA 94304 www.vmware.com © Copyright 2020 VMware, Inc. All rights reserved. Copyright and trademark information. VMware, Inc. 2 Contents Using VMware Fusion 9 1 Getting Started with Fusion 10 About VMware Fusion 10 About VMware Fusion Pro 11 System Requirements for Fusion 11 Install Fusion 12 Start Fusion 13 How-To Videos 13 Take Advantage of Fusion Online Resources 13 2 Understanding Fusion 15 Virtual Machines and What Fusion Can Do 15 What Is a Virtual Machine? 15 Fusion Capabilities 16 Supported Guest Operating Systems 16 Virtual Hardware Specifications 16 Navigating and Taking Action by Using the Fusion Interface 21 VMware Fusion Toolbar 21 Use the Fusion Toolbar to Access the Virtual-Machine Path 21 Default File Location of a Virtual Machine 22 Change the File Location of a Virtual Machine 22 Perform Actions on Your Virtual Machines from the Virtual Machine Library Window 23 Using the Home Pane to Create a Virtual Machine or Obtain One from Another Source 24 Using the Fusion Applications Menus 25 Using Different Views in the Fusion Interface 29 Resize the Virtual Machine Display to Fit 35 Using Multiple Displays 35 3 Configuring Fusion 37 Setting Fusion Preferences 37 Set General Preferences 37 Select a Keyboard and Mouse Profile 38 Set Key Mappings on the Keyboard and Mouse Preferences Pane 39 Set Mouse Shortcuts on the Keyboard and Mouse Preference Pane 40 Enable or Disable Mac Host Shortcuts on the Keyboard and Mouse Preference Pane 40 Enable Fusion Shortcuts on the Keyboard and Mouse Preference Pane 41 Set Fusion Display Resolution Preferences 41 VMware, Inc.
    [Show full text]
  • File System, Files, and *Tab /Etc/Fstab
    File system, files, and *tab File system files directories volumes, file systems mounting points local versus networked file systems 1 /etc/fstab Specifies what is to be mounted where and how fs_spec: describes block special device for remote filesystem to be mounted fs_file: describes the mount point fs_vfstype: describes the type of file system fs_mntops: describes the mount options associated with the filesystem 2 /etc/fstab cont. fs_freq: used by the dump command fs_passno: used by fsck to determine the order in which checks are done at boot time. Root file systems should be specified as 1, others should be 2. Value 0 means that file system does not need to be checked 3 /etc/fstab 4 from blocks to mounting points metadata inodes directories superblocks 5 mounting file systems mounting e.g., mount -a unmounting manually or during shutdown umount 6 /etc/mtab see what is mounted 7 Network File System Access file system (FS) over a network looks like a local file system to user e.g. mount user FS rather than duplicating it (which would be a disaster) Developed by Sun Microsystems (mid 80s) history for NFS: NFS, NFSv2, NFSv3, NFSv4 RFC 3530 (from 2003) take a look to see what these RFCs are like!) 8 Network File System How does this actually work? server needs to export the system client needs to mount the system server: /etc/exports file client: /etc/fstab file 9 Network File System Security concerns UID GID What problems could arise? 10 Network File System example from our raid system (what is a RAID again?) Example of exports file from
    [Show full text]
  • The Linux Command Line
    The Linux Command Line Fifth Internet Edition William Shotts A LinuxCommand.org Book Copyright ©2008-2019, William E. Shotts, Jr. This work is licensed under the Creative Commons Attribution-Noncommercial-No De- rivative Works 3.0 United States License. To view a copy of this license, visit the link above or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042. A version of this book is also available in printed form, published by No Starch Press. Copies may be purchased wherever fine books are sold. No Starch Press also offers elec- tronic formats for popular e-readers. They can be reached at: https://www.nostarch.com. Linux® is the registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. This book is part of the LinuxCommand.org project, a site for Linux education and advo- cacy devoted to helping users of legacy operating systems migrate into the future. You may contact the LinuxCommand.org project at http://linuxcommand.org. Release History Version Date Description 19.01A January 28, 2019 Fifth Internet Edition (Corrected TOC) 19.01 January 17, 2019 Fifth Internet Edition. 17.10 October 19, 2017 Fourth Internet Edition. 16.07 July 28, 2016 Third Internet Edition. 13.07 July 6, 2013 Second Internet Edition. 09.12 December 14, 2009 First Internet Edition. Table of Contents Introduction....................................................................................................xvi Why Use the Command Line?......................................................................................xvi
    [Show full text]
  • Filesystem Hierarchy Standard
    Filesystem Hierarchy Standard LSB Workgroup, The Linux Foundation Filesystem Hierarchy Standard LSB Workgroup, The Linux Foundation Version 3.0 Publication date March 19, 2015 Copyright © 2015 The Linux Foundation Copyright © 1994-2004 Daniel Quinlan Copyright © 2001-2004 Paul 'Rusty' Russell Copyright © 2003-2004 Christopher Yeoh Abstract This standard consists of a set of requirements and guidelines for file and directory placement under UNIX-like operating systems. The guidelines are intended to support interoperability of applications, system administration tools, development tools, and scripts as well as greater uniformity of documentation for these systems. All trademarks and copyrights are owned by their owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Permission is granted to make and distribute verbatim copies of this standard provided the copyright and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this standard under the conditions for verbatim copying, provided also that the title page is labeled as modified including a reference to the original standard, provided that information on retrieving the original standard is included, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this standard into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the copyright holder. Dedication This release is dedicated to the memory of Christopher Yeoh, a long-time friend and colleague, and one of the original editors of the FHS.
    [Show full text]
  • The Focus - Issue 36
    Contents The Focus - Issue 36 A Publication for ANSYS Users Contents Feature Articles ● Linux & ANSYS: Lessons Learned ● Backup Tool ● Design Modeler FAQ On the Web ● APDL Customization course notes now available for purchase ● ANSYS and MathCAD ● ANSYS Acquires Century Dynamics Resources ● PADT Support: How can we help? ● Upcoming Training at PADT ● About The Focus ❍ The Focus Library ❍ Contributor Information ❍ Subscribe / Unsubscribe ❍ Legal Disclaimer http://www.padtinc.com/epubs/focus/common/contents.asp [3/28/2005 9:06:12 AM] Linux & ANSYS: Lessons Learned The Focus - Issue 36 A Publication for ANSYS Users Linux & ANSYS: Lessons Learned by Eric Miller, PADT Every couple of years, the computing picture for analysts gets turned upside down. For a long time now the industry has been moving from Unix workstations to Windows/Intel desktop machines. The wintel price/performance has been fantastic, the IT guys are happier, and all of that productivity software that you spend so much time with runs in the same spot. We have been happy with a stable and known environment. However, accepting the fact that unless you work for a big company that can buy some Unix servers, you just don’t have an easy way to get some extra horsepower other then getting a new box. Then along comes this Finnish guy that may or may not have been named after Lucy’s little brother. With not much of a life and a very large brain, he popped out the majority of a complete and free version of Unix that anyone can use, breaking the stranglehold of (expensive) proprietary Unix OS’s that ran on (expensive) proprietary hardware.
    [Show full text]