[PDF] Nooks: An Architecture for Reliable Device Drivers





Previous PDF Next PDF



Barnes & Noble NOOK Color User Guide

Reading Books Magazines



User Guide

If your computer is a PC it will automatically detect your NOOK and install the software drivers it needs



NOOK GlowLight Plus User Guide

Your NOOK GlowLight® Plus is an eReader with a touchscreen grayscale E display a dialog box asking if you want to install a driver for a “Nook.” ...



NOOK_GlowLight_3_User_Guid

install a driver for a “Nook.” Click Cancel to close this dialog box. You do not need to install a special driver to transfer files to your NOOK.



Untitled

install a driver for a “Nook.” Click Cancel to close this dialog box. You do not need to install a special driver to transfer files to your NOOK.



Drivers Manual

While this is an exciting time for any new driver it is important to remember that driving is a privilege



Rookie Driver - New Driver & Coach Practice Guide

When it comes to driving and new drivers practice does make safer



Illinois Rules of the Road 2022

This is due in large part to innovative efforts to combat drunk and distracted driving as well as stronger guidelines for new teen drivers. The driving.



UTAH DRIVER HANDBOOK 2022-2023

In 2016 the Driver License Division stopped conducting driving skills test on an enclosed range. All driving skills tests are performed on public roads. • 



D R IVER H A N D B O O K

Make yourself familiar with the motor vehicle laws of our state and the ways you can improve your driving. As you prepare for the driver license examination we 



Nooks: An Architecture for Reliable Device Drivers

The Nooks architecture accomplishesthis goal by isolating drivers with a variety of tech-niques including kernel wrapping virtual memory pro-tection privilege level lowering and software fault iso-lation which are suited to many di?erent environmentsand driver types



Read me ?rst - Barnes & Noble

This Quick Start Guide gives you the basics to use your NOOK It will introduce you to some of the features explain navigating on your NOOK walk you through the registration process and show you how to purchase download and read your ?rst eBook Get started in a few easy steps Power Button



NookPhone Animal Crossing Wiki Fandom

The power button for your NOOK is located on the top edge Press and hold the button for 3 seconds to turn on your NOOK If your NOOK is sleeping press the power button to wake up your NOOK and turn it on To learn more about power management for your NOOK see “Power and Charging” Touchscreen E Ink Display



How to Transfer eBooks to a NOOK eReader and NOOK Color/Tablet

Getting your eBook onto your NOOK 1 Open up Adobe Digital Editions 2 Turn your NOOK ON It can be asleep but not OFF 3 Connect your NOOK to your computer If you have not previously set it up Adobe Digital Editions will ask to register your NOOK using the same Adobe ID as your Digital Editions 4 Your NOOK will appear on the left under



How to Download Library Books onto your NOOK

NOOK Activate Adobe Digital Editions: After you have installed the software you need to take steps to activate both the software and the device before transferring files 1 Open Adobe Digital Editions The “Setup Assistant” box is displayed 2 lick “ontinue ” The “Authorize omputer” s creen will pop up 3



Searches related to nook driver filetype:pdf

Download the OverDrive App to your NOOK Open up the “Shop” section Search for OverDrive Install the app Sign on with your Adobe ID When you launch the OverDrive App you will be prompted to create a free Adobe ID if you don’t already have one Enter your free Adobe ID to authorize the app on your NOOK

Does the Nook have a phone?

    The NookPhone is a smartphone in New Horizons. It is included in the initial Deserted Island Getaway Package from Tom Nook of Nook Inc. Tom Nook gives the player the NookPhone on the day after the island orientation party, after discussing the fees the player has to pay.

Does the Nook have WiFi?

    Yes, your NOOK GlowLight Plus? has built in Wi-Fi allowing you to connect wirelessly to any Wi-Fi hotspot. Connect to your home Wi-Fi, as well as your office, cafes, airports, hotels, and most other public hotspots. Your local Barnes & Noble bookstore offers free Wi-Fi that your NOOK GlowLight Plus? will connect to automatically.

Does the Nook have Bluetooth?

    Does The Nook Tablet Have Bluetooth? The NOOK HD/HD+ can be paired with Bluetooth headsets and loudspeakers, which are both compatible with the device. When you turn on Bluetooth, your NOOK will detect one or more Bluetooth devices nearby and display the Wireless & Bluetooth settings screen as soon as it has done so.
Nooks: An Architecture for Reliable Device Drivers? Michael M. Swift, Steven Martin, Henry M. Levy, and Susan J. Eggers

Department of Computer Science and Engineering

University of Washington

Seattle, WA 98195, USA

1 Introduction

With the enormous growth in processor performance

over the last decade, it is clear that reliability, rather than performance, is now the greatest challenge for computer systems research. This is particularly true in the context of Internet services that require 24x7 op- eration and home computers with no professional ad- ministration. While operating system products have matured and become more reliable, they are still the source of a significant number of failures. Furthermore, recent studies show that device drivers are frequently responsible for operating system failures. For exam- ple, a study at Stanford University found that Linux drivers have 3 to 7 times the bug frequency as the rest of the OS [4]. An analysis of product support calls for

