Unix Programmer's Manual

Total Page:16

File Type:pdf, Size:1020Kb

Unix Programmer's Manual UNIX™ TIME-SHARING SYSTEM: UNIX PROGRAMMER'S MANUAL Seventh Edition. Volume 2A January, 1979 Bell Telephone Laboratories. Incorporated Murray Hill, New Jersey Copyright 191'9" Bell Telepho,ne Laboratories. fncot1)orated. Holders of a UNIX ™ software license are permi ned to c:opy this' document" or any portion of it" as' necessary fo:t-ficensed: use" of the software. pr'ovided tbis copyright, notice atld, sta(,ement of permission are'induded. UNIX Programmer's Manual Volume 2 - Supplementary Documents Seventh Edition January 10, 1979 This volume contains documents which supplement the information contained in Volume 1 of The usut Programmer's ManuaL The documents here are grouped roughly into the areas of basics. editing, language tools, document preparation. and system maintenance. Further general information may be found in the Bell System Technical Journal special issue on UNIX, July-August, 1978. Many of the documents cited within this volume as Bell Laboratories internal memoranda or Computing Science Technical Reports (CSTR) are also contained here. These documents contain occasional localisms, typically references to other operating sys­ tems like GCOS and IBM. In all cases, such references may be safely ignored by UNIX users. General Works 1. 7th Edition UNIX - Summary. A concise summary of the facilities available on UNIX. 2. The UNIX Time-Sharing System. D. M. Ritchie and K. Thompson. The original UNIX paper, reprinted from CACM. Getting Started 3. UNIX for Beginners - Second Edition. B. W. Kernighan. An introduction to the most basic use of the system. 4. A Tutorial Introduction to the UNIX Text Editor. B. W. Kernighan. An easy way to get swted with the editor. S. Advanced Editing on UNIX. B. W. Kernighan. The next step. 6. An Introduction to the UNIX Shell. S. R. Bourne. An introduction to the capabilities of the command interpreter, the shell . ..; 7. Learn - Computer Aided Instruction on UNIX. M. E. Lesk and B. W. Kernighan. Describes a computer-aided instruction program that walks new users through the basics of files, the editor, and document preparation software. Document Preparation 8. Typing Documents on the UNIX. System. M. E. Lesk. Describes the basic use of the formatting tools. Also describes u-ms", a standard­ ized package of formatting requests that can be used to layout most documents (including those in this volume). tUNIX is a Trademark of Bell Laboralories. 9. A System for Typesetting Mathematics. B. W. Kernighan and L. L. Cherry Describes EQN. an easy-to-Iearn language for doing high-quality mathematical typesetting. 10. TBL - A Program to Format Tables. M. E. Lesk. A program to permit easy specification of tabula.r· material for typesetting. Again, easy to learn and use. 11. Some Applications of Inverted Indexes on the UNIX System. M. E. Lesk. Describes. among other things, the program REFER which tnls in bibliographic citations from a data base automatically. 12. NROFF/TROFF User's Manual. J. F. Ossanna. The basic formatting program. 13. A TROFF Tutorial. B. W. Kernighan. An introduction to TROFF for those who really want to know such things. 14. The C Programming Language - Reference Manual. D. M. Ritchie. Official statement of the syntax and semantics of C. Should be sup­ plemented by ThB C Progra.mming Language. B. W. Kernighan and D. M. Ritchie, Prentice-Hall. 1978. which contains a tutorial introduction and many examples. /' 15. Lint. A C Program Checker. S. C. Johnson. Checks C programs for syntax errors, type violations, portability problems, and a variety of probable errors. V1S. Make - A Program for Maintaining Computer Programs. S. I. Feldman. Indespensable tool for making sure that large programs are properly compiled with minimal effort. j 17. UNIX Programming. B. W. Kernighan and D. M. Ritchie. Describes the programmming interface to the operating system and the standard I/O library. .. lB. A Tutorial Inntroduction fo ADB. J.F. Maranzano and S. R. Bourne. How to use the ADB Debugger. Supporting Tools and Languages ( 19. YACC: Yet Another Compiler-Compiler. S. C. Johnson. Converts a BNF specification of a language and semantic actions writ­ ten in C into a compiler of the language. 20. LEX - A lexical Analyzer Generator. M. E. Lesk and E. Schmidt. Creates a recognizer for a set of regular expressions; each regular expression can be followed by arbitrary C code which 'will be executed when the regular expression is found. 21. A Portable Fortran 77 Compiler. S. 1. Feldman and P. J. Weinberger. The first Fortran 77 compiler. and still one of the best. NOTE: This document has been moved to Volume 2c of the UNIX Programmer's Manual. 22. Ratfor - A Preprocessor for a Rational Fortran. B. W. Kernighan. Converts a Fortran with C-like control structures and cosmetics into real. ugly Fortran. 23. The M4 Macro Processor. B. W. Kernighan and D. M. Ritchie. M4 is a macro processor useful as a front end for C, Ratfor. Cobol. and in its own right. "'- 3 - ../ 24. SED - A Non-interactive Text Editor. L. E. McMahon. A variant of the editor for processing large inputs. ~ 25. AWK - A Pattern Scanning and Processing Language. A. V. Aho, B. W. Kernighan and P. J. Weinberger. Makes it easy to specify many data transformation and selection operations. 26. DC - An Interactive Desk Calculator. R. H. Morris and L. L. Cherry. A super HP calculator, if you don't need floating point. 27. BC - An Arbitrary Precision Desk-Calculator Language. L. L. Cherry and R. H. Morris. A front end for DC that provides infix notation, control now, and built-in functions. 28. UNIX Assembler Reference Manual. D. M. Ritchie. The ultimate dead language. Implementation. Maintenance, and Misc:ellaneous 29. Setting Up UNIX - Seventh Edition. C. B. Haley and D. M. Ritchie. How to configure and get your system running. 30. Regenerating System Software. C. B. Haley and D. M. Ritchie. Whal do do when you have to change things. 31. UNIX Implementation. .K. Thompson. How the system actually works inside. 32. The UNIX 110 System. D. M. Ritchie. How the 110 system really works. 33. A Tour Through the UNIX C Compiler. D. M. Ritchie. How the PDP-II compiler works inside. 34. A Tour Through the Portable C Compiler. S. C. Johnson. How the portable C compiler works inside. 35. A Dial-Up Network of UNIX Systems. D. A. Nowitz and M. E. Lesk. Describes UUCP t a program for communicating files between UNIX systems. 36. UUCP Implementation Description. D. A. Nowitz. How UUCP works., and how to administer iL 37. On the Security of UNIX. D. M. Ritchie. Hints on how to break UNIX, and how to avoid doing so. 38. Password Security: A Case History. R. H. Morris and K. Thompson. How the bad guys used to be able to break the password algorithm, and why they can't now, alleast not so easily. LEARN - Computer-Aided Instruction on UNIX (Second Edition) Brian W. Kernighan Michael E. Lesk Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT This paper describes the second version of the learn program for interpret­ ing CAl scripts on the U~lxt operating system, and a set of scripts that provide a computerized introduction to the system. Six current scripts cover basic commands and file handling, the editor, additional file handling commands, the eqn program for mathematical typing, the H -ms" package of formatting macros, and an introduction to the C pro­ gramming language. These scripts now include a total of about 530 lessons. Many users from a wide variety of backgrounds have used learn to acquire basic UNIX skills. Most usage involves the first two scripts, an introduc­ tion to files and commands, and the text editor. The second version of learn is about four times faster than the previous one in CPU utilization, and much faster in perceived time because of better overlap of computing and printing. It also requires less file space than the first version. Many of the lessons have been revised; new material has been added to reflect changes and enhancements in the UNIX system itself. Script-writing is also easier because of revisions to the script language. January 30, 1979 tUNIX is a Trademark o( Bell Laboratories. LEARN - Computer~Aided Instruction on UNIX (Second Edition) Brian ~V. Kernighan il-lichael E. Lesk Bell Laboratories Murray Hill, New Jersey 07974 1. Introduction. Learn is a driver for CAl scripts. It is intended to permit the easy composition of lessons and lesson fragments to teach people computer skills. Since it is teaching the same system on which it is implemented, it makes direct use of UNIxt facilities to create a controlled UNIX environment. The system includes two main parts: (1) a driver that interprets the lesson scripts; and (2) the lesson scripts themselves. At present there are six scripts: basic file handling commands the UNIX text editor ed advanced file handling the "eqn language for typing mathematics the U-mS" macro package for document formatting the C programming language The purported advantages of CAl scripts for training in computer skills include the follow ... ing: (a) students are forced to perform the exercises that ;.re in fact the basis of training in any case~ (b) students receive immediate feedback and confirmation of progress~ (c) students may progress at their own rate; . (d) no schedule requirements are imposed; students may study at any time convenient for them; (e) the lessons may be improved individually and the improvements are immediately available to new users; (f) since the student has access to a computer for the CAl script there is a place to do exercises; (g) the use of high technology will improve student motivation and the interest of their management.
Recommended publications
  • GNU M4, Version 1.4.7 a Powerful Macro Processor Edition 1.4.7, 23 September 2006
    GNU M4, version 1.4.7 A powerful macro processor Edition 1.4.7, 23 September 2006 by Ren´eSeindal This manual is for GNU M4 (version 1.4.7, 23 September 2006), a package containing an implementation of the m4 macro language. Copyright c 1989, 1990, 1991, 1992, 1993, 1994, 2004, 2005, 2006 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.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License.” i Table of Contents 1 Introduction and preliminaries ................ 3 1.1 Introduction to m4 ............................................. 3 1.2 Historical references ............................................ 3 1.3 Invoking m4 .................................................... 4 1.4 Problems and bugs ............................................. 8 1.5 Using this manual .............................................. 8 2 Lexical and syntactic conventions ............ 11 2.1 Macro names ................................................. 11 2.2 Quoting input to m4........................................... 11 2.3 Comments in m4 input ........................................ 11 2.4 Other kinds of input tokens ................................... 12 2.5 How m4 copies input to output ................................ 12 3 How to invoke macros........................
    [Show full text]
  • GNU M4, Version 1.4.19 a Powerful Macro Processor Edition 1.4.19, 28 May 2021
    GNU M4, version 1.4.19 A powerful macro processor Edition 1.4.19, 28 May 2021 by Ren´eSeindal, Fran¸coisPinard, Gary V. Vaughan, and Eric Blake ([email protected]) This manual (28 May 2021) is for GNU M4 (version 1.4.19), a package containing an implementation of the m4 macro language. Copyright c 1989{1994, 2004{2014, 2016{2017, 2020{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, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." i Table of Contents 1 Introduction and preliminaries ::::::::::::::::: 3 1.1 Introduction to m4 :::::::::::::::::::::::::::::::::::::::::::::: 3 1.2 Historical references :::::::::::::::::::::::::::::::::::::::::::: 3 1.3 Problems and bugs ::::::::::::::::::::::::::::::::::::::::::::: 4 1.4 Using this manual :::::::::::::::::::::::::::::::::::::::::::::: 5 2 Invoking m4::::::::::::::::::::::::::::::::::::::: 7 2.1 Command line options for operation modes ::::::::::::::::::::: 7 2.2 Command line options for preprocessor features ::::::::::::::::: 8 2.3 Command line options for limits control ::::::::::::::::::::::: 10 2.4 Command line options for frozen state ::::::::::::::::::::::::: 11 2.5 Command line options for debugging :::::::::::::::::::::::::: 11 2.6 Specifying input files on the command line :::::::::::::::::::::
    [Show full text]
  • Cisco UCS C240 M4 SFF Rack Server Spec Sheet
    This Product has been discontinued Spec Sheet Cisco UCS C240 M4 High-Density Rack Server (Small Form Factor Disk Drive Model) CISCO SYSTEMS PUBLICATION HISTORY 170 WEST TASMAN DR. SAN JOSE, CA, 95134 REV E.20 MARCH 23, 2021 WWW.CISCO.COM CONTENTS OVERVIEW . 5 DETAILED VIEWS . 6 Chassis Front View . .6 Chassis Rear View . .9 BASE SERVER STANDARD CAPABILITIES and FEATURES . 11 CONFIGURING the SERVER . 15 STEP 1 VERIFY SERVER SKU . 16 STEP 2 SELECT RISER CARDS (OPTIONAL) . 17 STEP 3 SELECT LOCKING SECURITY BEZEL (OPTIONAL) . 18 STEP 4 SELECT CPU(s) . 19 STEP 5 SELECT MEMORY . 21 STEP 6 SELECT RAID CONTROLLERS . 27 RAID Controller Options (internal HDD/SSD support) . 27 Embedded Software RAID . 27 Cisco 12G SAS Modular RAID Controller . 27 SAS HBA (internal HDD/SSD/JBOD support) . 27 SAS HBA (external JBOD support) . 27 RAID Volumes and Groups . 28 STEP 7 SELECT HARD DISK DRIVES (HDDs) or SOLID STATE DRIVES (SSDs) . 39 STEP 8 SELECT SED HARD DISK DRIVES (HDDs) or SOLID STATE DRIVES (SSDs) . 45 STEP 9 SELECT PCIe OPTION CARD(s) . 48 STEP 10 ORDER OPTIONAL NETWORK CARD ACCESSORIES . 53 STEP 11 ORDER GPU CARDS AND GPU POWER CABLES (OPTIONAL) . 58 STEP 12 ORDER POWER SUPPLY . 61 STEP 13 SELECT AC POWER CORD(s) . 62 STEP 14 ORDER TOOL-LESS RAIL KIT AND OPTIONAL REVERSIBLE CABLE MANAGEMENT ARM . 65 STEP 15 SELECT NIC MODE (OPTIONAL) . 66 STEP 16 ORDER A TRUSTED PLATFORM MODULE (OPTIONAL) . 67 STEP 17 ORDER CISCO FLEXIBLE FLASH SD CARD MODULE (OPTIONAL) . 69 STEP 18 ORDER OPTIONAL USB 3.0 DRIVE .
    [Show full text]
  • Mandoc: Becoming the Main BSD Manual Toolbox
    mandoc: becoming the main BSD manual toolbox BSDCan 2015, June 13, Ottawa Ingo Schwarze <[email protected]> Cynthia Livingston’sOTTB “Bedifferent” (c) 2013 C. Livingston (with permission) > Ingo Schwarze: mandoc page 2: INTROI BSDCan 2015, June 13, Ottawa Brief history of UNIX documentation • The key point: All documentation in one place and one format. Easy to find, uniform and easy to read and write. Be correct, complete, concise. • 1964: RUNOFF/roffmarkup syntax by Jerome H. Saltzer,MIT. Unobtrusive,diff(1)-friendly,easy to hand-edit, simple tools, high quality output. • 1971: Basic manual structure by Ken Thompson and Dennis Ritchie for the AT&T Version 1 UNIX manuals, Bell Labs. • 1979: man(7) physical markup language for AT&T Version 7 UNIX. • 1989: mdoc(7) semantic markup by Cynthia Livingston for 4.3BSD-Reno. Powerful, self-contained, portable. • 1989: GNU troffbyJames Clarke. • 2001: mdoc(7) rewrite by Werner Lemberg and Ruslan Ermilovfor groff-1.17. • 2008: mandoc(1) started by Kristaps Dzonsons. • 2010: mandoc(1) is the only documentation formatter in the OpenBSD base system. • 2014: mandoc(1) used by default in OpenBSD, FreeBSD, NetBSD, illumos. 16:19:30 What is the mandoc toolbox? → < > Ingo Schwarze: mandoc page 3: INTROIIBSDCan 2015, June 13, Ottawa What is the mandoc toolbox? User perspective:man(1), the manual viewer One comprehensive tool! Normal operation always proceeds in three steps: 1. Find one or more manuals in the file system or using a database by manual name — man(1) — or by search query — apropos(1) =man -k The result of this step can be printed out with man -w.
    [Show full text]
  • AWK-4121 Hardware Installation Guide Moxa Airworks
    AWK-4121 Hardware Installation Guide Moxa AirWorks Fourth Edition, October 2010 2010 Moxa Inc. All rights reserved. Reproduction without permission is prohibited. P/N: 1802041210013 Notes for the Reader WARNING Indicates that death or personal injury may occur if proper precautions are not taken. ATTENTION Indicates that possible damage to this product or your property may result if proper precautions are not taken. NOTE Highlights important information related to this product. Package Checklist Moxa’s AWK-4121 is shipped with the following items. If any of these items is missing or damaged, please contact your customer service representative for assistance. • AWK-4121 • 2 omni-directional antennas (2/5 dBi, N-type male, 2.4/5 GHz) • Wall mounting kit • Field-installable power plug • Field-installable RJ45 plug • Metal cap to cover M12 female DI/O connector • Metal cap to cover RJ45 connector • Documentation and software CD • Quick installation guide (printed) • Warranty card NOTE The above items come with the AWK-4121 standard version. The package contents for customized versions may be different. Installation Before installing the AWK-4121, make sure that all items in the Package Checklist are in the box. In addition, you will need access to a notebook computer or PC equipped with an Ethernet port. The AWK-4121 has a default IP address, user name and password that you must use when resetting or connecting to your AWK-4121 device. Default IP address: 192.168.127.253 User name: admin Password: root Please read “Chapter2 Getting Started” in AWK-4121 User’s Manual for more details about installation and configuration.
    [Show full text]
  • Kafl: Hardware-Assisted Feedback Fuzzing for OS Kernels
    kAFL: Hardware-Assisted Feedback Fuzzing for OS Kernels Sergej Schumilo1, Cornelius Aschermann1, Robert Gawlik1, Sebastian Schinzel2, Thorsten Holz1 1Ruhr-Universität Bochum, 2Münster University of Applied Sciences Motivation IJG jpeg libjpeg-turbo libpng libtiff mozjpeg PHP Mozilla Firefox Internet Explorer PCRE sqlite OpenSSL LibreOffice poppler freetype GnuTLS GnuPG PuTTY ntpd nginx bash tcpdump JavaScriptCore pdfium ffmpeg libmatroska libarchive ImageMagick BIND QEMU lcms Adobe Flash Oracle BerkeleyDB Android libstagefright iOS ImageIO FLAC audio library libsndfile less lesspipe strings file dpkg rcs systemd-resolved libyaml Info-Zip unzip libtasn1OpenBSD pfctl NetBSD bpf man mandocIDA Pro clamav libxml2glibc clang llvmnasm ctags mutt procmail fontconfig pdksh Qt wavpack OpenSSH redis lua-cmsgpack taglib privoxy perl libxmp radare2 SleuthKit fwknop X.Org exifprobe jhead capnproto Xerces-C metacam djvulibre exiv Linux btrfs Knot DNS curl wpa_supplicant Apple Safari libde265 dnsmasq libbpg lame libwmf uudecode MuPDF imlib2 libraw libbson libsass yara W3C tidy- html5 VLC FreeBSD syscons John the Ripper screen tmux mosh UPX indent openjpeg MMIX OpenMPT rxvt dhcpcd Mozilla NSS Nettle mbed TLS Linux netlink Linux ext4 Linux xfs botan expat Adobe Reader libav libical OpenBSD kernel collectd libidn MatrixSSL jasperMaraDNS w3m Xen OpenH232 irssi cmark OpenCV Malheur gstreamer Tor gdk-pixbuf audiofilezstd lz4 stb cJSON libpcre MySQL gnulib openexr libmad ettercap lrzip freetds Asterisk ytnefraptor mpg123 exempi libgmime pev v8 sed awk make
    [Show full text]
  • Programming Guide DP800 Series Programmable Linear DC Power
    RIGOL Programming Guide DP800 Series Programmable Linear DC Power Supply Dec. 2015 RIGOL TECHNOLOGIES, INC. RIGOL Guaranty and Declaration Copyright © 2013 RIGOL TECHNOLOGIES, INC. All Rights Reserved. Trademark Information RIGOL is a registered trademark of RIGOL TECHNOLOGIES, INC. Publication Number PGH03108-1110 Software Version 00.01.14 Software upgrade might change or add product features. Please acquire the latest version of the manual from RIGOL website or contact RIGOL to upgrade the software. Notices RIGOL products are covered by P.R.C. and foreign patents, issued and pending. RIGOL reserves the right to modify or change parts of or all the specifications and pricing policies at the company’s sole decision. Information in this publication replaces all previously released materials. Information in this publication is subject to change without notice. RIGOL shall not be liable for either incidental or consequential losses in connection with the furnishing, use, or performance of this manual, as well as any information contained. Any part of this document is forbidden to be copied, photocopied, or rearranged without prior written approval of RIGOL. Product Certification RIGOL guarantees that this product conforms to the national and industrial standards in China as well as the ISO9001:2008 standard and the ISO14001:2004 standard. Other international standard conformance certifications are in progress. Contact Us If you have any problem or requirement when using our products or this manual, please contact RIGOL. E-mail: [email protected] Website: www.rigol.com DP800 Programming Guide I RIGOL Document Overview This manual introduces how to program the power supply over remote interfaces in details.
    [Show full text]
  • Configuration Guide--SAS® 9.4 Foundation for UNIX® Environments
    Where you w Configuration Guide for SAS® 9.4 Foundation for UNIX Environments Copyright Notice The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2020. Configuration Guide for SAS® 9.4 Foundation for UNIX Environments, Cary, NC: SAS Institute Inc. Configuration Guide for SAS® 9.4 Foundation for UNIX Environments Copyright © 2020, SAS Institute Inc., Cary, NC, USA All rights reserved. Produced in the United States of America. For a hard-copy book: No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher, SAS Institute Inc. For a web download or e-book: Your use of this publication shall be governed by the terms established by the vendor at the time you acquire this publication. The scanning, uploading, and distribution of this book via the Internet or any other means without the permission of the publisher is illegal and punishable by law. Please purchase only authorized electronic editions and do not participate in or encourage electronic piracy of copyrighted materials. Your support of others’ rights is appreciated. U.S. Government Restricted Rights Notice: Use, duplication, or disclosure of this software and related documentation by the U.S. government is subject to the Agreement with SAS Institute and the restrictions set forth in FAR 52.227-19, Commercial Computer Software-Restricted Rights (June 1987). SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513. August 2020 SAS® Publishing provides a complete selection of books and electronic products to help customers use SAS software to its fullest potential.
    [Show full text]
  • 25 YEARS AGO Communicate Directly with the PETER H
    USENIX BOARD OF DIRECTORS 25 YEARS AGO Communicate directly with the PETER H. SALUS USENIX Board of Directors by writing to [email protected]. [email protected] It was October 1980. PRESIDENT ;login: carried an article headed: USENIX Michael B. Jones, “Microsoft Xenix Operating Sys- [email protected] tem.” With all the to-do over who did what to whom when in UNIX notes (see http://www.groklaw.net), I VICE PRESIDENT thought I’d read it and quote USENIX MEMBER BENEFITS Clem Cole, from it. [email protected] “The XENIX* Operating System Members of the USENIX Associa- from Microsoft is a microprocessor tion receive the following benefits: SECRETARY adaptation of Bell Laboratories’ FREE SUBSCRIPTION to ;login:, the Associ- Version 7 UNIX* operating system. Alva Couch, ation’s magazine, published six times With the XENIX operating system, a year, featuring technical articles, [email protected] Microsoft is bringing the power system administration articles, tips of the UNIX OS to microcomput- and techniques, practical columns on such topics as security, Perl, Java, and TREASURER ers. The XENIX Operating System will be released in versions that operating systems, book reviews, and Theodore Ts’o, run on the Zilog Z8000, Motorola summaries of sessions at USENIX [email protected] conferences. M68000, Intel 8086, and the DEC PDP-11*.” A C CESS TO ;LOGIN: online from October DIRECTORS 1997 to this month: www.usenix.org/ That’s how it began. It continued: Matt Blaze, publications/login/. “The XENIX system is an interac- [email protected] ACCESS TO PAPERS from USENIX confer- tive, multi-user, multi-tasking op- ences online: www.usenix.org/ Jon “maddog” Hall, erating system with a flexible user publications/ library/proceedings/ [email protected] interface.
    [Show full text]
  • A Fast File System for UNIX*
    A Fast File System for UNIX* Marshall Kirk McKusick, William N. Joy†, Samuel J. Leffler‡, Robert S. Fabry Computer Systems Research Group Computer Science Division Department of Electrical Engineering and Computer Science University of California, Berkeley Berkeley, CA 94720 ABSTRACT A reimplementation of the UNIX file system is described. The reimplementation provides substantially higher throughput rates by using more flexible allocation policies that allow better locality of reference and can be adapted to a wide range of peripheral and processor characteristics. The new file system clusters data that is sequentially accessed and provides two block sizes to allow fast access to large files while not wasting large amounts of space for small files. File access rates of up to ten times faster than the traditional UNIX file system are experienced. Long needed enhancements to the pro- grammers’ interface are discussed. These include a mechanism to place advisory locks on files, extensions of the name space across file systems, the ability to use long file names, and provisions for administrative control of resource usage. Revised February 18, 1984 CR Categories and Subject Descriptors: D.4.3 [Operating Systems]: File Systems Management − file organization, directory structures, access methods; D.4.2 [Operating Systems]: Storage Management − allocation/deallocation strategies, secondary storage devices; D.4.8 [Operating Systems]: Performance − measurements, operational analysis; H.3.2 [Information Systems]: Information Storage − file organization Additional Keywords and Phrases: UNIX, file system organization, file system performance, file system design, application program interface. General Terms: file system, measurement, performance. * UNIX is a trademark of Bell Laboratories. † William N. Joy is currently employed by: Sun Microsystems, Inc, 2550 Garcia Avenue, Mountain View, CA 94043 ‡ Samuel J.
    [Show full text]
  • Marco: Safe, Expressive Macros for Any Language*
    Marco: Safe, Expressive Macros for Any Language? Byeongcheol Lee1, Robert Grimm2, Martin Hirzel3, Kathryn S. McKinley4,5 1 Gwangju Institute of Science and Technology 2 New York University 3 IBM Watson Research Center 4 Microsoft Research 5 The University of Texas at Austin Abstract. Macros improve expressiveness, concision, abstraction, and language interoperability without changing the programming language itself. They are indispensable for building increasingly prevalent mul- tilingual applications. Unfortunately, existing macro systems are well- encapsulated but unsafe (e.g., the C preprocessor) or are safe but tightly- integrated with the language implementation (e.g., Scheme macros). This paper introduces Marco, the first macro system that seeks both encap- sulation and safety. Marco is based on the observation that the macro system need not know all the syntactic and semantic rules of the tar- get language but must only directly enforce some rules, such as variable name binding. Using this observation, Marco off-loads most rule checking to unmodified target-language compilers and interpreters and thus be- comes language-scalable. We describe the Marco language, its language- independent safety analysis, and how it uses two example target-language analysis plug-ins, one for C++ and one for SQL. This approach opens the door to safe and expressive macros for any language. 1 Introduction Macros enhance programming languages without changing them. Programmers use macros to add missing language features, to improve concision and abstrac- tion, and to interoperate between different languages and with systems. With macros, programmers use concrete syntax instead of tediously futzing with ab- stract syntax trees or, worse, creating untyped and unchecked strings.
    [Show full text]
  • ANL Parallel Processing Macro Package Tutorial
    ANL Parallel Processing Macro Package Tutorial Introduction The Argonne National Laboratory's (ANL) parallel processing macro package provides a virtual machine that consists of a shared global memory and a number of processors with their own local memory. The macros themselves are a set of process control, synchronization, and communication primitives implemented as C-language m4 macros. The use of macros has the advantage of portability. In fact, there are two layers of macros: a small set of primitive, machine-dependent macros written in terms of target machine functions and a larger set of machine-independent macros written in terms of the machine-dependent macros, so only few machine-dependent macros need to be ported to a new machine. Unfortunately, the use of macros also makes debugging more difficult, since error messages are given in reference to the C program generated from the original program. This document describes a subset of the ANL macros as an introduction to their use. Environment Specification Macros Some of the macros assume the existence of certain data structures. The MAIN_ENV and the EXTERN_ENV macros contain the necessary definitions and declarations; MAIN_INITENV performs required initialization. MAIN_ENV contains types and structures used internally in the macro package. It should appear in exactly one file (typically the main file) in the static definitions section before any other macro usage. EXTERN_ENV contains definitions and external declarations and should appear in the static definitions section of each separately compiled module in which MAIN_ENV does not appear. MAIN_INTENV is an executable macro that initializes data structures defined by MAIN_ENV. The code generated by this macro must be executed before that of any other macro, thus it typically appears very early in the program's main function.
    [Show full text]