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

Digital Evidence and Computer Crime: Forensic Science, Computers and the Internet


Eoghan Casey - 1999
    Though an increasing number of criminals are using computers and computer networks, few investigators are well-versed in the evidentiary, technical, and legal issues related to digital evidence. As a result, digital evidence is often overlooked, collected incorrectly, and analyzed ineffectively. The aim of this hands-on resource is to educate students and professionals in the law enforcement, forensic science, computer security, and legal communities about digital evidence and computer crime. This work explains how computers and networks function, how they can be involved in crimes, and how they can be used as a source of evidence. As well as gaining a practical understanding of how computers and networks function and how they can be used as evidence of a crime, readers will learn about relevant legal issues and will be introduced to deductive criminal profiling, a systematic approach to focusing an investigation and understanding criminal motivations. Readers will receive access to the author's accompanying Web site which contains simulated cases that integrate many of the topics covered in the text. Frequently updated, these cases teaching individuals about: • Components of computer networks • Use of computer networks in an investigation • Abuse of computer networks • Privacy and security issues on computer networks • The law as it applies to computer networks• Provides a thorough explanation of how computers and networks function, how they can be involved in crimes, and how they can be used as a source of evidence • Offers readers information about relevant legal issues • Features coverage of the abuse of computer networks and privacy and security issues on computer networks• Free unlimited access to author's Web site which includes numerous and frequently updated case examples

The Sindbad Voyage


Tim Severin - 1982
    But could his amazing voyages, recounted in the The Book of One Thousand and One Nights, be recreated in the modern world? Or were they just the stuff of legend? Tim Severin was determined to find out. After three years of research, he created a precise replica of an early Arab trading ship. Not a single nail was used in her construction - her planks were held together with 400 miles of coconut cord. With a crew of twenty, including eight Omani sailors, his ship Sohar (named after the town said to have been Sindbad’s birthplace) completed a 6,000 mile journey by way of India, Sri Lanka, and across the Indian Ocean to Sumatra and Singapore, and finally through the China Sea to a tumultuous welcome in Canton. Along the way, the crew had to swim among sharks while repairing the rudder, catch rainwater to drink while becalmed in the doldrums, and endure the battering of violent seas off the coast of Vietnam. 'The Sindbad Voyage' is the remarkable story of that amazing journey. An enthralling saga of the 7 ½ month voyage, it is one of the most memorable sailing stories of modern times.

Computer Organization


V. Carl Hamacher - 1978
    *A comprehensive overview of hardware and software issues make this a "must-have" for electrical and computer engineers*Contains new material on RISC processors, performance analysis, multiprocessors and memory systems*New two-color design and illustrations illuminate the text

A Book on C: Programming in C


Al Kelley - 1984
    It includes a complete chapter on C++ and an overall organization designed to appeal to the many programmers who view C as a stepping stone to C++ and the object-oriented paradigm. This edition also features an increased emphasis on modules and ADTs, which are essential concepts for creating reusable code and which show how to use header files to tie together a multi-file program. computer science students.

The Inhuman: Reflections on Time


Jean-François Lyotard - 1988
    In this important new study he develops his analysis of the phenomenon of postmodernity.In a wide-ranging discussion the author examines the philosophy of Kant, Heidegger, Adorno, and Derrida and looks at the works of modernist and postmodernist artists such as Cézanne, Debussy, and Boulez. Lyotard addresses issues such as time and memory, the sublime and the avant-garde, and the relationship between aesthetics and politics. Throughout his discussion he considers the close but problematic links between modernity, progress, and humanity, and the transition to postmodernity. Lyotard claims that it is the task of literature, philosophy, and the arts, to bear witness to and explain this difficult transition.This important contribution to aesthetic and philosophical debates will be of great interest to students in philosophy, literary, and cultural theory and politics.

Speculum of the Other Woman