Windows 2000 showed that device drivers accounted

for 27% of crashes, compared to 2% for the kernel it- self [16]. The reasons for the high rate of driver failures are four-fold. First, drivers are typically written by de- vice manufacturers rather than by operating system developers with extensive kernel programming experi- ence. Second, drivers are frequently created by copy- ing and editing code templates from existing drivers, often without complete understanding, leading to sub- tle bugs. Third, the kernel programming environment has many unenforced or poorly-documented conven- tions about synchronization and memory access, mak- ing kernel-mode programming and debugging challeng- ing, at best. Finally, driver programming often re- quires understanding the operation of complex asyn- chronous devices, their control protocols, and their fail- ure modes. As the number of new devices available

increases to support new applications, such as cam-?This work was supported in part by the National Science

Foundation (grants ITR-0085670 and CCR-0121341).eras, digital video, etc., so does the number of drivers

required and the number of (relatively unskilled) pro- grammers responsible for creating them.

Device drivers can be viewed as a type of kernel

extension, added after the fact. Commercial operating systems are typically extended by loading unsafe object code and linking it directly with the kernel. There have been many attempts to solve the general problem of safely extending the kernel [6, 2, 20], but they have demanded that programmers change the way in which they write code or the way in which operating systems are structured. Such approaches are unworkable for device drivers, which are the most common operating system extensions and represent a huge investment in development time; hence none of these approaches have been successful in a commercial system. System availability depends not just on fault isola- tion, but also on quick recovery from faults. There- fore, the operating system must not just isolate faulty device drivers, but also allow them to quickly resume service, either after restarting or after recovering pre- vious actions in progress. Recovery is also increasingly important due to the rising problem of hardware fail- ures [16], which depends on isolating the effects of a fault and quickly recovering to a pre-fault state. In the future, it is clear that improving operating system reliability depends on improving device driver reliability, because the kernel is no longer the primary source of bugs (or kernel-mode code!). In addition, as software matures and device integration levels shrink, hardware failures will become a greater problem. As a result, operating systems need to provide support for (1) tolerating and recovering from faulty drivers, and (2) tolerating and recovering from faulty hardware.

TheNooksproject is examining mechanisms and ar-

chitectures to meet these goals.

2 Approaches

Many approaches have been proposed to safely execute user- or kernel-mode code, including device drivers. One difference between safely executing drivers and safely executing general kernel extensions is that one can assume that most device drivers are trustworthy: the problem is one of safety and not security, and abso- lute safety may not even be needed. Table 1 shows five key hardware and software techniques that can isolate driver code from the OS kernel. Each of these tech- niques has benefits and drawbacks, and may be ap- propriate in certain situations. Table 1 also shows the systems that used each technique.

Table 2 shows the relative advantages and disad-

vantages of each approach along the axes of software engineering, performance for large and small volumes of data, and ability to isolate memory corruption and deadlock errors.

In more detail:

1. Kernel wrapping surrounds all calls into and out of

device drivers with special code, allowing resources to be tracked and pre- and post-conditions to be verified. Kernel wrapping can ensure that mem- ory not owned by the driver is not freed, and that interrupts are enabled before blocking. However, kernel wrapping cannot prevent a driver from acci- dentally corrupting the operating system by writ- ing through a stray pointer.

2. Virtual memory protection can be used to isolate

data corruption problems, which are one of the most common driver faults, but can"t catch dead- lock errors, such as those caused by improper dis- abling of interrupts.

3. Lowering the privilege level of drivers (e.g., to su-

pervisor or user level) prevents them from exe- cuting privileged instructions, accessing privileged address space, and corrupting the kernel. How- ever, there is a large performance penalty, because calls into drivers require an additional trap and re- turn to change privilege level.

4. Software fault isolation (SFI) [23] provides many

of the benefits of a privilege level change, but is difficult to implement when the range of addresses accessible are not contiguous. In contrast to low- ering the privilege level, it is very cheap to call into and out of SFI code, but SFI code executes more slowly. In addition, SFI does not easily sup- port recovery in the form of copy-on-write, which hardware memory protection does support.5. Finally, safe languages such as Java [7] and

Modula-3 [17] can prevent drivers from uncon-

trolled access to kernel memory. However, using a safe language requires rewriting drivers and may introduce significant overhead when safely copying data in and out of the driver. There is also not as of yet a good mechanism for accessing a device in a type-safe fashion. As a result, there is no single approach that is appli- cable for all device drivers. High performance devices, such as network and disk interfaces, require minimum overhead for large quantities of data to match the speed of the device and must run in the kernel. Low perfor- mance devices, though, such as keyboards, mice, and serial devices, do not always require the performance benefit of running in the kernel with no protection. The reliability needs of computer installations also vary: a bank may be willing to suffer a significant performance decrease in order to improve reliability, while a game player would risk crashing periodically to improve the realism of the game. Thus, it is important for the op- erating system to support a variety of techniques, so that driver writers and system installers can choose the most appropriate for them. Beyond fault isolation, fault recovery is also in- creasingly important. Some techniques, such as mem- ory protection, lend themselves toward automatic fault recovery. For example, Discount Checking [13] and Lightweight Recoverable Virtual Memory [19] use copy- on-write to maintain a shadow copy of all memory ac- cessed by an application, allowing automatic recovery when a fault is detected. Other techniques, like safe languages and SFI, provide little support for recovery.

