Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Software Tools


Brian W. Kernighan - 1976
    The programs contained in the book are not artificial, but are actual programs ae tools which have proved valuable in the production of other programs.Modern programming techniques such as structured programming and top-down design are emphasized and applied to every program. The programs are presented in a structured language called Ratfor ("Rational Fortran") which can be easily understood by anyone familiar with Fortran or PL/I, Algol, PASCAL, or similar languages. (Ratfor translates readily into Fortran or PL/I. One of the tools presented is a preprocessor to translate Ratfor into Fortran). All of the programs are complete and have been tested directly from the text. The programs are available in machine-readable form from Addison-Wesley.Software Tools is ideal for use in a "software engineering" course, for a second course in programming, or as a supplement in any programming course. All programmers, professional and student, will find the book invaluable as a source of proven, useful programs for reading and study. Numerous exercises are provided to test comprehension and to extend the concepts presented in the text.

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

Modern Technical Writing: An Introduction to Software Documentation


Andrew Etter - 2016
    Written by the lead technical writer at one of Silicon Valley's most exciting companies, Modern Technical Writing is a set of guiding principles and thoughtful recommendations for new and experienced technical writers alike. Not a reference manual, and not comprehensive, it instead serves as an introduction to a sensible writing and publishing process, one that has eluded the profession for too long.

National Geographic Dinosaurs


Paul M. Barrett - 1998
    Through dramatic graphics and age-appropriate text, this authoritative volume charts the discovery of all the main types of dinosaurs and reveals the latest details on how these creatures most likely looked, behaved, defended themselves, found food, cared for their young, and interacted. Stunning murals, based on scientific evidence, depict various dinosaurs in their habitats--beautifully complementing the color photographs, paintings, charts, and maps. Some 53 major types of dinosaurs are described, representing a wide range of physical structures, sizes, and lifestyles.The book presents recent discoveries and current scientific thought--including the dinosaur-bird connection, profiles of feathered dinosaurs, and theories on dinosaur extinction. Readers also see how today' s paleontologists obtain evidence, piece together clues, and continue to reconstruct life in prehistoric times.

Agile Estimating and Planning


Mike Cohn - 2005
    In this book, Agile Alliance cofounder Mike Cohn discusses the philosophy of agile estimating and planning and shows you exactly how to get the job done, with real-world examples and case studies.Concepts are clearly illustrated and readers are guided, step by step, toward how to answer the following questions: What will we build? How big will it be? When must it be done? How much can I really complete by then? You will first learn what makes a good plan-and then what makes it agile.Using the techniques in Agile Estimating and Planning , you can stay agile from start to finish, saving time, conserving resources, and accomplishing more. Highlights include:Why conventional prescriptive planning fails and why agile planning works How to estimate feature size using story points and ideal days--and when to use each How and when to re-estimate How to prioritize features using both financial and nonfinancial approaches How to split large features into smaller, more manageable ones How to plan iterations and predict your team's initial rate of progress How to schedule projects that have unusually high uncertainty or schedule-related risk How to estimate projects that will be worked on by multiple teams Agile Estimating and Planning supports any agile, semiagile, or iterative process, including Scrum, XP, Feature-Driven Development, Crystal, Adaptive Software Development, DSDM, Unified Process, and many more. It will be an indispensable resource for every development manager, team leader, and team member.

Nontechnical Guide to Petroleum Geology, Exploration, Drilling and Production


Norman J. Hyne - 1995
    Hyne provides an easy-to-understand explanation of complex topics with pictures, graphs and illustrations covering everything on how oil and gas is formed; how to find commercial quantities; how to drill, evaluate and complete a well; all the way through production and improved oil recovery.

Quantum Mechanics


Claude Cohen-Tannoudji - 1977
    Nobel-Prize-winner Claude Cohen-Tannoudji and his colleagues have written this book to eliminate precisely these difficulties. Fourteen chapters provide a clarity of organization, careful attention to pedagogical details, and a wealth of topics and examples which make this work a textbook as well as a timeless reference, allowing to tailor courses to meet students' specific needs. Each chapter starts with a clear exposition of the problem which is then treated, and logically develops the physical and mathematical concept. These chapters emphasize the underlying principles of the material, undiluted by extensive references to applications and practical examples which are put into complementary sections. The book begins with a qualitative introduction to quantum mechanical ideas using simple optical analogies and continues with a systematic and thorough presentation of the mathematical tools and postulates of quantum mechanics as well as a discussion of their physical content. Applications follow, starting with the simplest ones like e.g. the harmonic oscillator, and becoming gradually more complicated (the hydrogen atom, approximation methods, etc.). The complementary sections each expand this basic knowledge, supplying a wide range of applications and related topics as well as detailed expositions of a large number of special problems and more advanced topics, integrated as an essential portion of the text.

The New Turing Omnibus: 66 Excursions In Computer Science