Luce Irigaray - 1974
    For the profession of psychoanalysis, Irigaray believes, female sexuality has remained a "dark continent," unfathomable and unapproachable; its nature can only be misunderstood by those who continue to regard women in masculine terms. In the first section of the book, "The Blind Spot of an Old Dream of Symmetry," Irigaray rereads Freud's essay "Femininity," and his other writings on women, bringing to the fore the masculine ideology implicit in psychoanalytic theory and in Western discourse in general: woman is defined as a disadvantaged man, a male construct with no status of her own.In the last section, "Plato's Hystera," Irigaray reinterprets Plato's myth of the cave, of the womb, in an attempt to discover the origins of that ideology, to ascertain precisely the way in which metaphors were fathered that henceforth became vehicles of meaning, to trace how woman came to be excluded from the production of discourse. Between these two sections is "Speculum"--ten meditative, widely ranging, and freely associational essays, each concerned with an aspect of the history of Western philosophy in its relation to woman, in which Irigaray explores woman's essential difference from man.

Purely Functional Data Structures


Chris Okasaki - 1996
    However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

The Algorithm Design Manual


Steven S. Skiena - 1997
    Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.

Communication Systems


Simon Haykin - 1978
    In addition to being the most up-to-date communications text available, Simon Haykin has added MATLAB computer experiments.

More Effective C#: 50 Specific Ways to Improve Your C#


Bill Wagner - 2008
    If you are serious about developing with the C# language, you need this book." -Bill Craun, Principal Consultant, Ambassador Solutions, Inc. "More Effective C# is an opportunity to work beside Bill Wagner. Bill leverages his knowledge of C# and distills his expertise down to some very real advice about programming and designing applications that every serious Visual C# user should know. More Effective C# is one of those rare books that doesn't just regurgitate syntax, but teaches you how to use the C# language." -Peter Ritchie, Microsoft MVP: Visual C# "More Effective C# is a great follow-up to Bill Wagner's previous book. The extensive C# 3.0 and LINQ coverage is extremely timely!" -Tomas Restrepo, Microsoft MVP: Visual C++, .NET, and Biztalk Server "As one of the current designers of C#, it is rare that I learn something new about the language by reading a book. More Effective C# is a notable exception. Gently blending concrete code and deep insights, Bill Wagner frequently makes me look at C# in a fresh light-one that really makes it shine. More Effective C# is at the surface a collection of very useful guidelines. Look again. As you read through it, you'll find that you acquire more than just the individual pieces of advice; gradually you'll pick up on an approach to programming in C# that is thoughtful, beautiful, and deeply pleasant. While you can make your way willy-nilly through the individual guidelines, I do recommend reading the whole book-or at least not skipping over the chapter introductions before you dive into specific nuggets of advice. There's perspective and insight to be found there that in itself can be an important guide and inspiration for your future adventures in C#." -Mads Torgersen, Program Manager, Visual C#, Microsoft "Bill Wagner has written an excellent book outlining the best practices for developers who work with the C# language. By authoring More Effective C#, he has again established himself as one of the most important voices in the C# community. Many of us already know how to use C#. What we need is advice on how to hone our skills so that we can become wiser programmers. There is no more sophisticated source of information on how to become a first-class C# developer than Bill Wagner's book. Bill is intelligent, thoughtful, experienced, and skillful. By applying the lessons from this book to your own code, you will find many ways to polish and improve the work that you produce." -Charlie Calvert, Community Program Manager, Visual C#, Microsoft In More Effective C#, Microsoft C# MVP and Regional Director Bill Wagner introduces fifty brand-new ways to write more efficient and more robust software. This all-new book follows the same format as Wagner's best-selling Effective C# (Addison-Wesley, 2005), providing clear, practical explanations, expert tips, and plenty of realistic code examples. Wagner shows how to make the most of powerful innovations built into Microsoft's new C# 3.0 and .NET Framework 3.5, as well as advanced C# language capabilities not covered in his previous book. Drawing on his unsurpassed C# experience, the author reveals new best practices for working with LINQ, generics, metaprogramming, and many other features. He also uncovers practices that compromise performance or reliability and shows exactly how to avoid them. More Effective C# shows how to Use generics to express your design intent more effectively Master advanced generics techniques, such as constraints, method constraints, and generic specialization Use the multithreaded techniques you'll need to work with the .NET framework every day Express modern design idioms using the rich palette of C# language features Successfully mix object oriented and functional programming constructs Create composable interfaces and avoid confusion in public interfaces Use extension methods to separate contracts from implementation Program successfully with C# closures and anonymous types Write more effective LINQ queries Make the most of LINQ Lazy Evaluation Queries and Lambda Expressions Distinguish and convert between delegates and expression trees Efficiently utilize nullable types and partial classes Use implicit properties for mutable, nonserializable data You're already a successful C# programmer-this book can help you become an outstanding one.

