This document describes a C library for accessing the SCSI commands of an Exabyte EXB-210 tape library under Linux. It implements commands like INQUIRY, MODE SENSE, MOVE MEDIUM, and READ ELEMENT STATUS. The library provides functions to get information about and control the tape library, including inventorying cartridges, moving tapes between drives and slots, and positioning the robotic arm. It builds on Linux's generic SCSI interface and provides a user-mode API for applications to interact with the tape library's medium changer through standard file operations.
This document discusses network configuration files and utilities on UNIX systems. It examines common configuration files such as /etc/hosts, /etc/hostname.if_name, /etc/nodename, /etc/services, /etc/inetd.conf, and /etc/resolv.conf that store network settings. It also describes configuration commands like ifconfig and route that can be used to modify network interfaces and routing tables. The document notes that while network configuration methods are generally similar across UNIX, there are also OS-specific differences to consider.
This document provides an overview of SCSI drives and file systems. It describes SCSI interfaces and cables, how SCSI devices are connected in a daisy chain configuration, and SCSI standards including SCSI-1, SCSI-2, and SCSI-3. It also summarizes the FAT and NTFS file systems used in Windows, how they allocate disk space and store file information differently, and the advantages of NTFS. The document concludes with a brief explanation of how disk compression works to save space.
The document provides information about SCSI (Small Computer System Interface) domains, components, protocols, and concepts. It describes the SCSI bus model including initiators, targets, logical units, and phases like arbitration, selection, command, data transfer, status, and message. It explains SCSI commands, CDBs, status values, sense data, and error recovery. It also covers logical unit resets, unit attention conditions, contingent allegiance, auto contingent allegiance, and task management functions. The document is a technical reference for SCSI specifications, protocols, and error handling.
This document discusses system devices and device configuration from both the hardware and software perspectives on various operating systems like Windows, UNIX, Linux, and Solaris. It covers device terminology, device naming schemes, how devices are represented in the operating system, and how to view the system's device configuration from both the PROM and software levels. The goal is to understand how devices are interconnected, configured, and accessed on the system.
Configuring and managing printers involves understanding printing concepts, print server and client configuration, and homogeneous and heterogeneous printing. It requires setting up print services under different operating systems like Windows, BSD and System V. Troubleshooting involves checking printers, print queues, filters and data files. Heterogeneous printing across operating systems is the most challenging.
Scsi(small computer system interface)nikNikhil Joshi
SCSI is an interface that uses a 50 or 68 pin connector to transfer data at a rate of 600Mb/s, requiring a SCSI adapter card connected to the system. While once common, most desktop users no longer use SCSI interfaces today.
The document summarizes key aspects of the C compilation model and process concepts in operating systems. It discusses that the C compilation model involves preprocessing, compilation, assembly, and linking. It also explains that a process is a program in execution with a unique process ID, that processes are created through forking, and that signals allow processes to communicate termination status. Process attributes like user IDs, group IDs, and process groups are also covered.
SCSI (Small Computer System Interface) is a standard for connecting peripheral devices to a computer system. It allows for faster data transfer and more devices than IDE, but is more expensive and complex to install. Key aspects covered include SCSI components like host adapters, devices, and cables; installation steps like assigning unique IDs; and troubleshooting tips like checking terminations and adding devices one at a time.
This document discusses network configuration files and utilities on UNIX systems. It examines common configuration files such as /etc/hosts, /etc/hostname.if_name, /etc/nodename, /etc/services, /etc/inetd.conf, and /etc/resolv.conf that store network settings. It also describes configuration commands like ifconfig and route that can be used to modify network interfaces and routing tables. The document notes that while network configuration methods are generally similar across UNIX, there are also OS-specific differences to consider.
This document provides an overview of SCSI drives and file systems. It describes SCSI interfaces and cables, how SCSI devices are connected in a daisy chain configuration, and SCSI standards including SCSI-1, SCSI-2, and SCSI-3. It also summarizes the FAT and NTFS file systems used in Windows, how they allocate disk space and store file information differently, and the advantages of NTFS. The document concludes with a brief explanation of how disk compression works to save space.
The document provides information about SCSI (Small Computer System Interface) domains, components, protocols, and concepts. It describes the SCSI bus model including initiators, targets, logical units, and phases like arbitration, selection, command, data transfer, status, and message. It explains SCSI commands, CDBs, status values, sense data, and error recovery. It also covers logical unit resets, unit attention conditions, contingent allegiance, auto contingent allegiance, and task management functions. The document is a technical reference for SCSI specifications, protocols, and error handling.
This document discusses system devices and device configuration from both the hardware and software perspectives on various operating systems like Windows, UNIX, Linux, and Solaris. It covers device terminology, device naming schemes, how devices are represented in the operating system, and how to view the system's device configuration from both the PROM and software levels. The goal is to understand how devices are interconnected, configured, and accessed on the system.
Configuring and managing printers involves understanding printing concepts, print server and client configuration, and homogeneous and heterogeneous printing. It requires setting up print services under different operating systems like Windows, BSD and System V. Troubleshooting involves checking printers, print queues, filters and data files. Heterogeneous printing across operating systems is the most challenging.
Scsi(small computer system interface)nikNikhil Joshi
SCSI is an interface that uses a 50 or 68 pin connector to transfer data at a rate of 600Mb/s, requiring a SCSI adapter card connected to the system. While once common, most desktop users no longer use SCSI interfaces today.
The document summarizes key aspects of the C compilation model and process concepts in operating systems. It discusses that the C compilation model involves preprocessing, compilation, assembly, and linking. It also explains that a process is a program in execution with a unique process ID, that processes are created through forking, and that signals allow processes to communicate termination status. Process attributes like user IDs, group IDs, and process groups are also covered.
SCSI (Small Computer System Interface) is a standard for connecting peripheral devices to a computer system. It allows for faster data transfer and more devices than IDE, but is more expensive and complex to install. Key aspects covered include SCSI components like host adapters, devices, and cables; installation steps like assigning unique IDs; and troubleshooting tips like checking terminations and adding devices one at a time.
This document discusses kernel modules in FreeBSD. It explains that some modules need to be compiled into the kernel, while others can be loaded dynamically at runtime. It provides instructions for compiling a custom kernel configuration and installing the new kernel. It also describes how to build and load kernel loadable modules (KLDs) dynamically using kldload and kldstat commands. The key steps for creating a basic kernel module are outlined, including using the bsd.kmod.mk makefile and declaring the module with events for load and unload.
Goes into details about the prior knowledge required to design a file system. Concludes with a demo that explains how these concepts are used by Second Extended File System (ext2fs) A demo is also provided.
Presented at Florence, Italy on 6th December 2017
This document discusses storage computer interfaces and SCSI (Small Computer System Interface) technology. It describes what SCSI is, its history beginning with SASI in 1978, and the various types including internal and external connections. SCSI host adapters, ID assignment, daisy chaining, and termination methods are outlined. Advantages include faster performance than IDE/SATA, support for many devices, and common device characteristics, while disadvantages are higher cost and more complex configuration than newer standards.
The document discusses the boot sequence of a computer system. It examines each step including the PROM monitor, boot block, secondary boot loader, and OS kernel initialization. It also covers modifying the boot process, selecting alternate boot devices, different boot loaders, and proper system shutdown procedures.
Windows 2000 is a 32-bit operating system designed for compatibility, reliability, and performance. It includes several key components like the kernel, executive services, and environmental subsystems. The kernel schedules threads and handles exceptions/interrupts. Executive services include the object manager, virtual memory manager, process manager, and I/O manager. Environmental subsystems allow running applications from other operating systems. The document also discusses disk structure, file systems, networking, and other OS concepts.
The document discusses several key topics about the FreeBSD operating system including:
- How to use the virtual consoles of FreeBSD and log into the system.
- An overview of UNIX file permissions and flags in FreeBSD.
- The default directory structure and disk organization of FreeBSD.
- How to mount and unmount file systems using the fstab file and mount/unmount commands.
- Concepts of processes, daemons, signals and killing processes.
- What shells are and how to change your default login shell.
The document provides an overview of the FreeBSD operating system boot process and file hierarchy. It discusses how the boot0 and boot1 programs initialize the system and load the boot2 program. Boot2 then loads the loader, which uses a bootinfo structure to pass information to the kernel and load it into memory to start the operating system. The document also describes the standard FreeBSD file hierarchy and the purpose of the main directories like /bin, /sbin, /etc, /usr, /var, and /boot.
It provides details about what is Kernel, what is a Module and what is device driver. How device gets registered and how a storage volume gets mounted if it is inserted on android system. Details on Allocation of memory in Kernel.
The document provides an overview of the initialization phase of the Linux kernel. It discusses how the kernel enables paging to transition from physical to virtual memory addresses. It then describes the various initialization functions that are called by start_kernel to initialize kernel features and architecture-specific code. Some key initialization tasks discussed include creating an identity page table, clearing BSS, and reserving BIOS memory.
This document gives basic information about SCSI and its types and their limitations. It is supportive document for the iSCSI presentation uploaded with this document.
This document outlines the key components of a Linux character device driver, including modules, major and minor numbers, data structures like struct file and struct file_operations, driver registration, and core functions like open, release, read and write. It provides an introduction to character device drivers in Linux and their basic architecture.
The document discusses the structure and management of processes in an operating system. It describes the different states a process can be in like running, ready, sleeping, etc. and the transitions between states. It explains the layout of a process in memory including text, data, and stack regions. It discusses how the kernel saves and restores the context of a process during context switches, interrupts, and system calls. It also summarizes how the kernel manipulates a process's address space through operations on regions like allocating, attaching, changing size, loading, duplicating, and freeing regions.
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
The document summarizes the analysis of several Linux rootkits using the Volatility memory forensics framework. It describes how the Average Coder rootkit hides processes, modules and users by hooking various file operations. It also details how the KBeast rootkit hides its module, hooks system calls and network connections. Finally, it discusses how the Jynx rootkit operates by preloading a shared library to hook filesystem and network functions and implement a backdoor. The document demonstrates how Volatility plugins can detect these rootkits and recover hidden data.
The document provides an overview of the Linux kernel internals including:
1) The Linux kernel architecture adopts a monolithic design that provides stability, safety, and high performance while maintaining advantages of both monolithic and microkernel approaches.
2) Key kernel components include processes and threads management, memory management using paging and segmentation, file systems, networking, and device drivers.
3) The kernel uses inodes and blocks to organize file system data on disk and supports various file systems like Ext2 through a virtual file system interface.
The CASPUR Staging System II is a disk and tape storage solution that uses a staging process to migrate files between disks and tapes. It consists of three main components - a stager, movers, and user interface commands. The stager monitors disk usage and migrates files to tape to maintain optimal disk occupancy based on configurable policies. Movers handle the actual data transfer between disks and tapes. Users can control files and view statuses using commands.
Writing Character driver (loadable module) in linuxRajKumar Rampelli
It covers the step by step approach on how to write a simple loadable character device driver in linux. What are Device files in linux detail. How user application interact with character driver using a device file.
This presentation gives an overview of Linux kernel block I/O susbsystem functionality, importance of I/O schedulers in Block layer. It also describes the different types of I/O Schedulers including the Deadline I/O scheduler, Anticipatory I/O Scheduler, Complete Fair queuing I/O scheduler and Noop I/O scheduler.
De-Anonymizing Live CDs through Physical Memory AnalysisAndrew Case
- The document discusses analyzing physical memory to recover information from live CDs that normally evades digital forensics investigations.
- It presents research on developing algorithms to enumerate the in-memory file system structure of live CDs like TAILS to recover file metadata and contents directly from RAM.
- The goal is to apply traditional investigative techniques like timeline analysis that are usually impossible for live CDs by reconstructing the complete in-memory file system and contents through memory analysis.
Las apps son pequeños programas para funciones específicas como juegos o herramientas de cálculo. Se descargan en tiendas de aplicaciones de sistemas como Android e iOS y son útiles para arquitectos, permitiendo ver planos desde cualquier lugar y tomar medidas de forma digital. Algunas apps populares son AutoCAD 360, Magic Plan, DrawVis y Photo Measures.
This document discusses kernel modules in FreeBSD. It explains that some modules need to be compiled into the kernel, while others can be loaded dynamically at runtime. It provides instructions for compiling a custom kernel configuration and installing the new kernel. It also describes how to build and load kernel loadable modules (KLDs) dynamically using kldload and kldstat commands. The key steps for creating a basic kernel module are outlined, including using the bsd.kmod.mk makefile and declaring the module with events for load and unload.
Goes into details about the prior knowledge required to design a file system. Concludes with a demo that explains how these concepts are used by Second Extended File System (ext2fs) A demo is also provided.
Presented at Florence, Italy on 6th December 2017
This document discusses storage computer interfaces and SCSI (Small Computer System Interface) technology. It describes what SCSI is, its history beginning with SASI in 1978, and the various types including internal and external connections. SCSI host adapters, ID assignment, daisy chaining, and termination methods are outlined. Advantages include faster performance than IDE/SATA, support for many devices, and common device characteristics, while disadvantages are higher cost and more complex configuration than newer standards.
The document discusses the boot sequence of a computer system. It examines each step including the PROM monitor, boot block, secondary boot loader, and OS kernel initialization. It also covers modifying the boot process, selecting alternate boot devices, different boot loaders, and proper system shutdown procedures.
Windows 2000 is a 32-bit operating system designed for compatibility, reliability, and performance. It includes several key components like the kernel, executive services, and environmental subsystems. The kernel schedules threads and handles exceptions/interrupts. Executive services include the object manager, virtual memory manager, process manager, and I/O manager. Environmental subsystems allow running applications from other operating systems. The document also discusses disk structure, file systems, networking, and other OS concepts.
The document discusses several key topics about the FreeBSD operating system including:
- How to use the virtual consoles of FreeBSD and log into the system.
- An overview of UNIX file permissions and flags in FreeBSD.
- The default directory structure and disk organization of FreeBSD.
- How to mount and unmount file systems using the fstab file and mount/unmount commands.
- Concepts of processes, daemons, signals and killing processes.
- What shells are and how to change your default login shell.
The document provides an overview of the FreeBSD operating system boot process and file hierarchy. It discusses how the boot0 and boot1 programs initialize the system and load the boot2 program. Boot2 then loads the loader, which uses a bootinfo structure to pass information to the kernel and load it into memory to start the operating system. The document also describes the standard FreeBSD file hierarchy and the purpose of the main directories like /bin, /sbin, /etc, /usr, /var, and /boot.
It provides details about what is Kernel, what is a Module and what is device driver. How device gets registered and how a storage volume gets mounted if it is inserted on android system. Details on Allocation of memory in Kernel.
The document provides an overview of the initialization phase of the Linux kernel. It discusses how the kernel enables paging to transition from physical to virtual memory addresses. It then describes the various initialization functions that are called by start_kernel to initialize kernel features and architecture-specific code. Some key initialization tasks discussed include creating an identity page table, clearing BSS, and reserving BIOS memory.
This document gives basic information about SCSI and its types and their limitations. It is supportive document for the iSCSI presentation uploaded with this document.
This document outlines the key components of a Linux character device driver, including modules, major and minor numbers, data structures like struct file and struct file_operations, driver registration, and core functions like open, release, read and write. It provides an introduction to character device drivers in Linux and their basic architecture.
The document discusses the structure and management of processes in an operating system. It describes the different states a process can be in like running, ready, sleeping, etc. and the transitions between states. It explains the layout of a process in memory including text, data, and stack regions. It discusses how the kernel saves and restores the context of a process during context switches, interrupts, and system calls. It also summarizes how the kernel manipulates a process's address space through operations on regions like allocating, attaching, changing size, loading, duplicating, and freeing regions.
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
The document summarizes the analysis of several Linux rootkits using the Volatility memory forensics framework. It describes how the Average Coder rootkit hides processes, modules and users by hooking various file operations. It also details how the KBeast rootkit hides its module, hooks system calls and network connections. Finally, it discusses how the Jynx rootkit operates by preloading a shared library to hook filesystem and network functions and implement a backdoor. The document demonstrates how Volatility plugins can detect these rootkits and recover hidden data.
The document provides an overview of the Linux kernel internals including:
1) The Linux kernel architecture adopts a monolithic design that provides stability, safety, and high performance while maintaining advantages of both monolithic and microkernel approaches.
2) Key kernel components include processes and threads management, memory management using paging and segmentation, file systems, networking, and device drivers.
3) The kernel uses inodes and blocks to organize file system data on disk and supports various file systems like Ext2 through a virtual file system interface.
The CASPUR Staging System II is a disk and tape storage solution that uses a staging process to migrate files between disks and tapes. It consists of three main components - a stager, movers, and user interface commands. The stager monitors disk usage and migrates files to tape to maintain optimal disk occupancy based on configurable policies. Movers handle the actual data transfer between disks and tapes. Users can control files and view statuses using commands.
Writing Character driver (loadable module) in linuxRajKumar Rampelli
It covers the step by step approach on how to write a simple loadable character device driver in linux. What are Device files in linux detail. How user application interact with character driver using a device file.
This presentation gives an overview of Linux kernel block I/O susbsystem functionality, importance of I/O schedulers in Block layer. It also describes the different types of I/O Schedulers including the Deadline I/O scheduler, Anticipatory I/O Scheduler, Complete Fair queuing I/O scheduler and Noop I/O scheduler.
De-Anonymizing Live CDs through Physical Memory AnalysisAndrew Case
- The document discusses analyzing physical memory to recover information from live CDs that normally evades digital forensics investigations.
- It presents research on developing algorithms to enumerate the in-memory file system structure of live CDs like TAILS to recover file metadata and contents directly from RAM.
- The goal is to apply traditional investigative techniques like timeline analysis that are usually impossible for live CDs by reconstructing the complete in-memory file system and contents through memory analysis.
Las apps son pequeños programas para funciones específicas como juegos o herramientas de cálculo. Se descargan en tiendas de aplicaciones de sistemas como Android e iOS y son útiles para arquitectos, permitiendo ver planos desde cualquier lugar y tomar medidas de forma digital. Algunas apps populares son AutoCAD 360, Magic Plan, DrawVis y Photo Measures.
La cultura incluye todas las expresiones y actividades humanas como la tecnología, la economía, el arte y la vida doméstica. La cultura es una interpretación del mundo y una forma de entender la naturaleza a través de una relación sistemática entre todos los aspectos de la vida. La cultura forma parte de la naturaleza y de la humanidad.
Dia mundial da ecologia e meio ambiente 2010profa2011
O documento lista várias ações que as pessoas podem tomar para proteger o meio ambiente, como economizar água, reciclar lixo, não jogar lixo na rua, desligar luzes desnecessárias, respeitar animais e florestas, e denunciar crimes ambientais.
The document is a poem about how Jesus saved humanity through his death on the cross. It discusses how people were once lost and afraid but were saved by Jesus' sacrifice. It reflects on how Jesus chose to give of himself to become bread to nourish humanity and how his death allows people to now live with him. The poem ends by saying that to live with the Lord, one must die with the Lord by becoming bread and wine to feed others.
Smart CV - Startup Weekend Shanghai November 2011TechRice
This document discusses a smart CV solution that aims to increase job applicants' chances. It proposes creating 15-minute video interviews using templates, as opposed to traditional 2-hour interviews. The solution analyzes interviews in 30 seconds and provides an 80% understanding. It targets young urban professionals. The business model involves recruiting templates, recruiters, and information. The team covers technical, HR, finance, marketing, and strategy roles. Partners could include universities and recruiting companies. The solution sees market potential in the millions of fresh graduates and unemployed youth in China and the UK.
Our media product uses and develops conventions from the magazine Little White Lies. Our magazine style follows LWL conventions like the basic cartoon image, logo placement, and use of red color. However, our posters challenge LWL conventions by using more varied and complex colors, simpler fonts, and a shadowed logo to make it stand out more. While our poster was inspired by examples showing characters' bad sides, it challenges conventions by being brighter in color to contrast the red title and features.
This document summarizes a presentation on knowledge management and repackaging research outputs from the CGIAR Challenge Program on Water and Food (CPWF). It discusses why knowledge management is important for demonstrating impact and ensuring cost-effective research. The CPWF's Phase 1 projects produced many useful results that could benefit from repackaging into more accessible formats like posters, briefing notes, and sourcebooks. Examples are given of sourcebooks created from CPWF projects in Lao PDR that brought together researchers, extension agents, and educators to make results more widely available. The document emphasizes simplifying scientific findings and focusing on the most essential ideas and stories in order to enhance research utilization and uptake.
This document lists the names of many important scientists from history such as Isaac Newton, Max Planck, Galileo Galilei, Marie Curie, Albert Einstein, Niels Bohr, and others who made significant contributions to fields like physics, chemistry, astronomy, and medicine. It also mentions several astronomical phenomena such as the Helix Nebula, the center of the Milky Way galaxy, black holes, and active galaxies.
The document discusses various aspects of disk storage and organization in computer systems. It describes how disks are logically organized into blocks and mapped onto physical sectors. Different disk scheduling algorithms like FCFS, SSTF, SCAN, and C-SCAN are covered that aim to optimize disk head movement and request servicing time. The document also discusses disk formatting, swap space management in operating systems, and the architecture and subsystems of the Windows 2000 operating system.
This document discusses the structure and components of disk drives and operating system disk management. It covers topics like disk formatting, logical block addressing, zones and rotational speeds on disks, and different disk scheduling algorithms like FCFS, SSTF, SCAN, C-SCAN, and LOOK. It also summarizes file systems, swap space management, and networking protocols in operating systems.
The scsimgr command provides extended SCSI management and diagnostic capabilities on HP-UX 11i v3. It allows administrators to gather status information, display attributes, set tunables, and validate device replacements for all SCSI objects including LUNs, paths, and controllers. Scsimgr supports online troubleshooting and maintenance through features like disabling paths, validating changes, and retrieving information without opening devices. It uses plug-ins to handle class-specific and transport-specific operations for different device types.
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)David Sweigert
The document provides information on various topics for the CompTIA CASP exam, including:
1. Virtual Trusted Platform Modules (vTPM) which provide secure storage and cryptographic functions to virtual machines.
2. SELinux which added Mandatory Access Control to the Linux kernel to control access between subjects and objects.
3. Differences between common storage protocols like iSCSI, Fibre Channel over Ethernet, and NFS vs CIFS.
It also covers topics like dynamic disk pools vs RAID, Microsoft Group Policies, and differences between network attached storage and storage area networks.
This document provides an overview of various storage technologies and concepts, including:
1) Disk array controllers that manage I/O to improve performance and protect against disk failures. Tape libraries evolved to provide common power and handling for multiple tape drives.
2) Network attached storage (NAS) allows file sharing across a network by making remote files appear local. Storage arrays combine disk arrays and provide common management of storage capacity.
3) Storage area networks (SANs) connect computer systems and storage using a switched network infrastructure, allowing storage access without direct physical connections. Disk and virtual tape libraries use disk arrays for backup and recovery.
This document discusses system devices and how operating systems interact with and configure devices. It provides an overview of device interconnects, configuration from the hardware and software perspectives, and device naming schemes in various operating systems. Specific topics covered include generic system architecture, device terminology, viewing the system device configuration, and adding new devices to Windows and Linux systems.
This document discusses the key components of a file system and disk drive architecture. It covers disk structure, scheduling, management, and swap space. It describes concepts like disk formatting, boot blocks, bad blocks, and swap space location. The document also provides a high-level overview of the Windows 2000 operating system, covering its architecture, kernel, processes and threads, exceptions, and subsystems.
This document discusses the key components of a file system and disk drive operation. It covers disk structure, scheduling, management, and swap space. Disks are made up of logical blocks that are mapped to physical sectors. Scheduling algorithms like FCFS, SSTF, SCAN and C-SCAN are used to optimize disk head movement. Disk formatting partitions disks and writes file system structures. Swap space is used for virtual memory paging.
This document discusses the key components of a file system and disk drive operation. It covers disk structure, scheduling, management, and swap space. Disks are made up of logical blocks that are mapped to physical sectors. Scheduling algorithms like FCFS, SSTF, SCAN and C-SCAN are used to optimize disk head movement. Disk formatting partitions disks and writes file system structures. Swap space is used for virtual memory paging.
This document discusses the key components of a file system and disk drive operation. It covers disk structure, scheduling, management, and swap space. Disks are made up of logical blocks that are mapped to physical sectors. Scheduling algorithms like FCFS, SSTF, SCAN and C-SCAN are used to optimize disk head movement. Disk formatting partitions disks and writes file system structures. Swap space is used for virtual memory paging.
Study notes for CompTIA Certified Advanced Security PractitionerDavid Sweigert
The document provides information on various topics for the CompTIA CASP exam, including:
1. A virtual trusted platform module (vTPM) which provides secure storage and cryptographic functions to virtual machines similarly to a physical TPM chip.
2. SELinux, which added mandatory access control to the Linux kernel to require authorization for processes to access files.
3. A storage area network (SAN) that provides block-level access to consolidated storage over a dedicated network, rather than using a local area network.
4. Issues with using BitLocker to encrypt the drive of a computer with multiple operating systems installed, such as only being available on certain Windows versions and requiring recovery keys
This document discusses mass storage systems including physical structures and performance characteristics. It covers topics such as disk structure, disk scheduling algorithms, RAID configurations, tape drives, removable media, and hierarchical storage management. The key aspects covered are the physical components of secondary and tertiary storage, how operating systems provide services for mass storage, and performance considerations for different storage devices and technologies.
The document provides information about I/O systems and a case study, including details about disk structure, disk scheduling algorithms, disk management techniques, direct memory access, swap space management, RAID structure, disk attachment methods, and features of the Windows 2000 and MS-DOS operating systems. Key points covered include how disks are addressed as logical blocks, techniques for minimizing seek time and maximizing disk bandwidth, common disk scheduling algorithms like SSTF and SCAN, and how swap space is allocated and managed in different operating systems.
The CASPUR Tape Dispatcher is a server that manages shared tape drives and tapes across a distributed computing environment. It handles mounting and unmounting tapes, ensures only one process uses a resource at a time, and maintains a log of tape usage. The server communicates with client systems using an API. It assigns available tape drives and mounts the requested tapes, establishing exclusive sessions for clients until the session ends or client crashes. The open source software and documentation are available for download to help other sites manage shared tape resources.
SCSI (Small Computer System Interface) is a hardware interface and protocol standard that allows multiple peripheral devices to be connected to a host computer. Some key points:
- SCSI originated from SASI and was later standardized. It defines connections, commands, and protocols for devices to communicate.
- Devices have roles as initiators that request operations or targets that perform operations. A host adapter connects the SCSI bus to the computer.
- SCSI supports various bus widths, speeds, and signaling methods over several generations to improve performance and reliability over longer distances.
- Features like command queuing and tagging allow efficient handling of multiple concurrent requests between devices.
Small Computer System Interface (SCSI) pronounced as skuzzy.
The SCSI system consists of the SCSI controller that communicates with the system.
The SCSI cables are used to connect the SCSI drives to the SCSI controller and the SCSI devices.
SCSI interfaces are mainly used to connect HDD, tape storage devices, printers and scanners.
SCSI drives are more costly and faster as compare to IDE drives.
SCSI enables fast communication between the system and the device.
This document discusses mass storage structures including magnetic disks, solid state disks, disk structure, disk attachment methods like host-attached storage, network-attached storage, and storage area networks. It also covers disk scheduling algorithms, disk management topics, swap space management, RAID structures, and stable storage implementation. Magnetic disks are organized into platters, tracks, cylinders, and sectors. Solid state disks use flash memory or DRAM instead of magnetic platters. Disks can be attached directly to hosts or accessed over a network. Disk scheduling algorithms aim to minimize seek times and rotational latency when servicing multiple requests. RAID and swap space management improve reliability, performance and memory management respectively.
Sysfs is a virtual filesystem in Linux that exports information about kernel objects, such as devices and modules, to userspace. It allows user processes to view and manipulate these objects. When sysfs is initialized, it registers itself with the kernel's virtual filesystem and automatically mounts itself to provide this interface. The sysfs hierarchy mirrors the organization of kernel objects, with directories, files, and symlinks representing objects, attributes, and relationships.
iSCSI allows storage devices to be accessed over IP networks rather than direct attaching via SCSI cables. It works by encapsulating SCSI commands and data within TCP packets. Key points:
- iSCSI targets export storage as logical units (LUNs) over iSCSI. Initiators can then access these LUNs remotely over IP networks.
- This allows centralized storage consolidation and disaster recovery mirroring between data centers connected via IP.
- Security features include CHAP authentication of initiators and targets as well as logical/physical network isolation of iSCSI traffic.
- Challenges include the different performance characteristics of SCSI versus TCP/IP networks, such as higher delays over WAN
This presentation includes a detail of various real time operating systems and it focuses on Vx Works. It will also help you understand what not is a RTOS.
1. User-mode API for Tape Libraries
Aram Khalili
Computer Science Department
University of Maryland Baltimore County
1000 Hilltop Circle
Baltimore, MD 21250
akhali1@umbc.edu
Abstract
Tape libraries are becoming more commonplace
in various installations, whether they are used for
automatic backups, archive or on-line storage. This
work represents a freely distributable user-mode C-
library that implements various SCSI commands of
the Exabyte EXB-210 unit.
1 Introduction
Tape libraries are becoming more and more
common in installations where large amounts of data
need to be stored but also retrieved often for anal-
ysis. Up until recently mass storage systems were
used only at scienti c facilities but due to the de-
velopment of new applications such as digital li-
braries, and electronic commerce the demands for
storing enormous amounts of information while at
the same time providing e cient access to this in-
formation is becoming commonplace. The original
project at the Laboratory for Information Systems
Technology called for development of a le system
that integrates tape libraries with disk storage in a
transparent manner. The project has been stopped,
but our results are freely available. We chose Linux
as the operating system to support this project since
access to the source code, internals documentation,
and a large support group were necessary require-
ments 2, 5].
In order to understand the behavior, in terms
of performance, of the robotic arm that performs the
mount operations in our Exabyte EXB-210 tape li-
brary we developed a user mode API for access to
the SCSI medium changer command set 3]. Our
interface is built on top of the generic SCSI inter-
face (sg driver) presently available in the Linux ker-
nel. Based on our knowledge there is currently no
other driver or utility available for any of the public
domain Unix operating systems for managing auto-
mated tape libraries.
2 The library's SCSI Interface
The SCSI-2 Interface standard 1] is a standard
that enables a host computer and peripheral devices,
such as this tape library and its tape drives, to com-
municate. The library and tape drives are indepen-
dent SCSI devices, and each supports an indepen-
dent set of SCSI commands.
2.1 Architecture of the SCSI Inter-
face
The physical components of a SCSI system con-
sist of the following:
host adapter: A device which connects between a
host system and the SCSI bus. The device usu-
ally performs the lowest layers of the SCSI pro-
tocol and normally operates in the initiator role.
initiator: A computer equipped with a SCSI host
adapter card enabling it to send commands,
messages and data across the SCSI bus to tar-
gets. The initiator can also receive data, mes-
sages and status information from the targets.
targets: Devices capable of receiving commands
from an initiator. The tape library and the tape
drives are independent targets. The library is
the target for cartridgeinventoryand movement
commands, while the tape drive(s) is the target
for read and write operations.
1
2. SCSI bus: The SCSI cables that connect initiators
and targets.
2.2 Architecture of the tape library
The tape library includes the following types of
components:
medium changer element: This is the robotic
arm that moves the tapes. There is exactly
one medium changer element in this unit. The
medium changer is also called the cartridge han-
dling mechanism (CHM) and the transport ele-
ment.
data transfer element: This is a tape drive, of
which there can be one or two in our unit.
storage element: This is a cartridge holder.
There are either 11 or 21 storage elements in
a EXB-210 tape library. It is also called stor-
age location. The structure that contains 10 of
the storage elements is called a magazine or a
cartridge magazine.
cartridge: Tapes. There can be 0 to 21 tapes in
the library (plus 3 for two tape drives and one
medium changer, theoretically).
bar code scanner: A bar code scanner that may
be mounted on the medium changer. This com-
ponent is optional, i.e. there can be 0 or 1 bar
code scanner in the unit. It scans bar code la-
bels (if installed) on the cartridges.
2.3 SCSI commands supported by
the library
The EXB-210 unit has two kinds of SCSI de-
vices, the tape drive(s) and the medium changer,
each supporting a di erent SCSI command set. Out
of the list of commands that the tape library sup-
ports (see 4]) we have implemented this subset of
commands: INQUIRY, MODE SENSE, MODE SE-
LECT, INITIALIZE ELEMENT STATUS, MOVE
MEDIUM, POSITION TO ELEMENT and READ
ELEMENT STATUS.
2.4 INQUIRY
The INQUIRY command requests that the li-
brary sends information regarding its static parame-
ters to the initiator. INQUIRY is used to obtain in-
formation such as vendor and product ID, rmware
code revision levels, serial number, availability of an
optional barcode scanner in the library and support
of various SCSI-2 and other options.
2.5 MODE SENSE
The MODE SENSE command is used to dis-
cover the current operating mode parameters of the
library. It can return useful information such as
the number and addresses of tape storage locations
(11,21), the number of medium changers (1), and
the number of tape drives (1-2). It gives information
about the parameters that are valid for the MOVE
MEDIUM command, i.e. which types of moves the
library supports, whether LCD security mode (ac-
cess restrictions) is enabled, the LCD, and whether
SCSI bus parity is enabled. It can also be used to
determine default settings, and currently saved (in
non-volatile memory) settings.
2.6 MODE SELECT
MODE SELECT allows one to de ne the cur-
rent operating parameters for the library. It allows
one to set the parameters which can be discoveredby
MODE SENSE. Note that parameters are constant
and cannot be changed.
2.7 INITIALIZE ELEMENT STA-
TUS
This command causes the library to check all
elements for tapes, and the tape's barcodes, if a bar-
code reader is installed. This includes the tape drive
and the medium changer, although no action is taken
on an INITIALIZE ELEMENT STATUS targeting
the medium changer, since this information is always
maintained and assumed to be accurate. Checking
is done in increasing element address order.
2
3. 2.8 POSITION TO ELEMENT
This command requests the medium changer to
position itself vertically (for a standalone unit; hor-
izontally for rack mounted systems) in front of the
requested address. If the medium changer's element
address is given as the destination, the changer po-
sitions itself in a park position, giving (manual) ac-
cess to the tape drive(s) and tape magazine(s). This
command can also be used to reduce travel time if
the next move command's source address can be pre-
dicted, or to position the changer at a place where
the average distance to any location is minimized.
2.9 MOVE MEDIUM
The MOVE MEDIUM command causes the
medium changer, if possible, to move the cartridge
from the source to the destination address. Nor-
mally this is between the tape magazine and the tape
drive(s), but one could also exchange the magazine
location of a tape, to minimize the travel distance
for frequently used tapes. If the destination address
is one of a tape drive, the library will insert the car-
tridge. Valid source and destination element com-
binations can be discovered by the MODE SENSE
command.
2.10 READ ELEMENT STATUS
This command allows one to discover the sta-
tus of the elements of the library. Elements are the
tape drive, the medium changer, and the storage
locations. Information that can be obtained about
the elements include whether they are in a normal
state, the location of the transport element, whether
a storage slot is lled with a tape and whether a tape
drive or the medium changer contains a tape.
3 Linux's SCSI Interface
Probably ever since its inception Linux in-
cluded support for SCSI devices. The main function-
ality used in the command library (mid-level) lies
in /usr/src/linux/drivers/scsi/scsi.c and (higher
level) in /usr/src/linux/drivers/scsi/sg.c It was
not necessary to explicitly call hardware-level code
(adapter drivers). The purpose of this interface is
to provide a simple and consistent abstraction of
a SCSI device that allows user-process control and
follows le-system command syntax. Scsi.c facil-
itates the kernel with the mechanisms to scan the
SCSI bus for devices (using INQUIRY), issue and
queue commands to these devices and maintains the
kernel data structures about them. It also imple-
ments exception handlers, such as SCSI time-out,
abort and reset routines, and re-entrance prevention
for the low-level driver. It also supplies functions
for registering and removing removing drivers and
modules.
On top of scsi.c sit sg.c, sd.c and st.c. Sg.c
provides the le-system interface for generic SCSI
devices utilizing the scsi.c functions. It implements
the open, close, read, write and ioctl calls that ab-
stract the SCSI devices as les. Linux uses this to
create the special device les /dev/sg*, where a let-
ter corresponding to the device's discovery during
intial scan follows the sg, e.g. /dev/sga for the rst
discovered device (the one with the lowest SCSI ID).
These device les can be accessed through the nor-
mal le operations. An open system call will return
the usual le descriptor, which can be passed to write
to issue commands to the device. The data for the
command is the actual SCSI command appended to
an sg header structure, which the user has to pro-
vide. The structure includes information about the
command, a return value eld and a bu er with the
command descriptor block. After the write nishes,
a read is used to read back the results.
Sd.c and st.c provide similar abstraction for
disk and tape devices, respectively. They were not
used for this part of the project which only deals
with the medium changer device.
4 Tape Library API
The functions we developed for access to the
medium changer command set are the following:
int inquiry(int fd, inquiry_t *inq,
u_char type);
int mode_sense(int fd,
__u16 pagecontrol,
__u16 pagecode,
elt_addr_assgn_t *eas,
tgd_t *tgd,
3
4. dev_cap_t *dcp,
LCD_t *LCD,
parity_t *par);
int mode_select(int fd, __u16 save,
elt_addr_assgn_t *eas,
LCD_t *LCD,
parity_t *par);
int init_elt_status(int fd, __u18 nbl);
int move_medium(int fd, __u16 tea,
__u16 src, __u16 dest);
int position_elt(int fd, __u16 tea,
__u16 dest);
int read_elt_stat(int fd,
elt_stat_req_t *esr,
elt_stat_data_t *esd,
elt_stat_page_t **esp,
stor_elt_desc_t **sed,
data_transf_elt_desc_t **dted,
med_transp_elt_desc_t **mted);
4.1 inquiry
Inquiry takes as arguments the le descriptor
to the special device le, a pointer to a pre-allocated
inquiry t structure for the data that the command
should return, and the type of inquiry requested.
Valid values for the type are 0 for standard inquiry
data, 1 for the Supported Vital Product Data page,
and 2 for the Unit Serial Number page. It returns
the number of bytes read from the SCSI bus.
4.2 mode sense
Mode sense takes as argument the le descrip-
tor to the special device le, the control type, the
page code, and pointers to elt addr assg t, tgd t,
dev cap t, LCD t and parity t. Valid control type
arguments are 0 for the current operating values of
the library, 1 for a changeable value mask, which sets
all bits of unchangeable values to 0 and all bits of
changeable values to 1, and 2 for the default values.
The page code holds information about the type of
pages requested. The following values are valid:
1Dh - Element Address Assignment page.
1Eh - Transport Geometry Descriptor
page.
1Fh - Device Capabilities page.
22h - LCD mode page.
00h - Parity page.
3Fh - All pages in above order.
The pointers to the structures need only be pre-
allocated if the corresponding page is requested, oth-
erwise NULL may be passed. Mode sense returns the
number of bytes read from the SCSI bus.
4.3 mode select
Mode select's arguments are similar to those for
mode sense, except that mode select includes the op-
tion to save the sent values to non-volatile memory
(1 to save, 0 otherwise), and that only structures
that can be modi ed are passed. They need to be
pre-allocated and set to the desired values if one
wants to change their values, otherwise they may
be NULL. Mode select returns the number of bytes
read from the SCSI bus.
4.4 init elt status
Init elt status takes the le descriptor and an
indicator of whether the library should attempt to
scan bar codes as arguments. Set nbl to 0 scan for
bar codes labels, and to 1 to omit. It returns the
number of bytes read from the SCSI bus.
4.5 move medium
Move medium takes the le descriptor and the
element addresses of the transport element, and the
source and destination addresses. It returns the
number of bytes read from the SCSI bus.
4.6 position elt
Position elt takes as arguments the le descrip-
tor and the element addresses of the transport ele-
ment and its destination. It returns the number of
bytes read from the SCSI bus.
4
5. 4.7 read elt status
Read elt status takes the le descriptor, and
pointers to various structures as arguments.
elt stat req t describes the type of request, i.e.
whether bar code information should be returned
(0 for no, 1 for yes), and which type of elements
should be reported on, 0 for all, 1 for the trans-
port element, 2 for the storage elements, and 4 for
the data transfer elements. Upon successful com-
pletion, elt stat data t will hold the element address
of the rst element, the number of elements, and
the number of bytes returned. Elt stat page t holds
the type of element reported, the length in bytes
of information per element, and the total number
of bytes of information. Up to three records, one
record per element type will, will be returned, hence
the double pointer. The next structures hold infor-
mation on a particular element. Multiple records
may be returned. The structure pointers passed to
read elt status should not be pre-allocated. It re-
turns 1 for success and 0 for failure.
4.8 Additional functionality
In addition to the above implementation of the
meadium changer's SCSI commands we found it nec-
essary or useful to write the following routines and
programs. The routines are for the control of the
tape drive of the library, and the programs encap-
sulate some of these functions to be more useable.
The routines are
int load(int fd, int luflag);
long get_position(int fd);
long set_position(int fd, long pos);
int rewind_tape(int fd);
int set_block_length(int fd, int blocksize);
All functions take as their rst argument the
le descriptor for the special device le. Load takes
a load/unload ag as an additional argument. Set-
ting the ag to 1 causes the tape drive to load a
tape inside of it, 0 causes it to unload. If tape drive
is not in auto-load mode, one needs to load a tape,
once it has been inserted into the drive, before one
can perform I/O on it. An unload will eject the
tape. The command returns the number of bytes
read from the SCSI bus. Get position takes no ad-
ditional arguments and returns the current o set in
blocks of the tape. Set position takes an o set as
another argument and seeks the tape to the desired
location. It returns the number of bytes returned by
the ioctl command. Set block length takesthe integer
blocksize as an additional argument and tries to set
the current blocsize to the desired value. Valid val-
ues depend on the blocksizes supported by the tape
drive. It also returns the number of bytes returned
by the ioctl call.
At this point the following programs exist:
move <device> <src> <dest>
load <device> load/unload flag]
eject <device>
position <device> <dest>
read_stat <device>
All the programs take the device le as their
rst argument. Additonal argumentspassed to move
are the source and destination element addresses.
It assumes the default transport element address of
86. Load takes an optional load/unload ag. If it
is ommitted a load is performed on the device, if
it is given, it is passed to the load function, which
will load on a 1 and unload on a 0. Eject is just
a more familiar form of load hdevicei 0. Position
takes the block o set as another parameter and seek
to the speci ed block. Read stat takes no additional
arguments and implements the READ ELEMENT
STATUS command for all elements.
For a more detailed discussion of the functions
and their data structures we direct the reader to the
source code and accompanying material, which will
be available at ftp://ftp.cs.umbc.edu/pub/exb210/.
4.9 Use of the API
We used the API functions to collect perfor-
mance measurements of the unit. We generated a
workload of le accesses using a uniform distribution
5
6. over the interval 0,8] in seconds for interarrival time
of successive requests, a uniform distribution over
the interval 1,40] in kilobytes for le sizes, uniform
distribution over 1,10] of tape IDs. One process
read the simulated workload and issued requests to
another process, which interpreted the request and,
using the API calls, fetched the right tape, loaded it,
seeked to the given location, read or wrote the speci-
ed number of blocks, and collected timing informa-
tion. Reads and writes were done using Linux's st
interface, seeks with our set position function. When
we ran it, one thing we immediately noticed is that
the library cannot service requests coming in at such
a high rate, so in our next workload we changed
the interarrival time to a uniform distribution over
0,40], which the device could handle. This indicates
that this device by itself will not give adequate inter-
active on-line performance, but will work well as an
automatic backup device. The most expensive oper-
ation time-wise was an eject. The manual does not
give information about the device's caching scheme,
and other things relevant to the performance of the
individual commands, so we are left guessing as to
why the unit behaves as it does. Another observa-
tion we made is that in sequential reads, if a 32 block
boundary is crossed, the read command will take 2
orders of magnitude longer complete. A similar phe-
nomenon happens during writing. Otherwise read
and write completion time vary by a small amount.
5 Conclusion
We have developed a freely distributable library
of functions that implement SCSI commands on a
EXB-210 tape library and used it to collect perfor-
mance measurements of the device. We see our li-
brary as a helpful tool to other programmersdesiring
to write programsthat accessthe functionality of the
EXB-210 unit for application development, and we
have included some command encapsulation for use
in such things as automatic backup scripts.
References
1] ANSI, Small Computer Systems Interface-2
(SCSI-2), X3T9/89-042
2] M. Beck, H. Bohme, M. Dziadzka, U. Kunitz,
R. Magnus, and D. Verworner, Linux Kernel
Internals", Addison-Wesley, 1996.
3] Exabyte Corporation, Installation and Oper-
ation", 1994.
4] Exabyte Corporation, EXB-210 and EXB-220
8mm libraries: SCSI Reference", 1996.
5] David Rusling, The Linux Kernel", The Linux
Documentation Project, 1996.
6] Friedhelm Schmidt, The SCSI Bus and IDE
Interface: Protocols, Applications, and Pro-
gramming", Addison-Wesley, 1996.
6