A.K. Dewdney - 1989
    K. Dewdney's The Turing Omnibus.Updated and expanded, The Turing Omnibus offers 66 concise, brilliantly written articles on the major points of interest in computer science theory, technology, and applications. New for this tour: updated information on algorithms, detecting primes, noncomputable functions, and self-replicating computers--plus completely new sections on the Mandelbrot set, genetic algorithms, the Newton-Raphson Method, neural networks that learn, DOS systems for personal computers, and computer viruses.Contents:1 Algorithms 2 Finite Automata 3 Systems of Logic 4 Simulation 5 Godel's Theorem 6 Game Trees 7 The Chomsky Hierarchy 8 Random Numbers 9 Mathematical Research 10 Program Correctness 11 Search Trees 12 Error-Corecting Codes 13 Boolean Logic 14 Regular Languages 15 Time and Space Complexity 16 Genetic Algorithms 17 The Random Access Machine 18 Spline Curves 19 Computer Vision 20 Karnaugh Maps 21 The Newton-Raphson Method 22 Minimum Spanning Trees 23 Generative Grammars 24 Recursion 25 Fast Multiplication 26 Nondeterminism 27 Perceptrons 28 Encoders and Multiplexers 29 CAT Scanning 30 The Partition Problem 31 Turing Machines 32 The Fast Fourier Transform 33 Analog Computing 34 Satisfiability 35 Sequential Sorting 36 Neural Networks That Learn 37 Public Key Cryptography 38 Sequential Cirucits 39 Noncomputerable Functions 40 Heaps and Merges 41 NP-Completeness 42 Number Systems for Computing 43 Storage by Hashing 44 Cellular Automata 45 Cook's Theorem 46 Self-Replicating Computers 47 Storing Images 48 The SCRAM 49 Shannon's Theory 50 Detecting Primes 51 Universal Turing Machines 52 Text Compression 53 Disk Operating Systems 54 NP-Complete Problems 55 Iteration and Recursion 56 VLSI Computers 57 Linear Programming 58 Predicate Calculus 59 The Halting Problem 60 Computer Viruses 61 Searching Strings 62 Parallel Computing 63 The Word Problem 64 Logic Programming 65 Relational Data Bases 66 Church's Thesis

Strength of Materials, Part 1 and Part 2


Stephen P. Timoshenko - 1983
    1: Elementary Theory and Problems contains the essential material that is usually covered in required courses of strength of materials in our engineering schools. Strength of Materials - Part. 2: Advanced Theory and Problems contains the later developments that are of practical importance in the fields of strength of materials, and theory of elasticity. Complete derivations of problems of practical interest are given in most cases. The books are illustrated with a number of problems to which solutions are presented. In many cases, the problems are chosen so as to widen the field covered by the text and to illustrate the application of the theory in the solution of design problems.

Thinking in Systems: A Primer


Donella H. Meadows - 2008
    Edited by the Sustainability Institute’s Diana Wright, this essential primer brings systems thinking out of the realm of computers and equations and into the tangible world, showing readers how to develop the systems-thinking skills that thought leaders across the globe consider critical for 21st-century life.Some of the biggest problems facing the world—war, hunger, poverty, and environmental degradation—are essentially system failures. They cannot be solved by fixing one piece in isolation from the others, because even seemingly minor details have enormous power to undermine the best efforts of too-narrow thinking.While readers will learn the conceptual tools and methods of systems thinking, the heart of the book is grander than methodology. Donella Meadows was known as much for nurturing positive outcomes as she was for delving into the science behind global dilemmas. She reminds readers to pay attention to what is important, not just what is quantifiable, to stay humble, and to stay a learner.In a world growing ever more complicated, crowded, and interdependent, Thinking in Systems helps readers avoid confusion and helplessness, the first step toward finding proactive and effective solutions.

Project Orion: The True Story of the Atomic Spaceship


George Dyson - 2002
    41 illustrations.

Say Again, Please: Guide to Radio Communications


Bob Gardner - 1902
    Topics cover every aspect of radio communication, including basic system and procedural comprehension, etiquette and rules, visual flight rules, instrument flight rules, emergency procedures, ATC facilities and their functions, and a review of airspace definitions. This revised edition also discusses Global Positioning Systems (GPS) and Land and Hold Short Operations (LAHSO). Beginners and professionals alike will find this an invaluable resource for communicating by radio.

Entering Space: Creating a Spacefaring Civilization


Robert Zubrin - 1999
    From the current-day prospect of lunar bases and Mars settlements to the outer reaches of other galaxies, Zubrin delivers the most important and forward-looking work on space and the true possibilities of human exploration since Carl Sagan's Cosmos.Sagan himself said of Zubrin's humans-to-Mars plan, "Bob Zubrin really, nearly alone, changed our thinking on this issue." With Entering Space, he takes us further, into the prospect of human expansion to the outer planets of our own solar system--and beyond.

Mathematics: Its Content, Methods and Meaning


A.D. Aleksandrov - 1963
    . . Nothing less than a major contribution to the scientific culture of this world." — The New York Times Book ReviewThis major survey of mathematics, featuring the work of 18 outstanding Russian mathematicians and including material on both elementary and advanced levels, encompasses 20 prime subject areas in mathematics in terms of their simple origins and their subsequent sophisticated developement. As Professor Morris Kline of New York University noted, "This unique work presents the amazing panorama of mathematics proper. It is the best answer in print to what mathematics contains both on the elementary and advanced levels."Beginning with an overview and analysis of mathematics, the first of three major divisions of the book progresses to an exploration of analytic geometry, algebra, and ordinary differential equations. The second part introduces partial differential equations, along with theories of curves and surfaces, the calculus of variations, and functions of a complex variable. It furthur examines prime numbers, the theory of probability, approximations, and the role of computers in mathematics. The theory of functions of a real variable opens the final section, followed by discussions of linear algebra and nonEuclidian geometry, topology, functional analysis, and groups and other algebraic systems.Thorough, coherent explanations of each topic are further augumented by numerous illustrative figures, and every chapter concludes with a suggested reading list. Formerly issued as a three-volume set, this mathematical masterpiece is now available in a convenient and modestly priced one-volume edition, perfect for study or reference."This is a masterful English translation of a stupendous and formidable mathematical masterpiece . . ." — Social Science