Windows 7 For Dummies


Andy Rathbone - 2009
    Windows expert Andy Rathbone walks you step by step through the most common Windows 7 tasks, including managing files, applications, media, and Internet access. You'll learn how to navigate the interface, customize the desktop, and work with the file system. You'll then go deeper into the system, discovering new features and improvements, and finding tips and techniques for getting the most out of Windows 7. Covers basic management of applications, files, and data; creating and printing documents; setting up an Internet connection and e-mail account; and online security Includes specially produced videos explaining features and illustrating techniques in greater depth Explores using Windows to edit and manage audio, video, and photo files, and how to create CDs, DVDs, and playlists with Media Center Helps you tweak and customize Windows 7 to operate your way and set up user accounts, build a home network, and maintain your PC Provides troubleshooting advice, helps you find missing files and use the Help system, and explains common error messages Windows 7 For Dummies, Enhanced Edition will have you up and running on the newest version of Windows quickly and easily.

Computer Science Distilled: Learn the Art of Solving Computational Problems


Wladston Ferreira Filho - 2017
    Designed for readers who don't need the academic formality, it's a fast and easy computer science guide. It teaches essential concepts for people who want to program computers effectively. First, it introduces discrete mathematics, then it exposes the most common algorithms and data structures. It also shows the principles that make computers and programming languages work.

Power of Place: Geography, Destiny, and Globalization's Rough Landscape


H.J. de Blij - 2008
    As Harm de Blij argues in The Power of Place, in crucial ways--from the uneven distribution of natural resources to the unequal availability of opportunity--geography continues to hold billions of people in its grip. We areall born into natural and cultural environments that shape what we become, individually and collectively. From our mother tongue to our father's faith, from medical risks to natural hazards, where we start our journey has much to do with our destiny. Hundreds of millions of farmers in the riverbasins of Asia and Africa, and tens of millions of shepherds in isolated mountain valleys from the Andes to Kashmir, all live their lives much as their distant ancestors did, remote from the forces of globalization. Incorporating a series of persuasive maps, De Blij describes the tremendously variedenvironments across the planet and shows how migrations between them are comparatively rare. De Blij also looks at the ways we are redefining place so as to make its power even more potent than it has been, with troubling implications.

21 Lessons: What I've Learned from Falling Down the Bitcoin Rabbit Hole


Gigi - 2020
    Like many others, I feel like I have learned more in the last couple of years studying Bitcoin than I have during two decades of formal education. The following lessons are a distillation of what I’ve learned. First published as an article series titled “What I’ve Learned From Bitcoin,” what follows can be seen as a third edition of the original series. Like Bitcoin, these lessons aren’t a static thing. I plan to work on them periodically, releasing updated versions and additional material in the future.Bitcoin is an inexhaustible teacher, which is why I do not claim that these lessons are all-encompassing or complete. They are a reflection of my personal journey down the rabbit hole. There are many more lessons to be learned, and every person will learn something different from entering the world of Bitcoin. I hope that you will find these lessons useful and that the process of learning them by reading won’t be as arduous and painful as learning them firsthand.