3 Nooks Architecture

We propose that operating systems should support exe- cuting drivers in a fault-isolating and recoverable envi- ronment so that a faulty driver cannot prevent the rest of the OS from functioning. In addition, the operat- ing system should offer multiple levels of isolation and performance to reflect different driver needs. Our goal is to provide these features with only an incremental change to the operating system and device driver ar- chitecture, to maximize compatibility with the existing code base.

Figure 1 shows our proposed architecture, called

Nooks. Anookis a protected environment for driver

execution. Not all devices execute within a nook, as illustrated by the SCSI device driver in the figure. In addition, multiple drivers may execute within the same nook for performance reasons, as illustrated by 2

Table 1.Kernel extension safety approachesNameDescriptionWhere UsedKernel WrappingVerify all parameters on calls between the kernel

and device driversMicrosoft Driver

Verifier [15]Hardware Memory Pro-

tectionPrevent device drivers from writing to kernel mem- oryPalladium [3], Shinagawa [21]Privilege Level ChangePrevent device drivers from executing privileged instructions and/or emulate privileged instruc- tionsL4 [12], Exoker- nel [6]Software Fault IsolationInject code into device drivers to ensure that ad-

dresses and instructions are safeVino [20]Safe LanguagesRely on the compiler/virtual machine to allow

only safe (non-faulting) drivers to be loadedSPIN [2]Table 2.Comparison of driver safety approachesKernel

WrappingHardware

Memory

ProtectionPrivilege

Level

ChangeSoftware

Fault Isola-

tionSafe Lan-

guagesRequires rewriting driverNoNoNoMaybeYesEasily supports recoveryNoYesYesNoNoHigh performance for

small data volumesYesNoNoYesYesHigh performance for large data volumesYesYesYesNoNoIsolates memory corrup- tionNoYesYesMaybeYesPrevents most deadlocksMaybeNoYesYesYesOperating System Kernel

Video Nook

Apache Web

ServerNavigator Web

BrowserQuake3D Video

Game

Ethernet CardVideo Card

SCSI Controller

Card

Memory

Management

File SystemNetworking

Nooks Kernel Runtime

Per-nook runtime

Nooks Kernel Runtime

Video DriverSCSI Driver

Network Nook

Ethernet Driver

TCP/IP Driver

Per-nook runtimeFigure 1.Nooksarchitecture diagramthe combination of the Ethernet and TCP/IP drivers within thenetworknook. Nooks interpose between de- vices and device drivers by forwarding interrupts and, depending on the level of safety required, emulating access to memory-mapped device registers. Nooks also wrap calls from the operating system kernel into device drivers and from device drivers into the kernel, allowing the operating system to track resource usage and verify data that is passed into and out of the kernel. Rather than fully isolate device drivers in a separate address space, all drivers execute in the kernel address space, but within different protection domains. Thus, a device driver may use pointers supplied by the kernel without copying the data or translating addresses. However, theNooksarchitecture prevents device drivers from writing to memory outside their protection domain, limiting the damage of an errant memory access. Ini- tially we use virtual memory protection and lowered privilege levels for isolating and recovering faulty code, but we plan to experiment with Software Fault Isola- tion (SFI) as well.

TheNooksarchitecture minimizes the number of

3 crossings between the kernel protection domain and device drivers by separating kernel resources into those that must be shared from those that are only shared in- cidentally. For example, the processor must be shared among all drivers, so kernel intervention is required for scheduling functions. However, other operating system resources, such as wait queues and memory heaps, are only shared for convenience.Nookstakes advantage of these two classes of resources to improve performance by duplicating the resources that are only incidentally shared. Drivers may then directly access the resource without crossing to the kernel"s protection domain. In addition, some of the work that must be performed in the kernel need not be performed synchronously, such as delivering network packets. These operations can be deferred until the driver has completed execution, and then performed in a single batch. Device drivers may require small changes to executequotesdbs_dbs17.pdfusesText_23
[PDF] nook guide animal crossing

[PDF] nook model bnrv510

[PDF] nook tablet

[PDF] nook tablet instructions

[PDF] nook trade in

[PDF] nook user guide

[PDF] nordic bank holidays 2020

[PDF] norfolk circuit court forms

[PDF] norma astm e3 pdf

[PDF] normal apple watch ecg

[PDF] normal boiling point of seawater

[PDF] normal saline composition

[PDF] normal saline davis pdf

[PDF] normal saline dosage

[PDF] normal solution preparation pdf