Sysadmin and Networking

Total Page:16

File Type:pdf, Size:1020Kb

Sysadmin and Networking ;login APRIL 2014 VOL. 39, NO. 2 : Sysadmin and Networking & SDN, Beyond the Hyperbole Rob Sherwood & The Case of the Clumsy Kernel Brendan Gregg & System Administration Is Dead Todd Underwood & I Am Not a Sysadmin Elizabeth Zwicky & Splunk Performance Tuning David Lang Columns Practical Perl Tools: Using MongoDB David N. Blank-Edelman Python: When to Use Python 3 David Beazley iVoyeur: ChatOps Dave Josephsen For Good Measure: Mitigation as a Metric Dan Geer and Richard Bejtlich /dev/random: I Miss Being a Sysadmin Robert G. Ferrell UPCOMING EVENTS 2014 USENIX Federated Conferences Week CSET ’14: 7th Workshop on Cyber Security June 17–20, 2014, Philadelphia, PA, USA Experimentation and Test August 18, 2014 HotCloud ’14: 6th USENIX Workshop on www.usenix.org/cset14 Hot Topics in Cloud Computing Submissions due: April 25, 2014 June 17–18, 2014 www.usenix.org/hotcloud14 3GSE ’14: 2014 USENIX Summit on Gaming, Games, and Gamification in Security Education HotStorage ’14: 6th USENIX Workshop August 18, 2014 on Hot Topics in Storage and File Systems www.usenix.org/3gse14 June 17–18, 2014 Invited submissions due: May 6, 2014 www.usenix.org/hotstorage14 FOCI ’14: 4th USENIX Workshop on Free and Open 9th International Workshop on Feedback Computing Communications on the Internet June 17, 2014 August 18, 2014 www.usenix.org/feedbackcomputing14 www.usenix.org/foci14 WiAC ’14: 2014 USENIX Women in Advanced Submissions due: May 13, 2014 Computing Summit HotSec ’14: 2014 USENIX Summit on Hot Topics June 18, 2014 in Security www.usenix.org/wiac14 August 19, 2014 ICAC ’14: 11th International Conference on www.usenix.org/hotsec14 Autonomic Computing HealthTech ’14: 2014 USENIX Summit on Health June 18–20, 2014 Information Technologies www.usenix.org/icac14 Safety, Security, Privacy, and Interoperability USENIX ATC ’14: 2014 USENIX Annual Technical of Health Information Technologies Conference August 19, 2014 June 19–20, 2014 www.usenix.org/healthtech14 www.usenix.org/atc14 Submissions due: May 9, 2014 UCMS ’14: 2014 USENIX Configuration Management WOOT ’14: 8th USENIX Workshop on Offensive Summit Technologies June 19, 2014 August 19, 2014 www.usenix.org/ucms14 www.usenix.org/woot14 URES ’14: 2014 USENIX Release Engineering Summit June 20, 2014 OSDI ’14: 11th USENIX Symposium on Operating www.usenix.org/ures14 Systems Design and Implementation October 6–8, 2014, Broomfield, CO, USA 23rd USENIX Security Symposium www.usenix.org/osdi14 August 20–22, 2014, San Diego, CA, USA Abstract registration due: April 24, 2014 www.usenix.org/sec14 Co-located with OSDI ’14: Workshops Co-located with USENIX Security ’14 Diversity ’14: 2014 Workshop on Supporting Diversity EVT/WOTE ’14: 2014 Electronic Voting Technology in Systems Research Workshop/Workshop on Trustworthy Elections October 5, 2014 August 18–19, 2014 HotDep ’14: 10th Workshop on Hot Topics in www.usenix.org/evtwote14 Dependable Systems USENIX Journal of Election Technology October 5, 2014 and Systems (JETS) INFLOW ’14: 2nd Workshop on Interactions of NVM/ Published in conjunction with EVT/WOTE Flash with Operating Systems and Workloads www.usenix.org/jets October 5, 2014 TRIOS ’14: 2014 Conference on Timely Results in Operating Systems October 5, 2014 twitter.com/usenix www.usenix.org/youtube www.usenix.org/gplus Stay Connected... www.usenix.org/facebook www.usenix.org/linkedin www.usenix.org/blog APRIL 2014 VOL. 39, NO. 2 EDITOR EDITORIal Rik Farrow 2 Musings Rik Farrow [email protected] COPY EDITORS Steve Gilmartin OPINION Amber Ankerholz 6 The Death of System Administration Todd Underwood PRODUCTION MANAGER Michele Nelson SYSADMIN PRODUCTION 10 Interview with John Looney Rik Farrow Arnold Gatilao Casey Henderson 14 How to Be a Better System Administrator and Then TYPeseTTER Something Else Elizabeth Zwicky Star Type [email protected] 16 Accelerating the Path from Dev to DevOps Dinah McNutt USENIX AssOCIATION 19 Interview with Tom Hatch Rik Farrow 2560 Ninth Street, Suite 215, Berkeley, California 94710 21 The Case of the Clumsy Kernel Brendan Gregg Phone: (510) 528-8649 FAX: (510) 548-5738 26 Large Scale Splunk Tuning David Lang www.usenix.org 31 /var/log/manager: Let’s Find Someone to Blame Andy Seely ;login: is the official magazine of the USENIX Association. ;login: (ISSN 1044-6397) is published bi-monthly by the USENIX NETWORKING Association, 2560 Ninth Street, Suite 215, 34 SDN Is DevOps for Networking Rob Sherwood Berkeley, CA 94710. 38 Musings and Hacks on DHCP Doug Hughes $90 of each member’s annual dues is for a subscription to ;login:. Subscriptions for non- members are $90 per year. Periodicals postage COLUMNS paid at Berkeley, CA, and additional offices. 43 Practical Perl Tools: MongoDB Meet Perl POSTMASTER: Send address changes to ;login:, USENIX Association, 2560 Ninth Street, David N. Blank-Edelman Suite 215, Berkeley, CA 94710. 47 A Pragmatic Guide to Python 3 Adoption David Beazley ©2014 USENIX Association USENIX is a registered trademark of the 52 iVoyeur: ChatOps Dave Josephsen USENIX Association. Many of the designations used by manufacturers and sellers to 58 Measure Like You Meant It Dan Geer and Richard Bejtlich distinguish their products are claimed as trademarks. USENIX acknowledges all 61 /dev/random: Robert G. Ferrell trademarks herein. Where those designations appear in this publication and USENIX is aware of a trademark claim, the designations have BOOKS been printed in caps or initial caps. 63 Book Reviews Elizabeth Zwicky, Rik Farrow, and Mark Lamourine Musings RIK FARROWEDITORIAL Rik is the editor of ;login:. have a new hat, one with a fancy feather in it, perhaps to help it feel lighter. [email protected] I’ve become the tutorial manager, taking over for Dan Klein after he’s I done the job single-handedly for more than 20 years. I appreciate what Dan has done and will have to work hard, working with a team, to do as well and, hopefully, better. This change has led me on a quest for information about the future of system administration. What I learned is nothing new, in a way: system administration has always been changing. But, as always, there will be the risk takers, the early adopters, and the adventurers—the ones who strike out in new directions expecting that others will surely follow them. There are also those who, having been through several schools of hard knocks, would like to continue on the path that they have become adept at navigating. Those hard knocks were painful and time-consuming, and learning new ways of doing things means going through yet another learning process. Being an older kind of guy, I too can resist change. Then again, I know it’s good for the ol’ noggin to stretch its limits by learning new things. I’ve watched what being really stuck does to older folks than I, and I surely don’t want to go there. System Administration, Then and Now Like Elizabeth Zwicky writes in this issue, I am not a system administrator. Oh, I can still fake it, by managing my own systems (DNS, SMTP, DHCP, and HTTP) and occasionally even consulting locally. But I gave up on being a sysadmin when I found out that I wasn’t very interested in a very important aspect of it: building scripts and systems to automate the work that needed to be done routinely. What I liked most about being a sysadmin was solving problems. Although my skills are dwarfed by Brendan Gregg (also in this issue), I followed one of the techniques in his book [1], the scientific method. I didn’t learn it from his book, but from Arthur Conan Doyle’s fictional detective, Sherlock Holmes. I read all the stories about Sherlock, and what stuck with me was a methodical approach to problem solving: gathering evidence, creating a hypothesis, testing it, then either fixing the problem or iterating, depending on the result. I think I also liked the effect I could have on people when I produced wizard-like successes. Often, simply by creating a clear problem statement, the answer to the problem would just pop out. I liked feeling and appearing smart. What I didn’t like was the boredom of repetition: adding a user to a handful of workstations or performing updgrades on that same set of systems. Like Elizabeth Zwicky, I am not a programmer who builds systems from scratch. So I contented myself with fixing systems, sometimes by building scripts for specific purposes. Managing a group of systems through a unifying set of programs, however, was beyond my thinking. I gradually drifted away from system administration. 2 APRIL 2014 VOL. 39, NO. 2 www.usenix.org EDITORIAL Musings For most of the ’90s, system administration remained very administrators are going to need new skills so they can work similar to what I had experienced. People managed each system with online services. Debugging a distributed system where you separately, perhaps leveraging some network software (like NIS have access to both the networks and the servers is very different or LDAP) to solve part of the management issues. Someone who from troubleshooting a distributed application running in the managed a lot of systems, say one or two hundred, would do so by cloud where your access is limited. And working at scale, even making them all look exactly alike, whether they were part of a modest scales, means the end of manually searching logs and cluster or developer desktops. monitoring: you need automation to help not just pick up prob- lems but respond to them appropriately, and in a timely manner. Configuration management brought about some real changes, allowing administration of more systems without the need to Will every service move to a cloud? I don’t think the NSA is make them all the same: now we could have groups of systems, going to, and neither will privacy-sensitive or regulatory-bound and systems with sets of software on them.
Recommended publications
  • GNU/Linux AI & Alife HOWTO
    GNU/Linux AI & Alife HOWTO GNU/Linux AI & Alife HOWTO Table of Contents GNU/Linux AI & Alife HOWTO......................................................................................................................1 by John Eikenberry..................................................................................................................................1 1. Introduction..........................................................................................................................................1 2. Symbolic Systems (GOFAI)................................................................................................................1 3. Connectionism.....................................................................................................................................1 4. Evolutionary Computing......................................................................................................................1 5. Alife & Complex Systems...................................................................................................................1 6. Agents & Robotics...............................................................................................................................1 7. Statistical & Machine Learning...........................................................................................................2 8. Missing & Dead...................................................................................................................................2 1. Introduction.........................................................................................................................................2
    [Show full text]
  • Wait, I Don't Want to Be the Linux Administrator for SAS VA
    SESUG Paper 88-2017 Wait, I don’t want to be the Linux Administrator for SAS VA Jonathan Boase; Zencos Consulting ABSTRACT Whether you are a new SAS administrator or switching to a Linux environment, you have a complex mission. This job becomes even more formidable when you are working with a system like SAS Visual Analytics that requires multiple users loading data daily. Eventually a user will have data issues or create a disruption that causes the system to malfunction. When that happens, what do you do next? In this paper, we will go through the basics of a SAS Visual Analytics Linux environment and how to troubleshoot the system when issues arise. INTRODUCTION Many companies choose to implement SAS Visual Analytics in a Linux environment. With a distributed deployment, it’s the only choice but many chose this operating system because it reduces operating costs. If you are the newly chosen SAS platform administrator, you might be more versed in a Windows environment and feel intimidated by Linux. This paper introduces using basic Linux commands and methods for troubleshooting a SAS Visual Analytics environment. The paper assumes that SAS Visual Analytics is installed on a SAS 9.4 platform for Linux and that the reader has some familiarity with other operating systems, such as Windows. PLATFORM ADMINISTRATION 101 SAS platform administrators work with three main product areas. Each area provides a different functionality based on the task the administrator needs to perform. The following figure defines each area and provides a general overview of its purpose. Figure 1 Platform Administrator Tools Operating System SAS Management SAS Environment •Contains installed Console Manager software •Access and manage the •Monitor the •Contains logs used for metadata environment troubleshooting •Control database •Configure custom alerts •Administer host system connections users •Manage user accounts •Manage the LASR server With any operating system, there is always a lot to learn.
    [Show full text]
  • Medi-Cal Dental EDI How-To Guide
    ' I edi Cal Dental _ Electronic Data Interchange HOW-TO GUIDE EDI EDI edi EDI Support Group Phone: (916) 853-7373 Email: [email protected] Revised November 2019 , ] 1 ,edi .. Cal Dental Medi-Cal Dental Program EDI How-To Guide 11/2019 Welcome to Medical Dental Program’s Electronic Data Interchange Program! This How-To Guide is designed to answer questions providers may have about submitting claims electronically. The Medi-Cal Dental Program's Electronic Data Interchange (EDI) program is an efficient alternative to sending paper claims. It will provide more efficient tracking of the Medi-Cal Dental Program claims with faster responses to requests for authorization and payment. Before submitting claims electronically, providers must be enrolled as an EDI provider to avoid rejection of claims. To enroll, providers must complete the Medi-Cal Dental Telecommunications Provider and Biller Application/Agreement (For electronic claim submission), the Provider Service Office Electronic Data Interchange Option Selection Form and Electronic Remittance Advice (ERA) Enrollment Form and return them to the address indicated on those forms. Providers should advise their software vendor that they would like to submit Medi-Cal Dental Program claims electronically, and if they are not yet enrolled in the EDI program, an Enrollment Packet should be requested from the EDI Support department. Enrollment forms are also available on the Medi-Cal Dental Program Web site (www.denti- cal.ca.gov) under EDI, located on the Providers tab. Providers may also submit digitized images of documentation to the Medi-Cal Dental Program. If providers choose to submit conventional radiographs and attachments through the mail, an order for EDI labels and envelopes will need to be placed using the Forms Reorder Request included in the Enrollment Packet and at the end of this How-To Guide.
    [Show full text]
  • Drilling Network Stacks with Packetdrill
    Drilling Network Stacks with packetdrill NEAL CARDWELL AND BARATH RAGHAVAN Neal Cardwell received an M.S. esting and troubleshooting network protocols and stacks can be in Computer Science from the painstaking. To ease this process, our team built packetdrill, a tool University of Washington, with that lets you write precise scripts to test entire network stacks, from research focused on TCP and T the system call layer down to the NIC hardware. packetdrill scripts use a Web performance. He joined familiar syntax and run in seconds, making them easy to use during develop- Google in 2002. Since then he has worked on networking software for google.com, the ment, debugging, and regression testing, and for learning and investigation. Googlebot web crawler, the network stack in Have you ever had the experience of staring at a long network trace, trying to figure out what the Linux kernel, and TCP performance and on earth went wrong? When a network protocol is not working right, how might you find the testing. [email protected] problem and fix it? Although tools like tcpdump allow us to peek under the hood, and tools like netperf help measure networks end-to-end, reproducing behavior is still hard, and know- Barath Raghavan received a ing when an issue has been fixed is even harder. Ph.D. in Computer Science from UC San Diego and a B.S. from These are the exact problems that our team used to encounter on a regular basis during UC Berkeley. He joined Google kernel network stack development. Here we describe packetdrill, which we built to enable in 2012 and was previously a scriptable network stack testing.
    [Show full text]
  • A Brief Introduction to Unix-2019-AMS
    Brief Intro to Linux/Unix Brief Intro to Unix (contd) A Brief Introduction to o Brief History of Unix o Compilers, Email, Text processing o Basics of a Unix session o Image Processing Linux/Unix – AMS 2019 o The Unix File System Pete Pokrandt o Working with Files and Directories o The vi editor UW-Madison AOS Systems Administrator o Your Environment [email protected] o Common Commands Twitter @PTH1 History of Unix History of Unix History of Unix o Created in 1969 by Kenneth Thompson and Dennis o Today – two main variants, but blended o It’s been around for a long time Ritchie at AT&T o Revised in-house until first public release 1977 o System V (Sun Solaris, SGI, Dec OSF1, AIX, o It was written by computer programmers for o 1977 – UC-Berkeley – Berkeley Software Distribution (BSD) linux) computer programmers o 1983 – Sun Workstations produced a Unix Workstation o BSD (Old SunOS, linux, Mac OSX/MacOS) o Case sensitive, mostly lowercase o AT&T unix -> System V abbreviations 1 Basics of a Unix Login Session Basics of a Unix Login Session Basics of a Unix Login Session o The Shell – the command line interface, o Features provided by the shell o Logging in to a unix session where you enter commands, etc n Create an environment that meets your needs n login: username n Some common shells n Write shell scripts (batch files) n password: tImpAw$ n Define command aliases (this Is my password At work $) Bourne Shell (sh) OR n Manipulate command history IHateHaving2changeMypasswordevery3weeks!!! C Shell (csh) n Automatically complete the command
    [Show full text]
  • Unix/Linux Command Reference
    Unix/Linux Command Reference .com File Commands System Info ls – directory listing date – show the current date and time ls -al – formatted listing with hidden files cal – show this month's calendar cd dir - change directory to dir uptime – show current uptime cd – change to home w – display who is online pwd – show current directory whoami – who you are logged in as mkdir dir – create a directory dir finger user – display information about user rm file – delete file uname -a – show kernel information rm -r dir – delete directory dir cat /proc/cpuinfo – cpu information rm -f file – force remove file cat /proc/meminfo – memory information rm -rf dir – force remove directory dir * man command – show the manual for command cp file1 file2 – copy file1 to file2 df – show disk usage cp -r dir1 dir2 – copy dir1 to dir2; create dir2 if it du – show directory space usage doesn't exist free – show memory and swap usage mv file1 file2 – rename or move file1 to file2 whereis app – show possible locations of app if file2 is an existing directory, moves file1 into which app – show which app will be run by default directory file2 ln -s file link – create symbolic link link to file Compression touch file – create or update file tar cf file.tar files – create a tar named cat > file – places standard input into file file.tar containing files more file – output the contents of file tar xf file.tar – extract the files from file.tar head file – output the first 10 lines of file tar czf file.tar.gz files – create a tar with tail file – output the last 10 lines
    [Show full text]
  • Proceedings of the Linux Symposium
    Proceedings of the Linux Symposium Volume One June 27th–30th, 2007 Ottawa, Ontario Canada Contents The Price of Safety: Evaluating IOMMU Performance 9 Ben-Yehuda, Xenidis, Mostrows, Rister, Bruemmer, Van Doorn Linux on Cell Broadband Engine status update 21 Arnd Bergmann Linux Kernel Debugging on Google-sized clusters 29 M. Bligh, M. Desnoyers, & R. Schultz Ltrace Internals 41 Rodrigo Rubira Branco Evaluating effects of cache memory compression on embedded systems 53 Anderson Briglia, Allan Bezerra, Leonid Moiseichuk, & Nitin Gupta ACPI in Linux – Myths vs. Reality 65 Len Brown Cool Hand Linux – Handheld Thermal Extensions 75 Len Brown Asynchronous System Calls 81 Zach Brown Frysk 1, Kernel 0? 87 Andrew Cagney Keeping Kernel Performance from Regressions 93 T. Chen, L. Ananiev, and A. Tikhonov Breaking the Chains—Using LinuxBIOS to Liberate Embedded x86 Processors 103 J. Crouse, M. Jones, & R. Minnich GANESHA, a multi-usage with large cache NFSv4 server 113 P. Deniel, T. Leibovici, & J.-C. Lafoucrière Why Virtualization Fragmentation Sucks 125 Justin M. Forbes A New Network File System is Born: Comparison of SMB2, CIFS, and NFS 131 Steven French Supporting the Allocation of Large Contiguous Regions of Memory 141 Mel Gorman Kernel Scalability—Expanding the Horizon Beyond Fine Grain Locks 153 Corey Gough, Suresh Siddha, & Ken Chen Kdump: Smarter, Easier, Trustier 167 Vivek Goyal Using KVM to run Xen guests without Xen 179 R.A. Harper, A.N. Aliguori & M.D. Day Djprobe—Kernel probing with the smallest overhead 189 M. Hiramatsu and S. Oshima Desktop integration of Bluetooth 201 Marcel Holtmann How virtualization makes power management different 205 Yu Ke Ptrace, Utrace, Uprobes: Lightweight, Dynamic Tracing of User Apps 215 J.
    [Show full text]
  • UNIX X Command Tips and Tricks David B
    SESUG Paper 122-2019 UNIX X Command Tips and Tricks David B. Horvath, MS, CCP ABSTRACT SAS® provides the ability to execute operating system level commands from within your SAS code – generically known as the “X Command”. This session explores the various commands, the advantages and disadvantages of each, and their alternatives. The focus is on UNIX/Linux but much of the same applies to Windows as well. Under SAS EG, any issued commands execute on the SAS engine, not necessarily on the PC. X %sysexec Call system Systask command Filename pipe &SYSRC Waitfor Alternatives will also be addressed – how to handle when NOXCMD is the default for your installation, saving results, and error checking. INTRODUCTION In this paper I will be covering some of the basics of the functionality within SAS that allows you to execute operating system commands from within your program. There are multiple ways you can do so – external to data steps, within data steps, and within macros. All of these, along with error checking, will be covered. RELEVANT OPTIONS Execution of any of the SAS System command execution commands depends on one option's setting: XCMD Enables the X command in SAS. Which can only be set at startup: options xcmd; ____ 30 WARNING 30-12: SAS option XCMD is valid only at startup of the SAS System. The SAS option is ignored. Unfortunately, ff NOXCMD is set at startup time, you're out of luck. Sorry! You might want to have a conversation with your system administrators to determine why and if you can get it changed.
    [Show full text]
  • Medic Cal Cente Er of the E Rockie Es
    Medical Center of the Rockies Location: Loveland, CO Client: Poudre Valley Health System Design Firm(s): BHA Design (LA), Martin/Martin (Civil) Landscape architect/Project contact: Angela Milewski, ASLA Email: [email protected] ASLA Chapter: Colorado Photo: BHA Design Incorporated Project Specifications Project Description: As a new major heart and trauma hospital, Medical Center of the Rockies was designed as a facility to provide world-class healthcare in a unique design that would join site and building in a single composition. The stormwater conveyance and detention facilties were designed as an integral part of a zoned, naturalistic landscape concept which embraced the natural Colorado landscape and helped achieve sitee credits toward acheiving LEED Gold project certification. The resulting benefits included reduced irrigation water use, improved wildlife habitat and stormwater quality, and a restorative natural setting for users. Case No. 273 Pag e | 2 Project Type: Institutional/education Part of a new development Design features: Stormwater conveyance and detention facilities. This project was designed to meet the following specific requirements or mandates: Local ordinance, NPDES Impervious area managed: greater than 5 acres Amount of existing green space/open space conserved or preserved for managing stormwater on site: greater than 5 acres The regulatory environment and regulator was supportive of the project. Did the client request that other factors be considered, such as energy savings, usable green space, or property value enhancements? The stormwater improvements were part of an overall design for this new hospital facility. The project as a whoole sought and received LEED Gold certification, so the improvements were part of a comprehensive design focused on sustainability.
    [Show full text]
  • A DENOTATIONAL ENGINEERING of PROGRAMMING LANGUAGES to Make Software Systems Reliable and User Manuals Clear, Complete and Unambiguous
    A DENOTATIONAL ENGINEERING OF PROGRAMMING LANGUAGES to make software systems reliable and user manuals clear, complete and unambiguous A book in statu nascendi Andrzej Jacek Blikle in cooperation with Piotr Chrząstowski-Wachtel It always seems impossible until it's done. Nelson Mandela Warsaw, March 22nd, 2019 „A Denotational Engineering of Programming Languages” by Andrzej Blikle in cooperation with Piotr Chrząstowski-Wachtel has been licensed under a Creative Commons: Attribution — NonCommercial — NoDerivatives 4.0 International. For details see: https://creativecommons.org/licenses/by-nc-nd/4.0/le- galcode Andrzej Blikle in cooperation with Piotr Chrząstowski-Wachtel, A Denotational Engineering of Programming Languages 2 About the current versions of the book Both versions ― Polish and English ― are in statu nascendi which means that they are both in the process of correction due to my readers’ remarks. Since December 2018 both versions, and currently also two related papers, are available in PDF format and can be downloaded from my website: http://www.moznainaczej.com.pl/what-has-been-done/the-book as well as from my accounts on ResearchGate, academia.edu and arXiv.org I very warmly invite all my readers to send their remarks and questions about all aspects of the book. I am certainly aware of the fact that my English requires a lot of improvements and therefore I shall very much appreciate all linguistic corrections and suggestions as well. You may write to me on [email protected]. All interested persons are also invited to join the project Denotational Engineering. For more details see: http://www.moznainaczej.com.pl/an-invitation-to-the-project Acknowledgements to the Polish version Since June 2018 a preliminary version of the Polish version has been made available to selected readers which resulted with a flow of remarks.
    [Show full text]
  • Lex and Yacc
    Lex and Yacc A Quick Tour HW8–Use Lex/Yacc to Turn this: Into this: <P> Here's a list: Here's a list: * This is item one of a list <UL> * This is item two. Lists should be <LI> This is item one of a list indented four spaces, with each item <LI>This is item two. Lists should be marked by a "*" two spaces left of indented four spaces, with each item four-space margin. Lists may contain marked by a "*" two spaces left of four- nested lists, like this: space margin. Lists may contain * Hi, I'm item one of an inner list. nested lists, like this:<UL><LI> Hi, I'm * Me two. item one of an inner list. <LI>Me two. * Item 3, inner. <LI> Item 3, inner. </UL><LI> Item 3, * Item 3, outer list. outer list.</UL> This is outside both lists; should be back This is outside both lists; should be to no indent. back to no indent. <P><P> Final suggestions: Final suggestions 2 if myVar == 6.02e23**2 then f( .. ! char stream LEX token stream if myVar == 6.02e23**2 then f( ! tokenstream YACC parse tree if-stmt == fun call var ** Arg 1 Arg 2 float-lit int-lit . ! 3 Lex / Yacc History Origin – early 1970’s at Bell Labs Many versions & many similar tools Lex, flex, jflex, posix, … Yacc, bison, byacc, CUP, posix, … Targets C, C++, C#, Python, Ruby, ML, … We’ll use jflex & byacc/j, targeting java (but for simplicity, I usually just say lex/yacc) 4 Uses “Front end” of many real compilers E.g., gcc “Little languages”: Many special purpose utilities evolve some clumsy, ad hoc, syntax Often easier, simpler, cleaner and more flexible to use lex/yacc or similar tools from the start 5 Lex: A Lexical Analyzer Generator Input: Regular exprs defining "tokens" my.flex Fragments of declarations & code Output: jflex A java program “yylex.java” Use: yylex.java Compile & link with your main() Calls to yylex() read chars & return successive tokens.
    [Show full text]
  • Teaching Operating Systems Concepts with Systemtap
    Session 8B: Enhancing CS Instruction ITiCSE '17, July 3-5, 2017, Bologna, Italy Teaching Operating Systems Concepts with SystemTap Darragh O’Brien School of Computing Dublin City University Glasnevin Dublin 9, Ireland [email protected] ABSTRACT and their value is undoubted. However, there is room in introduc- e study of operating systems is a fundamental component of tory operating systems courses for supplementary approaches and all undergraduate computer science degree programmes. Making tools that support the demonstration of operating system concepts operating system concepts concrete typically entails large program- in the context of a live, real-world operating system. ming projects. Such projects traditionally involve enhancing an is paper describes how SystemTap [3, 4] can be applied to existing module in a real-world operating system or extending a both demonstrate and explore low-level behaviour across a range pedagogical operating system. e laer programming projects rep- of system modules in the context of a real-world operating sys- resent the gold standard in the teaching of operating systems and tem. SystemTap scripts allow the straightforward interception of their value is undoubted. However, there is room in introductory kernel-level events thereby providing instructor and students alike operating systems courses for supplementary approaches and tools with concrete examples of operating system concepts that might that support the demonstration of operating system concepts in the otherwise remain theoretical. e simplicity of such scripts makes context of a live, real-world operating system. is paper describes them suitable for inclusion in lectures and live demonstrations in an approach where the Linux monitoring tool SystemTap is used introductory operating systems courses.
    [Show full text]