Comprehensive and Biaised Comparison of Openbsd and Freebsd

Total Page:16

File Type:pdf, Size:1020Kb

Comprehensive and Biaised Comparison of Openbsd and Freebsd Comprehensive and biaised comparison of OpenBSD and FreeBSD Antoine Jacoutot Baptiste Daroussin ajacoutot@ OpenBSD. org bapt@ FreeBSD. org The OpenBSD project The FreeBSD project Abstract AJACOUTOT: Right, so while discussing the re- productive appendix of these horses to know This paper will look at some of the differences between 1 2 which came first... the FreeBSD and OpenBSD operating systems. It is OK who am I kidding here. It was something not intended to be solely technical but will also show like midnight and... the different ”visions” and design decisions that rule BAPT: Actually I think it was more like 2am. the way things are implemented. It is expected to be a AJACOUTOT: Anyway, we were having our 10th subjective view from two BSD developers and does not pint of Heineken in a Pub somewhere... pretend to represent these projects in any way. BAPT: Duvel, it was Duvel. Be careful what you say here, its a beer land! We don’t want it to be a troll talk but rather a casual AJACOUTOT: Right right. So I started complaining and friendly exchange while nicely making fun of that the Duvel didnt taste anything, of course it each other like we would do over a drink. Of course, was our 10th pint so... we shall try and hit where it hurts when that makes BAPT: No no no, I told you cant say things like this. sense. Obviously, we both have our personal subjective Or OK, maybe the last one was Heineken after preferences and we will explain why. Showing some of all. the weaknesses may encourage people to contribute in AJACOUTOT: See! So, as I was saying, the beer did some areas. not have any flavor anymore. And thats when it hit me... Flavor... wait a minute... OMG this Most of the topics discussed here could warrant their is exactly like FreeBSD. You guys dont have own paper and talk and as such some may not get the FLAVORed packages! deep analysis they deserve. [ Trolls must now leave the audience] This is a totally biased talk from two different perspec- tives. ACT I 2 Ports & packages 1 The History behind the story AJACOUTOT: FLAVOR3 is an awesome concept. I AJACOUTOT: Before we begin, let us tell you a lit- am not aware of any other package manager in tle story about how we ended up here today... UNIX land that implements the same function- Once upon a time in the countryside on a sunny ality. afternoon, in the mid-summer time, Bapt and I Basically, it allows providing packages com- were having some herbal tea with... piled with a different set of options. Thats very What was it already, sponge cake? convenient from a dependency point of view BAPT: Absolutely, we were talking about the inter- since according to the options you want, the fi- action between ponies and unicorns. Which nal binary will change as it might end up link- one appeared first etc... ing to different libraries. Just another one of our regular meetings argu- So you want to be able to control that but pro- ing on important philosophical concepts. viding packages compiled with a good set of defaults can be next to impossible sometimes in mind that we do not release a package set, (its hard compromise) and thats where FLA- but the ports tree is a rolling release not tight VORs kick in. For example you can install to a FreeBSD release. Which reminds me, you Sendmail with or without support for SASL guys do not support upgrading packages on a and / or LDAP: there are different (conflict- given release! ing) packages for it (e.g. ”sendmail” versus AJACOUTOT: Actually we do support upgrading ”sendmail–ldap-sasl”). packages on a given release. Its different from subpackages which are just What we do not provide are precompiled split packages. These are typically used when binary packages. So its true that you need you have a software that comes with a huge some kind of a build box where you can amount of data (like audio and graphics for distribute packages updates from. games for example) which rarely change while But theres work in progress in this area and the main binary does each update. I am confident that within a year we will be Instead of having to update the complete set, able to provide binary upgrades for packages you just update one small subpackage. It can on supported releases. also be used for things that ship modules or So keeping your packages up-to-date will just add on components that have a whole lot of be a matter of running ”pkg add -u”. different dependencies. PHP is a good exam- ple. On OpenBSD we compile it with pretty Talking about pkg add(1)4, its important much all options, so the build requirements are to note that a lot of operations are done big but the port only needs to be built once and as different unprivileged users (fetching, since the package is split into multiple ones, extracting etc), we dont really want to go on you only get to install what you need (e.g. php- the Internet as root while you guys still do imap, php-mysql...). not drop privileges when using libfetch(3)5 in BAPT: You really took the wrong example here. pkg(8)6. Care to comment about that? For php we have fine grained split the pack- BAPT: That is not true actually pkg(8) uses cap- ages so you want php with imap? Just pkg in- sicum to sandbox everywhere it is possible. stall php5-imap and done. And pkg(8) also uses unprivileged user to fetch AJACOUTOT: But my point is actually that sub- packages for examples and everywhere it is packages allow you to not have to deal with possible. fine grained packages. If I understand cor- While sandboxing is supported for a long time, rectly how your ports tree works you still need unprivileged users mechanism were added re- to build each PHP module separately one by cently before OpenBSD did it ... by a few days one, while we do it all at once. :) BAPT: Correct, these are not really subpackages AJACOUTOT: Maybe you and Marc (Espie; the and would be nicer with them. For FLAVORs author of OpenBSD pkg add(1)) are sharing a good example could be the OpenLDAP client brains! compiled with or without SASL :) AJACOUTOT: Right. So if I need SASL support in Back to our topic, we also try very hard OpenLDAP on FreeBSD, I assume I need to to provide proper upgrade paths for our users, build it myself right? Thats fine I guess, but but the difference is that we dont have to deal my fear is what will happen when I run ”pkg with legacy / unmaintained wrappers against update && pkg upgrade”? the pkg tools (portmaster7, portupgrade8, BAPT: Bad things... portinstall, portguruwhatever...)ˆ . Our pkg BAPT: So yes it is true that we do not yet have FLA- tools are designed to provide everything one VORs nor subpackages but there is some on- needs for package management without the going work to provides those features in the need for an external helper. Dont forget we ports tree. That work is pretty hard as it breaks have a long tradition of providing proper bi- the design of some tools that are heavily used nary packages over pushing people to compile by users like portmaster and portupgrade and their own. which are barely maintained; meaning we need BAPT: This is also true for FreeBSD now, most of to find an upgrade path which will not break the tools you are speaking about are mostly those. We try to always have an upgrade path to use the ports tree directly as a live system for users and try to avoid hard breakage. Keep rather than using binary packages (which is a 2 usage not supported by OpenBSD right?). This is all very confusing, no support can be AJACOUTOT: Its perfectly supported by OpenBSD. good if you dont understand how it works. We just dont encourage it it because for BAPT: Common that is easy: 99.99% of the cases, it is not needed. Normal Releases which are published from BAPT: But one thing about the FreeBSD ports tree a -STABLE branch were supported by the is that it works on all supported versions of Security Officer for a minimum of 12 months FreeBSD. Ah well... true you only support one after the release, and for sufficient additional version of OpenBSD and only for 6 month. time (if needed) to ensure that there is a newer release for at least 3 months before the older 3 Release model & engineering Normal release expires. Extended Selected releases (normally every AJACOUTOT: You are correct, for packages we second release plus the last release from each only support the current release which at this -STABLE branch) were supported by the time is is 6.0; the operating system itself is sup- Security Officer for a minimum of 24 months ported for two releases. after the release, and for sufficient additional And aside from current/snapshots, our ports time (if needed) to ensure that there is a newer tree is indeed tagged to a specific release. Extended release for at least 3 months before Thats a design decision. We do not want our the older Extended release expires. users to be forced to upgrade to a new major Nah... I agree this is a mess, further more it version of a software on a given release and was causing lots of issue when maintaining we do not want to maintain 4 different versions the ports, as we had to wait for at the very least of the same software to prevent that.
Recommended publications
  • Web Vmstat Any Distros, Especially Here’S Where Web Vmstat Comes Those Targeted at In
    FOSSPICKS Sparkling gems and new releases from the world of FOSSpicks Free and Open Source Software Mike Saunders has spent a decade mining the internet for free software treasures. Here’s the result of his latest haul… Shiny statistics in a browser Web VMStat any distros, especially Here’s where Web VMStat comes those targeted at in. It’s a system monitor that runs Madvanced users, ship an HTTP server, so you can connect with shiny system monitoring tools to it via a web browser and see on the desktop. Conky is one such fancy CSS-driven charts. Before you tool, while GKrellM was all the rage install it, you’ll need to get the in the last decade, and they are websocketd utility, which you can genuinely useful for keeping tabs find at https://github.com/ on your boxes, especially when joewalnes/websocketd. Helpfully, you’re an admin in charge of the developer has made pre- various servers. compiled executables available, so Now, pretty much all major you can just grab the 32-bit or distros include a useful command 64-bit tarball, extract it and there line tool for monitoring system you have it: websocketd. (Of course, Here’s the standard output for vmstat – not very interesting, right? resource usage: vmstat. Enter if you’re especially security vmstat 1 in a terminal window and conscious, you can compile it from copy the aforementioned you’ll see a regularly updating (once its source code.) websocketd into the same place. per second) bunch of statistics, Next, clone the Web VMStat Git Then just enter: showing CPU usage, free RAM, repository (or grab the Zip file and ./run swap usage and so forth.
    [Show full text]
  • The Gnome Bazaar How Gnome Gets Built and How We Can Improve
    the gnome bazaar how gnome gets built and how we can improve daniel g. siegel 1. some serious stuff about my thesis 2. awesome gnome stuff how do foss projects work, which structures do they have and which workflows have they established. to accomplish this, several foss will be analyzed in order to identify concertedly models. in addition they will be compared to traditional software engineering models in order to see whether they are similar or oppose differences. good selection of projects with which the analysis is able to produce reliable and reasonable results • popularity • community • age ◦ communication • category ◦ number of developers • activity ◦ conferences ◦ releases ◦ foundations ◦ downloads ◦ ongoing projects ◦ commits project origin category Debian 1993 operating system Drupal 2001 content management system Fedora 2002 operating system GNOME 1997 desktop environment KDE 1996 desktop environment MySQL/MariaDB 1997 database management system PHP 1994 interpreted programming language Plone 1999 content management system PostgreSQL 1986 database management system Python 1989 interpreted programming language results 1 • history & origin 2 • community structure 3 • release process 4 • development model "[...] rather, the community seemed to resemble a great babbling bazaar of differing agendas and approaches" eric s. raymond what? comparison 1 • history & origin 2 • community structure 3 • release process 4 • development model history & origin • diverse origin • small group of founders • big burst of growth after first release • more big bursts before big releases community structure • very hierarchical • lead by leader or team • differences in hierachical structure • though easy to step up the ladder community structure: remarks • missing visionary • role of rt • unfruitful discussions release process • mostly fixed release cycles • lead by release manager/team • similar phases in all projects release process: remarks • cycle often too long for small projects • api/abi compatibility • jhbuild etc.
    [Show full text]
  • Introduction to Debugging the Freebsd Kernel
    Introduction to Debugging the FreeBSD Kernel John H. Baldwin Yahoo!, Inc. Atlanta, GA 30327 [email protected], http://people.FreeBSD.org/˜jhb Abstract used either directly by the user or indirectly via other tools such as kgdb [3]. Just like every other piece of software, the The Kernel Debugging chapter of the FreeBSD kernel has bugs. Debugging a ker- FreeBSD Developer’s Handbook [4] covers nel is a bit different from debugging a user- several details already such as entering DDB, land program as there is nothing underneath configuring a system to save kernel crash the kernel to provide debugging facilities such dumps, and invoking kgdb on a crash dump. as ptrace() or procfs. This paper will give a This paper will not cover these topics. In- brief overview of some of the tools available stead, it will demonstrate some ways to use for investigating bugs in the FreeBSD kernel. FreeBSD’s kernel debugging tools to investi- It will cover the in-kernel debugger DDB and gate bugs. the external debugger kgdb which is used to perform post-mortem analysis on kernel crash dumps. 2 Kernel Crash Messages 1 Introduction The first debugging service the FreeBSD kernel provides is the messages the kernel prints on the console when the kernel crashes. When a userland application encounters a When the kernel encounters an invalid condi- bug the operating system provides services for tion (such as an assertion failure or a memory investigating the bug. For example, a kernel protection violation) it halts execution of the may save a copy of the a process’ memory current thread and enters a “panic” state also image on disk as a core dump.
    [Show full text]
  • BSD – Alternativen Zu Linux
    ∗BSD { Alternativen zu Linux Karl Lockhoff March 19, 2015 Inhaltsverzeichnis I Woher kommt BSD? I Was ist BSD? I Was ist sind die Unterschiede zwischen FreeBSD, NetBSD und OpenBSD? I Warum soll ich *BSD statt Linux einsetzen? I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I 1978 I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Bill Joy erstellt eine Sammlung von Tools, 1BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den vi in Berkeley I 2BSD erscheint (Basis f¨urdie Weiterentwicklung PDP-11) I 3BSD erscheint (erstmalig mit einen eigenen Kernel) I 4BSD erscheint (enth¨altdas fast file system (ffs)) I Bill Joy wechselt zu Sun Microsystems I Kirk McKusick ¨ubernimmt die Entwicklung von BSD I Unix Version 7 erscheint I 1979 I 1980 I 1981 Woher kommt BSD? I 1976 I Unix Version 6 erscheint I 1978 I Chuck Haley und Bill Joy entwickeln den
    [Show full text]
  • The Challenges of Dynamic Network Interfaces
    The Challenges of Dynamic Network Interfaces by Brooks Davis brooks@{aero,FreeBSD}.org The Aerospace Corporation The FreeBSD Project EuroBSDCon 2004 October 29-31, 2004 Karlsruhe, Germany Introduction ● History of Dynamic Interfaces ● Problems ● Possible Solutions ● Advice to Implementors ● Future Work Early UNIX ● Totally static. ● All devices must be compiled in to kernel ● Fast and easy to program ● Difficult to maintain as the number of devices grows Autoconfiguration ● Introduced in 4.1BSD (June 1981) ● One kernel can serve multiple hardware configurations ● Probe – Test for existence of devices, either using stored addresses or matching devices on self-identifying buses ● Attach – Allocate a driver instance (as of 6.0, this must be fully dynamic) Kernel Modules ● Allows drivers to be added at run time ● LKM (Loadable Kernel Modules) – Introduced in 2.0 by Terry Lambert – Modeled after the facility in SunOS ● KLD (dynamic kernel linker) – Introduced along with newbus in 3.0 by Doug Rabson – Added a generic if_detach() function PC Card & CardBus ● Initial PC Card (PCMCIA) support via PAO in 2.0 ● Fairly good support in 3.0 ● Most PAO changes merged in 4.0 – PAO development ceased ● CardBus support in 5.0 Other Removable Devices ● USB Ethernet (4.0) ● Firewire (fwe(4) in 4.8, fwip(4) in 5.3) ● Bluetooth (5.2) ● Hot plug PCI ● Compact PCI ● PCI Express ● Express Card Netgraph ● Node implement network functions ● Arbitrary connection of nodes allowed ● ng_iface(4) node creates interfaces on demand Interface Cloning ● Handles most pseudo
    [Show full text]
  • Porting a Window Manager from Xlib to XCB
    Porting a Window Manager from Xlib to XCB Arnaud Fontaine (08090091) 16 May 2008 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version pub- lished by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Contents List of figures i List of listings ii Introduction 1 1 Backgrounds and Motivations 2 2 X Window System (X11) 6 2.1 Introduction . .6 2.2 History . .6 2.3 X Window Protocol . .7 2.3.1 Introduction . .7 2.3.2 Protocol overview . .8 2.3.3 Identifiers of resources . 10 2.3.4 Atoms . 10 2.3.5 Windows . 12 2.3.6 Pixmaps . 14 2.3.7 Events . 14 2.3.8 Keyboard and pointer . 15 2.3.9 Extensions . 17 2.4 X protocol client libraries . 18 2.4.1 Xlib . 18 2.4.1.1 Introduction . 18 2.4.1.2 Data types and functions . 18 2.4.1.3 Pros . 19 2.4.1.4 Cons . 19 2.4.1.5 Example . 20 2.4.2 XCB . 20 2.4.2.1 Introduction . 20 2.4.2.2 Data types and functions . 21 2.4.2.3 xcb-util library . 22 2.4.2.4 Pros . 22 2.4.2.5 Cons . 23 2.4.2.6 Example . 23 2.4.3 Xlib/XCB round-trip performance comparison .
    [Show full text]
  • The Design and Implementation of Multiprocessor Support for an Industrial Operating System Kernel
    Blekinge Institute of Technology Research Report 2005:06 The Design and Implementation of Multiprocessor Support for an Industrial Operating System Kernel Simon Kågström Håkan Grahn Lars Lundberg Department of Systems and Software School of Engineering Blekinge Institute of Technology The Design and Implementation of Multiprocessor Support for an Industrial Operating System Kernel Simon Kågström, Håkan Grahn, and Lars Lundberg Department of Systems and Software Engineering School of Engineering Blekinge Institute of Technology P.O. Box 520, SE-372 25 Ronneby, Sweden {ska, hgr, llu}@bth.se Abstract The ongoing transition from uniprocessor to multiprocessor computers requires support from the op- erating system kernel. Although many general-purpose multiprocessor operating systems exist, there is a large number of specialized operating systems which require porting in order to work on multipro- cessors. In this paper we describe the multiprocessor port of a cluster operating system kernel from a producer of industrial systems. Our initial implementation uses a giant locking scheme that serializes kernel execution. We also employed a method in which CPU-local variables are placed in a special sec- tion mapped to per-CPU physical memory pages. The giant lock and CPU-local section allowed us to implement an initial working version with only minor changes to the original code, although the giant lock and kernel-bound applications limit the performance of our multiprocessor port. Finally, we also discuss experiences from the implementation. 1 Introduction A current trend in the computer industry is the transition from uniprocessors to various kinds of multipro- cessors, also for desktop and embeddedsystems. Apart from traditional SMP systems, many manufacturers are now presenting chip multiprocessors or simultaneous multithreaded CPUs [9, 15, 16] which allow more efficient use of chip area.
    [Show full text]
  • BSD UNIX Toolbox: 1000+ Commands for Freebsd, Openbsd and Netbsd Christopher Negus, Francois Caen
    To purchase this product, please visit https://www.wiley.com/en-bo/9780470387252 BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD Christopher Negus, Francois Caen E-Book 978-0-470-38725-2 April 2008 $16.99 DESCRIPTION Learn how to use BSD UNIX systems from the command line with BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD. Learn to use BSD operation systems the way the experts do, by trying more than 1,000 commands to find and obtain software, monitor system health and security, and access network resources. Apply your newly developed skills to use and administer servers and desktops running FreeBSD, OpenBSD, NetBSD, or any other BSD variety. Become more proficient at creating file systems, troubleshooting networks, and locking down security. ABOUT THE AUTHOR Christopher Negus served for eight years on development teams for the UNIX operating system at the AT&T labs, where UNIX was created and developed. He also worked with Novell on UNIX and UnixWare development. Chris is the author of the bestselling Fedora and Red Hat Linux Bible series, Linux Toys II, Linux Troubleshooting Bible, and Linux Bible 2008 Edition. Francois Caen hosts and manages business application infrastructures through his company Turbosphere LLC. As an open- source advocate, he has lectured on OSS network management and Internet services, and served as president of the Tacoma Linux User Group. He is a Red Hat Certified Engineer (RHCE). To purchase this product, please visit https://www.wiley.com/en-bo/9780470387252.
    [Show full text]
  • Debugging Kernel Problems
    Debugging Kernel Problems by GregLehey Edition for AsiaBSDCon 2004 Taipei, 13 March 2004 Debugging Kernel Problems by GregLehey([email protected]) Copyright © 1995-2004 GregLehey 3Debugging Kernel Problems Preface Debugging kernel problems is a black art. Not manypeople do it, and documentation is rare, in- accurate and incomplete. This document is no exception: faced with the choice of accuracyand completeness, I chose to attempt the latter.Asusual, time was the limiting factor,and this draft is still in beta status. This is a typical situation for the whole topic of kernel debugging: building debug tools and documentation is expensive,and the people who write them are also the people who use them, so there'satendencytobuild as much of the tool as necessary to do the job at hand. If the tool is well-written, it will be reusable by the next person who looks at a particular area; if not, it might fall into disuse. Consider this book a starting point for your own develop- ment of debugging tools, and remember: more than anywhere else, this is an area with ``some as- sembly required''. Debugging Kernel Problems 4 1 Introduction Operating systems fail. All operating systems contain bugs, and theywill sometimes cause the system to behave incorrectly.The BSD kernels are no exception. Compared to most other oper- ating systems, both free and commercial, the BSD kernels offer a large number of debugging tools. This tutorial examines the options available both to the experienced end user and also to the developer. In this tutorial, we’ll look at the following topics: • Howand whykernels fail.
    [Show full text]
  • Introduzione Al Mondo Freebsd
    Introduzione al mondo FreeBSD Corso avanzato Netstudent Netstudent http://netstudent.polito.it E.Richiardone [email protected] maggio 2009 CC-by http://creativecommons.org/licenses/by/2.5/it/ The FreeBSD project - 1 ·EÁ un progetto software open in parte finanziato ·Lo scopo eÁ mantenere e sviluppare il sistema operativo FreeBSD ·Nasce su CDROM come FreeBSD 1.0 nel 1993 ·Deriva da un patchkit per 386BSD, eredita codice da UNIX versione Berkeley 1977 ·Per problemi legali subisce un rallentamento, release 2.0 nel 1995 con codice royalty-free ·Dalla release 5.0 (2003) assume la struttura che ha oggi ·Disponibile per x86 32 e 64bit, ia64, MIPS, ppc, sparc... ·La mascotte (Beastie) nasce nel 1984 The FreeBSD project - 2 ·Erede di 4.4BSD (eÁ la stessa gente...) ·Sistema stabile; sviluppo uniforme; codice molto chiaro, ordinato e ben commentato ·Documentazione ufficiale ben curata ·Licenza molto permissiva, spesso attrae aziende per progetti commerciali: ·saltuariamente esterni collaborano con implementazioni ex-novo (i.e. Intel, GEOM, atheros, NDISwrapper, ZFS) ·a volte no (i.e. Windows NT) ·Semplificazione di molte caratteristiche tradizionali UNIX Di cosa si tratta Il progetto FreeBSD include: ·Un sistema base ·Bootloader, kernel, moduli, librerie di base, comandi e utility di base, servizi tradizionali ·Sorgenti completi in /usr/src (~500MB) ·EÁ giaÁ abbastanza completo (i.e. ipfw, ppp, bind, ...) ·Un sistema di gestione per software aggiuntivo ·Ports e packages ·Documentazione, canali di assistenza, strumenti di sviluppo ·i.e. Handbook,
    [Show full text]
  • Oracle® Secure Global Desktop Platform Support and Release Notes for Release 4.7
    Oracle® Secure Global Desktop Platform Support and Release Notes for Release 4.7 E26357-02 November 2012 Oracle® Secure Global Desktop: Platform Support and Release Notes for Release 4.7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S.
    [Show full text]
  • Filesystem Performance on Freebsd
    Filesystem Performance on FreeBSD Kris Kennaway [email protected] BSDCan 2006, Ottawa, May 12 Introduction ● Filesystem performance has many aspects ● No single metric for quantifying it ● I will focus on aspects that are relevant for my workloads (concurrent package building) ● The main relevant filesystem workloads seem to be – Concurrent tarball extraction – Recursive filesystem traversals ● Aim: determine relative performance of FreeBSD 4.x, 5.x and 6.x on these workloads – Overall performance and SMP scaling – Evaluate results of multi-year kernel locking strategy as it relates to these workloads Outline ● SMP architectural differences between 4/5/6.x ● Test methodology ● Hardware used ● Parallel tarball extraction test – Disk array and memory disk ● Scaling beyond 4 CPUs ● Recursive filesystem traversal test ● Conclusions & future work SMP Architectural Overview ● FreeBSD 4.x; rudimentary SMP support – Giant kernel lock restricts kernel access to one process at a time – SPL model; interrupts may still be processed in parallel ● FreeBSD 5.x; aim towards greater scalability – Giant-locked to begin with; then finer-grained locking pushdown ● FreeBSD 5.3; VM Giant-free ● FreeBSD 5.4; network stack Giant-free (mostly) ● Many other subsystems/drivers also locked – Interrupts as kernel threads; compete for common locks (if any) with everything else ● FreeBSD 6.x; – Consolidation; further pushdown; payoff! – VFS subsystem, UFS filesystem Giant-free FreeBSD versions ● FreeBSD 4.11-STABLE (11/2005) – Needed for amr driver fixes after 4.11-RELEASE ● FreeBSD 5.4-STABLE (11/05) – No patches needed ● FreeBSD 6.0-STABLE (11/05) – patches: ● Locking reworked in amr driver by Scott Long for better performance ● All relevant changes merged into FreeBSD 6.1 – A kernel panic was encountered at very high I/O loads ● Also fixed in 6.1 Test aims and Methodology ● Want to measure – overall performance difference between FreeBSD branches under varying (concurrent process I/O) loads – scaling to multiple CPUs ● Avoid saturating hardware resources (e.g.
    [Show full text]