This book contains comprehensive, up-to-date, and authoritative technical information on the internal structure of the FreeBSD open-source operating system. Coverage includes the capabilities of the system; how to effectively and efficiently interface to the system; how to maintain, tune, and configure the operating system; and how to extend and enhance the system. The authors provide a concise overview of FreeBSD's design and implementation. Then, while explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing the systems facilities. As a result, this book can be used as an operating systems textbook, a practical reference, or an in-depth study of a contemporary, portable, open-source operating system. -- Provided by publisher.
Author: Joseph Kong
Publisher: No Starch Press
Release Date: 2012-05-12
Device drivers make it possible for your software to communicate with your hardware, and because every operating system has specific requirements, driver writing is nontrivial. When developing for FreeBSD, you've probably had to scour the Internet and dig through the kernel sources to figure out how to write the drivers you need. Thankfully, that stops now. In FreeBSD Device Drivers, Joseph Kong will teach you how to master everything from the basics of building and running loadable kernel modules to more complicated topics like thread synchronization. After a crash course in the different FreeBSD driver frameworks, extensive tutorial sections dissect real-world drivers like the parallel port printer driver. You'll learn: –All about Newbus, the infrastructure used by FreeBSD to manage the hardware devices on your system –How to work with ISA, PCI, USB, and other buses –The best ways to control and communicate with the hardware devices from user space –How to use Direct Memory Access (DMA) for maximum system performance –The inner workings of the virtual null modem terminal driver, the USB printer driver, the Intel PCI Gigabit Ethernet adapter driver, and other important drivers –How to use Common Access Method (CAM) to manage host bus adapters (HBAs) Concise descriptions and extensive annotations walk you through the many code examples. Don't waste time searching man pages or digging through the kernel sources to figure out how to make that arcane bit of hardware work with your system. FreeBSD Device Drivers gives you the framework that you need to write any driver you want, now.
Author: Andrew S Tanenbaum
Publisher: Pearson Higher Ed
Release Date: 2011-11-21
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. Operating Systems Design and Implementation, 3e , is ideal for introductory courses on computer operating systems. Written by the creator of Minux, professional programmers will now have the most up-to-date tutorial and reference available today. Revised to address the latest version of MINIX (MINIX 3), this streamlined, simplified new edition remains the only operating systems text to first explain relevant principles, then demonstrate their applications using a Unix-like operating system as a detailed example. It has been especially designed for high reliability, for use in embedded systems, and for ease of teaching.
Author: Brendan Gregg
Publisher: Prentice Hall Professional
Release Date: 2011-03-18
The Oracle Solaris DTrace feature revolutionizes the way you debug operating systems and applications. Using DTrace, you can dynamically instrument software and quickly answer virtually any question about its behavior. Now, for the first time, there's a comprehensive, authoritative guide to making the most of DTrace in any supported UNIX environment--from Oracle Solaris to OpenSolaris, Mac OS X, and FreeBSD. Written by key contributors to the DTrace community, DTrace teaches by example, presenting scores of commands and easy-to-adapt, downloadable D scripts. These concise examples generate answers to real and useful questions, and serve as a starting point for building more complex scripts. Using them, you can start making practical use of DTrace immediately, whether you're an administrator, developer, analyst, architect, or support professional. The authors fully explain the goals, techniques, and output associated with each script or command. Drawing on their extensive experience, they provide strategy suggestions, checklists, and functional diagrams, as well as a chapter of advanced tips and tricks. You'll learn how to Write effective scripts using DTrace's D language Use DTrace to thoroughly understand system performance Expose functional areas of the operating system, including I/O, filesystems, and protocols Use DTrace in the application and database development process Identify and fix security problems with DTrace Analyze the operating system kernel Integrate DTrace into source code Extend DTrace with other tools This book will help you make the most of DTrace to solve problems more quickly and efficiently, and build systems that work faster and more reliably.
Author: Michael W. Lucas
Publisher: No Starch Press
Release Date: 2013
OpenBSD is widely used as the basis for critical DNS servers, routers, firewalls, and more. With this book, you'll learn the intricacies of the platform, the technical details behind certain design decisions, and best practices. This edition has been updated for OpenBSD 5.3, including new coverage of OpenBSD's boot system, security features like W^X and ProPolice, and advanced networking techniques. You'll also learn how to: manage network traffic with VLANs, trunks, IPv6, and the PF packet filter; make software management quick and effective using the ports and packages system; give users only the access they need with groups, sudo, and chroots; configure OpenBSD's secure implementations of SNMP, DHCP, NTP, hardware sensors, and more; and customize the installation and upgrade processes for your network and hardware, or build a custom OpenBSD release.
Author: Jim Mauro
Publisher: Prentice Hall Professional
Release Date: 2001
PREFACE The internals of the UNIX kernel are fairly well-documented, most notably by Goodheart and Cox 10, Bach 1, McKusick et al. 19, and Vahalia 39. These texts have become a common source of reference information for those who want to better understand the internals of UNIX. However little has been written about the specifics of the Solaris kernel. The paucity of Solaris specific information led us to create our own reference material. As we published information through white papers, magazine columns, and tutorials, the number of folks expressing interest motivated us to produce a complete work that discussed Solaris exclusively. About This Book This book is about the internals of Sun's Solaris Operating Environment. The rapid growth of Solaris has created a large number of users, software developers, systems administrators, performance analysts, and other members of the technical community, all of whom require in-depth knowledge about the environment in which they work. Since the focus of this book is the internals of the Solaris kernel, the book provides a great deal of information on the architecture of the kernel and the major data structures and algorithms implemented in the operating system. However, rather than approach the subject matter from a purely academic point of view, we wrote the book with an eye on the practical application of the information contained herein. Thus, we have emphasized the methods and tools that can be used on a Solaris system to extract information that otherwise is not easily accessible with the standard bundled commands and utilities. We want to illustrate how you can apply this knowledge in a meaningful way, as your job or interest dictates. To maximize the usefulness of the text, we included specific information on Solaris versions 2.5.1, 2.6, and Solaris 7. We cover the major Solaris subsystems, including memory management, process management, threads, files, and file systems. We do not cover details of low-level I/O, device drivers, STREAMS, and networking. For reference material on these topics, see "Writing Device Drivers" 28, the "STREAMS Programming Guide" 29, and "UNIX Network Programming" 32. The material included in this book is not necessarily presented at an introductory level, although whenever possible we begin discussing a topic with some conceptual background information. We assume that you have some familiarity with operating systems concepts and have used a UNIX-based operating system. Some knowledge of the C programming language is useful but not required. Because of the variety of hardware platforms on which Solaris runs, it is not practical to discuss the low-level details of all the different processors and architectures, so our hardware focus, when detail is required, is admittedly UltraSPARC-centric. This approach makes the most sense since it represents the current technology and addresses the largest installed base. In general, the concepts put forth when detail is required apply to other processors and platforms supported. The differences are in the specific implementation details, such as per-processor hardware registers. Throughout the book we refer to specific kernel functions by name as we describe the flow of various code segments. These routines are internal to the operating system and should not be construed as, or confused with, the public interfaces that ship as part of the Solaris product line-the systems calls and library interfaces. The functions referenced throughout the text, unless explicitly noted, are private to the kernel and not callable or in any way usable by application programs. Intended Audience We hope that this book will serve as a useful reference for a variety of technical staff members working with the Solaris Operating Environment. Application developerscan find information in this book about how Solaris implements functions behind the application programming interfaces. This information helps developers understand performance, scalability, and implementation specifics of each interface when they develop Solaris applications. The system overview section and sections on scheduling, interprocess communication, and file system behavior should be the most useful sections. Device driver and kernel module developersof drivers, STREAMS modules, loadable system calls, etc., can find herein the general architecture and implementation theory of the Solaris Operating Environment. The Solaris kernel framework and facilities portions of the book (especially the locking and synchronization primitives chapters) are particularly relevant. Systems administrators, systems analysts, database administrators, and ERP managersresponsible for performance tuning and capacity planning can learn about the behavioral characteristics of the major Solaris subsystems. The file system caching and memory management chapters provide a great deal of information about how Solaris behaves in real-world environments. The algorithms behind Solaris tunable parameters (which are detailed in Appendix A) are covered in depth throughout the book. Technical support staffresponsible for the diagnosis, debugging, and support of Solaris will find a wealth of information about implementation details of Solaris. Major data structures and data flow diagrams are provided in each chapter to aid debugging and navigation of Solaris Systems. System users who just want to know moreabout how the Solaris kernel works will find high-level overviews at the start of each chapter. In addition to the various technical staff members listed above, we also believe that members of the academic community will find the book of value in studying how a volume, production kernel implements major subsystems and solves the problems inherent in operating systems development. How This Book Is Organized We organizedSolaras Internalsinto several logical parts, each part grouping several chapters containing related information. Our goal was to provide a building block approach to the material, where later sections build on information provided in earlier chapters. However, for readers familiar with particular aspects of operating systems design and implementation, the individual parts and chapters can stand on their own in terms of the subject matter they cover. Part One:Introduction to Solaris Internals Chapter 1— An Introduction to Solaris Chapter 2— Kernel Services Chapter 3— Kernel Synchronization Primitives Chapter 4— Kernel Bootstrap and Initialization Part Two:The Solaris Memory System Chapter 5— Solaris Memory Architecture Chapter 6— Kernel Memory Chapter 7— Memory Monitoring Part Three:Threads, Processes, and IPC Chapter 8— The Solaris Multithreaded Process Architecture Chapter 9— The Solaris Kernel Dispatcher Chapter 10— Interprocess Communication Part Four:Files and File Systems Chapter 11— Solaris Files and File I/O Chapter 12— File System Overview Chapter 13— File System Framework Chapter 14— The UNIX File System Chapter 15— Solaris File System Cache Solaris Source Code In February 2000, Sun announced the availability of Solaris source. This book provides the essential companion to the Solaris source and can be used as a guide to the Solaris kernel framework and architecture. It should also be noted that the source available from Sun is the Solaris 8 source. Although this book covers Solaris versions up to and including Solaris 7, almost all of the material is relevant to Solaris 8. Updates and Related Material To complement this book, we created a Web site where we will place updated material, tools we refer to, and links to related material on the topics covered. The Web site is available at http://www.solarisinternals.com. A Note from the Authors We certainly hope that you get as much out of reading Solaris Internals as we did from writing it. We welcome comments, suggestions, and questions from readers.
FreeBSD and OpenBSD are increasingly gaining traction in educational institutions, non-profits, and corporations worldwide because they provide significant security advantages over Linux. Although a lot can be said for the robustness, clean organization, and stability of the BSD operating systems, security is one of the main reasons system administrators use these two platforms. There are plenty of books to help you get a FreeBSD or OpenBSD system off the ground, and all of them touch on security to some extent, usually dedicating a chapter to the subject. But, as security is commonly named as the key concern for today's system administrators, a single chapter on the subject can't provide the depth of information you need to keep your systems secure. FreeBSD and OpenBSD are rife with security "building blocks" that you can put to use, and Mastering FreeBSD and OpenBSD Security shows you how. Both operating systems have kernel options and filesystem features that go well beyond traditional Unix permissions and controls. This power and flexibility is valuable, but the colossal range of possibilities need to be tackled one step at a time. This book walks you through the installation of a hardened operating system, the installation and configuration of critical services, and ongoing maintenance of your FreeBSD and OpenBSD systems. Using an application-specific approach that builds on your existing knowledge, the book provides sound technical information on FreeBSD and Open-BSD security with plenty of real-world examples to help you configure and deploy a secure system. By imparting a solid technical foundation as well as practical know-how, it enables administrators to push their server's security to the next level. Even administrators in other environments--like Linux and Solaris--can find useful paradigms to emulate. Written by security professionals with two decades of operating system experience, Mastering FreeBSD and OpenBSD Security features broad and deep explanations of how how to secure your most critical systems. Where other books on BSD systems help you achieve functionality, this book will help you more thoroughly secure your deployments.
In the world of Unix operating systems, the various BSDs come with a long heritage of high-quality software without restrictions. Steeped in the venerable Unix traditions the immense power and flexibility of the BSDs are yours to hack. Of course, first you have to know what you have at hand and how to use it. Written by trainers, developers, hobbyists, and administrators, BSD Hacks collects 100 tips and tricks to fill your toolbox. Whether you're a new user, an administrator, or a power user looking for new ideas to take your knowledge to the next level, each hack will let you peek inside the mind of another Unix fan. Learn how to : Customize and install software exactly as you want it on one or dozens of machines ; Configure the command line the way you like it, to speed up common tasks and make difficult things easy ; Be a good network neighbor, even to other operating systems ; Make the most of the copious documentation or find (and document) answers when there's no documentation ; Allocate bandwidth by time, department, or use ; Secure your system with good passwords, intelligent firewall rules, proper logging, and a little foresight ; Plan for and recover from disaster, including catastrophic Internet loss and hardware failures ; Automate your backups, safely and securely. BSD Hacks is for anyone using FreeBSD, OpenBSD, NetBSD, Darwin (under or alongside Mac OS X), or anything else BSD-flavored. Whether you're new to BSD or an old hand-even seasoned Linux folk can Learn a lot from their cousins-you will reach new levels of understanding and have a lot of fi-in along the way.
Author: Michael W. Lucas
Publisher: No Starch Press
Release Date: 2013-04-12
FreeBSD—the powerful, flexible, and free Unix-like operating system—is the preferred server for many enterprises. But it can be even trickier to use than either Unix or Linux, and harder still to master. Absolute FreeBSD, 2nd Edition is your complete guide to FreeBSD, written by FreeBSD committer Michael W. Lucas. Lucas considers this completely revised and rewritten second edition of his landmark work to be his best work ever; a true product of his love for FreeBSD and the support of the FreeBSD community. Absolute FreeBSD, 2nd Edition covers installation, networking, security, network services, system performance, kernel tweaking, filesystems, SMP, upgrading, crash debugging, and much more, including coverage of how to:–Use advanced security features like packet filtering, virtual machines, and host-based intrusion detection –Build custom live FreeBSD CDs and bootable flash –Manage network services and filesystems –Use DNS and set up email, IMAP, web, and FTP services for both servers and clients –Monitor your system with performance-testing and troubleshooting tools –Run diskless systems –Manage schedulers, remap shared libraries, and optimize your system for your hardware and your workload –Build custom network appliances with embedded FreeBSD –Implement redundant disks, even without special hardware –Integrate FreeBSD-specific SNMP into your network management system. Whether you're just getting started with FreeBSD or you've been using it for years, you'll find this book to be the definitive guide to FreeBSD that you've been waiting for.
Author: Amit Singh
Publisher: Addison-Wesley Professional
Release Date: 2006-06-19
Mac OS X was released in March 2001, but many components, such as Mach and BSD, are considerably older. Understanding the design, implementation, and workings of Mac OS X requires examination of several technologies that differ in their age, origins, philosophies, and roles. Mac OS X Internals: A Systems Approach is the first book that dissects the internals of the system, presenting a detailed picture that grows incrementally as you read. For example, you will learn the roles of the firmware, the bootloader, the Mach and BSD kernel components (including the process, virtual memory, IPC, and file system layers), the object-oriented I/O Kit driver framework, user libraries, and other core pieces of software. You will learn how these pieces connect and work internally, where they originated, and how they evolved. The book also covers several key areas of the Intel-based Macintosh computers. A solid understanding of system internals is immensely useful in design, development, and debugging for programmers of various skill levels. System programmers can use the book as a reference and to construct a better picture of how the core system works. Application programmers can gain a deeper understanding of how their applications interact with the system. System administrators and power users can use the book to harness the power of the rich environment offered by Mac OS X. Finally, members of the Windows, Linux, BSD, and other Unix communities will find the book valuable in comparing and contrasting Mac OS X with their respective systems. Mac OS X Internals focuses on the technical aspects of OS X and is so full of extremely useful information and programming examples that it will definitely become a mandatory tool for every Mac OS X programmer.
This course-tested textbook describes the design and implementation of operating systems, and applies it to the MTX operating system, a Unix-like system designed for Intel x86 based PCs. Written in an evolutional style, theoretical and practical aspects of operating systems are presented as the design and implementation of a complete operating system is demonstrated. Throughout the text, complete source code and working sample systems are used to exhibit the techniques discussed. The book contains many new materials on the design and use of parallel algorithms in SMP. Complete coverage on booting an operating system is included, as well as, extending the process model to implement threads support in the MTX kernel, an init program for system startup and a sh program for executing user commands. Intended for technically oriented operating systems courses that emphasize both theory and practice, the book is also suitable for self-study.
Author: Michael W Lucas
Publisher: Tilted Windmill Press
Release Date: 2016-04-07
ZFS improves everything about systems administration. Once you peek under the hood, though, ZFS' bewildering array of knobs and tunables can overwhelm anyone. ZFS experts can make their servers zing-and now you can, too, with "FreeBSD Mastery: Advanced ZFS." This small book teaches you to: Use boot environments to make the riskiest sysadmin tasks boring Delegate filesystem privileges to users Containerize ZFS datasets with jails Quickly and efficiently replicate data between machines split layers off of mirrors optimize ZFS block storage handle large storage arrays select caching strategies to improve performance manage next-generation storage hardware identify and remove bottlenecks build screaming fast database storage dive deep into pools, metaslabs, and more! Whether you manage a single small server or international datacenters, simplify your storage with "FreeBSD Mastery: Advanced ZFS.""
Author: Peter N. M. Hansteen
Publisher: No Starch Press
Release Date: 2014-10-03
OpenBSD’s stateful packet filter, PF, is the heart of the OpenBSD firewall. With more and more services placing high demands on bandwidth and an increasingly hostile Internet environment, no sysadmin can afford to be without PF expertise. The third edition of The Book of PF covers the most up-to-date developments in PF, including new content on IPv6, dual stack configurations, the “queues and priorities” traffic-shaping system, NAT and redirection, wireless networking, spam fighting, failover provisioning, logging, and more. You’ll also learn how to: * Create rule sets for all kinds of network traffic, whether crossing a simple LAN, hiding behind NAT, traversing DMZs, or spanning bridges or wider networks * Set up wireless networks with access points, and lock them down using authpf and special access restrictions * Maximize flexibility and service availability via CARP, relayd, and redirection * Build adaptive firewalls to proactively defend against attackers and spammers * Harness OpenBSD’s latest traffic-shaping system to keep your network responsive, and convert your existing ALTQ configurations to the new system * Stay in control of your traffic with monitoring and visualization tools (including NetFlow) The Book of PF is the essential guide to building a secure network with PF. With a little effort and this book, you’ll be well prepared to unlock PF’s full potential.