A Reliable and Portable Multimedia File System

Total Page:16

File Type:pdf, Size:1020Kb

A Reliable and Portable Multimedia File System A Reliable and Portable Multimedia File System Joo-Young Hwang, Jae-Kyoung Bae, Alexander Kirnasov, Min-Sung Jang, Ha-Yeong Kim Samsung Electronics, Suwon, Korea {jooyoung.hwang, jaekyoung.bae, a78.kirnasov}@samsung.com {minsung.jang, hayeong.kim}@samsung.com Abstract being used for various CE devices from per- sonal video recorder (PVR) to hand held cam- corders, portable media players, and mobile In this paper we describe design and imple- phones. File systems for such devices have re- mentation of a database-assisted multimedia quirements for multimedia extensions, reliabil- file system, named as XPRESS (eXtendible ity, portability and maintainability. Portable Reliable Embedded Storage System). In XPRESS, conventional file system metadata Multimedia Extension Multimedia extensions like inodes, directories, and free space infor- required for CE devices are non-linear editing mation are handled by transactional database, and advanced file indexing. As CE devices which guarantees metadata consistency against are being capable of capturing and storing A/V various kinds of system failures. File sys- data, consumers want to personalize media data tem implementation and upgrade are made easy according to their preference. They make their because metadata scheme can be changed by own titles and shares with their friends via in- modifying database schema. Moreover, us- ternet. PVR users want to edit recorded streams ing well-defined database transaction program- to remove advertisement and uninterested por- ming interface, complex transactions like non- tions. Non-linear editing system had been only linear editing operations are developed easily. necessary in the studio to produce broadcast Since XPRESS runs in user level, it is portable contents but it will be necessary also for con- to various OSes. XPRESS shows streaming sumers. Multimedia file system for CE devices performance competitive to Linux XFS real- should support non-linear editing operations ef- time extension on Linux 2.6.12, which indi- ficiently. File system should support file index- cates the file system architecture can provide ing by content-aware attributes, for example the performance, maintainability, and reliability al- director and actor/actress of a movie clip. together. Reliability On occurrence of system fail- ures(e.g. power failures, reset, and bad blocks), 1 Introduction file system for CE devices should be recovered to a consistent state. Implementation of a reli- able file system from scratch or API extension Previously consumer electronics (CE) devices to existing file system are difficult and requires didn’t use disk drives, but these days disks are long stabilization effort. In case of appending 58 • A Reliable and Portable Multimedia File System multimedia API extension (e.g. non-linear edit data consistency. Metadata consistency is to operations), reliability can be a main concern. support transactional metadata operations with ACID (atomicity, consistency, isolation, dura- Portability Conventional file systems have bility) semantics or a subset of ACID. Typical dependency on underlying operating system. file system metadata consist of inodes, directo- Since CE devices manufacturers usually use ries, disk’s free space information, and free in- various operating systems, file system should odes information. Data consistency means sup- be easily ported to various OSes. porting ACID semantics for data transactions as well. If a data transaction to update a portion Maintainability Consumer devices are diverse of file is aborted due to some reasons, the data and the requirements for file system are slightly update is complete or data update is discarded different from device to device. Moreover, file at all. system requirements are time-varying. Main- tainability is desired to reduce cost of file sys- There have been several approaches of imple- tem upgrade and customization. menting file system consistency; log structured file system [11] or journaling file system [2]. In this paper, we propose a multi-media file sys- In log structured file system, all operations are tem architecture to provide all the above re- logged to disk drive. File system is structured quirements. A research prototype named as as logs of consequent file system update op- “XPRESS”(eXtensible Portable Reliable Em- erations. Journaling is to store operations on bedded Storage System) is implemented on separate journal space before updating the file Linux. XPRESS is a user-level database- system. Journaling file system writes twice (to assisted file system. It uses a transactional journal space and file system) while log struc- Berkeley database as XPRESS metadata store. tured file system does write once. However XPRESS supports zero-copy non-linear edit journaling approach is popular because it can (cut & paste) operations. XPRESS shows per- upgrade existing non-journaling file system to formance in terms of bandwidth and IO la- journaling file system without losing or rewrit- tencies which is competitive to Linux XFS. ing the existing contents. This paper is organized as follows. Archi- tecture of XPRESS is described in section 2. Implementation of log structured file system or XPRESS’s database schema is presented in sec- journaling is a time consuming task. There tion 3. Space allocation is detailed in section 4. have been a lot of researches and implemen- Section 5 gives experimental results and discus- tation of ACID transactions mechanism in sions. Related works are described in section 6. database technology. There are many stable We conclude and indicate future works in sec- open source databases or commercial databases tion 7. which provide transaction mechanism. So we decide to exploit databases’ transaction mech- anism in building our file system. Since we 2 Architecture aimed to design a file system with performance and reliability altogether, we decided not to save file contents in database. Streaming per- File system consistency is one of important file formance can be bottlenecked by database if system design issue because it affects overall file contents are stored in db. So, only meta- design complexity. File system consistency data is stored in database while file contents are can be classified into metadata consistency and stored to a partition. Placement of file contents 2006 Linux Symposium, Volume One • 59 on the data partition is guided by multimedia optimized allocation strategy. Storing file system metadata in database makes file system upgrades and customization much easier than conventional file systems. XPRESS handles metadata thru database API and is not responsible for disk layout of the metadata. File system developer has only to design high level database schema and use well defined database API to upgrade existing database. To upgrade conventional file systems, developer should handle details of physical layout of metadata and modify custom data structures. XPRESS is implemented in user level because user level implementation gives high portabil- ity and maintainability. File system source codes are not dependent on OS. Kernel level file systems should comply with OS specific Figure 1: Block Diagram of XPRESS File Sys- infrastructures. Linux kernel level file system tem compliant to VFS layer cannot be ported eas- ily to different RTOSes. There can be a over- head which is due to user level implementa- There are four modules handling file system tion. XPRESS should make system calls to metadata; superblock, directory, inode, and al- read/write block device file to access file con- loc modules. Directory module implements the tents. If file data is sparsely distributed, context name space using a lookup database (dir.db) switching happens for each extent. There was and path_lookup function. The function an approach to port existing user level database looks up the path of a file or a directory through to kernel level[9] and develop a kernel level recursive DB query for each token of the path database file system. It can be improved if us- divided separated by ’/’ character. The flow- ing Linux AIO efficiently. Current XPRESS ing is the simple example for the process of this does not use Linux AIO but has no significant function. Superblock module maintains free in- performance overhead. odes. Inode module maintains the logical-to- physical space mappings for files. Alloc mod- Figure 1 gives a block diagram of XPRESS file ule maintains free space. system. XPRESS is designed to be independent of database. DB Abstraction Layer (DBAL) is In terms of file IO, file module calls inode mod- located between metadata manager and Berke- ule to updates or queries extents.db and ley DB. DBAL defines basic set of interfaces reads or writes file contents. The block de- which modern databases usually have. SQL or vice file corresponding to the data partition (say complex data types are not used. XPRESS has “/dev/sda1”) is opened for read/write mode not much OS dependencies. OSAL of XPRESS at mount time and its file descriptor is saved has only wrappers for interfacing block device in environment descriptor, which is referred file which may be different across operating to by every application accessing the partition. systems. XPRESS does not implement caching but relies 60 • A Reliable and Portable Multimedia File System on Linux buffer cache. XPRESS supports both performance, transaction-protected data man- direct IO and cached IO. For cached IO, the agement services to applications. Berkeley DB block device file is opened without O_DIRECT provides a simple function-call API for data flag while opened with O_DIRECT in case of access and management. Berkeley DB is em- direct IO. bedded in its application. It is linked directly into the application and runs in the same ad- Support for using multiple partitions concur- dress space as the application. As a result, no rently, XPRESS manages mounted partitions inter-process communication, either over the information using environment descriptors. A network or between processes on the same ma- environment descriptor has information about a chine, is required for database operations. All partition and its mount point, which is used for database operations happen inside the library.
Recommended publications
  • Copy on Write Based File Systems Performance Analysis and Implementation
    Copy On Write Based File Systems Performance Analysis And Implementation Sakis Kasampalis Kongens Lyngby 2010 IMM-MSC-2010-63 Technical University of Denmark Department Of Informatics Building 321, DK-2800 Kongens Lyngby, Denmark Phone +45 45253351, Fax +45 45882673 [email protected] www.imm.dtu.dk Abstract In this work I am focusing on Copy On Write based file systems. Copy On Write is used on modern file systems for providing (1) metadata and data consistency using transactional semantics, (2) cheap and instant backups using snapshots and clones. This thesis is divided into two main parts. The first part focuses on the design and performance of Copy On Write based file systems. Recent efforts aiming at creating a Copy On Write based file system are ZFS, Btrfs, ext3cow, Hammer, and LLFS. My work focuses only on ZFS and Btrfs, since they support the most advanced features. The main goals of ZFS and Btrfs are to offer a scalable, fault tolerant, and easy to administrate file system. I evaluate the performance and scalability of ZFS and Btrfs. The evaluation includes studying their design and testing their performance and scalability against a set of recommended file system benchmarks. Most computers are already based on multi-core and multiple processor architec- tures. Because of that, the need for using concurrent programming models has increased. Transactions can be very helpful for supporting concurrent program- ming models, which ensure that system updates are consistent. Unfortunately, the majority of operating systems and file systems either do not support trans- actions at all, or they simply do not expose them to the users.
    [Show full text]
  • Filesystems HOWTO Filesystems HOWTO Table of Contents Filesystems HOWTO
    Filesystems HOWTO Filesystems HOWTO Table of Contents Filesystems HOWTO..........................................................................................................................................1 Martin Hinner < [email protected]>, http://martin.hinner.info............................................................1 1. Introduction..........................................................................................................................................1 2. Volumes...............................................................................................................................................1 3. DOS FAT 12/16/32, VFAT.................................................................................................................2 4. High Performance FileSystem (HPFS)................................................................................................2 5. New Technology FileSystem (NTFS).................................................................................................2 6. Extended filesystems (Ext, Ext2, Ext3)...............................................................................................2 7. Macintosh Hierarchical Filesystem − HFS..........................................................................................3 8. ISO 9660 − CD−ROM filesystem.......................................................................................................3 9. Other filesystems.................................................................................................................................3
    [Show full text]
  • Using Hierarchical Folders and Tags for File Management
    Using Hierarchical Folders and Tags for File Management A Thesis Submitted to the Faculty of Drexel University by Shanshan Ma in partial fulfillment of the requirement for the degree of Doctor of Philosophy March 2010 © Copyright 2010 Shanshan Ma. All Rights Reserved. ii Dedications This dissertation is dedicated to my mother. iii Acknowledgments I would like to express my sincerest gratitude to my advisor Dr. Susan Wiedenbeck. She encouraged me when I had struggles. She inspired me when I had doubts. The dissertation is nowhere to be found if it had not been for our weekly meetings and numerous discussions. I’m in great debts to all the time and effort that she spent with me in this journey. Thank you to my dissertation committee members, Dr. Michael Atwood, Dr. Xia Lin, Dr. Denise Agosto, and Dr. Deborah Barreau, who have guided me and supported me in the research. The insights and critiques from the committee are invaluable in the writing of this dissertation. I am grateful to my family who love me unconditionally. Thank you my mother for teaching me to be a strong person. Thank you my father and my brother for always being there for me. I would like to thank the iSchool at Drexel University for your generosity in supporting my study and research, for your faculty and staff members who I always had fun to work with, and for the alumni garden that is beautiful all year round. Thank you my friends in Philadelphia and my peer Ph.D. students in the iSchool at Drexel University.
    [Show full text]
  • Model-Based Failure Analysis of Journaling File Systems
    Model-Based Failure Analysis of Journaling File Systems Vijayan Prabhakaran, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau University of Wisconsin, Madison Computer Sciences Department 1210, West Dayton Street, Madison, Wisconsin {vijayan, dusseau, remzi}@cs.wisc.edu Abstract To analyze such file systems, we develop a novel model- based fault-injection technique. Specifically, for the file We propose a novel method to measure the dependability system under test, we develop an abstract model of its up- of journaling file systems. In our approach, we build models date behavior, e.g., how it orders writes to disk to maintain of how journaling file systems must behave under different file system consistency. By using such a model, we can journaling modes and use these models to analyze file sys- inject faults at various “interesting” points during a file sys- tem behavior under disk failures. Using our techniques, we tem transaction, and thus monitor how the system reacts to measure the robustness of three important Linux journaling such failures. In this paper, we focus only on write failures file systems: ext3, Reiserfs and IBM JFS. From our anal- because file system writes are those that change the on-disk ysis, we identify several design flaws and correctness bugs state and can potentially lead to corruption if not properly present in these file systems, which can cause serious file handled. system errors ranging from data corruption to unmountable We use this fault-injection methodology to test three file systems. widely used Linux journaling file systems: ext3 [19], Reis- erfs [14] and IBM JFS [1].
    [Show full text]
  • Orion File System : File-Level Host-Based Virtualization
    Orion File System : File-level Host-based Virtualization Amruta Joshi Faraz Shaikh Sapna Todwal Pune Institute of Computer Pune Institute of Computer Pune Institute of Computer Technology, Technology, Technology, Dhankavadi, Pune 411043, India Dhankavadi, Pune 411043, India Dhankavadi, Pune 411043, India 020-2437-1101 020-2437-1101 020-2437-1101 [email protected] [email protected] [email protected] Abstract— The aim of Orion is to implement a solution that The automatic indexing of files and directories is called provides file-level host-based virtualization that provides for "semantic" because user programmable transducers use better aggregation of content/information based on information about these semantics of files to extract the semantics and properties. File-system organization today properties for indexing. The extracted properties are then very closely mirrors storage paradigms rather than user- stored in a relational database so that queries can be run access paradigms and semantic grouping. All file-system against them. Experimental results from our semantic file hierarchies are containers that are expressed based on their system implementation ORION show that semantic file physical presence (a separate drive letter on Windows, or a systems present a more effective storage abstraction than the particular mount point based on the volume in Unix). traditional tree structured file systems for information We have implemented a solution that will allow sharing, storage and retrieval. users to organize their files
    [Show full text]
  • 855400Cd46b6c9e7683b5ace58a55234.Pdf
    Ars TeAchrsn iTceachnica UK Register Log in ▼ ▼ Ars Technica has arrived in Europe. Check it out! × Encryption options are great, but Apple's attitude on checksums is still funky. by Adam H. Leventhal - Jun 26, 2016 1:00pm UTC KEEPING ON TRUCKING INDEPENDENCE, WHAT INDEPENDENCE? Two hours or so of WWDC keynoting and Tim Cook didn't mention a new file system once? Andrew Cunningham This article was originally published on Adam Leventhal's blog in multiple parts. Programmer Andrew Nõmm: "I had to be made Apple announced a new file system that will make its way into all of its OS variants (macOS, tvOS, iOS, an example of as a warning to all IT people." watchOS) in the coming years. Media coverage to this point has been mostly breathless elongations of Apple's developer documentation. With a dearth of detail I decided to attend the presentation and Q&A with the APFS team at WWDC. Dominic Giampaolo and Eric Tamura, two members of the APFS team, gave an overview to a packed room; along with other members of the team, they patiently answered questions later in the day. With those data points and some first-hand usage I wanted to provide an overview and analysis both as a user of Apple-ecosystem products and as a long-time operating system and file system developer. The overview is divided into several sections. I'd encourage you to jump around to topics of interest or skip right to the conclusion (or to the tweet summary). Highest praise goes to encryption; ire to data integrity.
    [Show full text]
  • The Evolution of File Systems
    The Evolution of File Systems Thomas Rivera, Hitachi Data Systems Craig Harmer, April 2011 SNIA Legal Notice The material contained in this tutorial is copyrighted by the SNIA. Member companies and individuals may use this material in presentations and literature under the following conditions: Any slide or slides used must be reproduced without modification The SNIA must be acknowledged as source of any material used in the body of any document containing material from these presentations. This presentation is a project of the SNIA Education Committee. Neither the Author nor the Presenter is an attorney and nothing in this presentation is intended to be nor should be construed as legal advice or opinion. If you need legal advice or legal opinion please contact an attorney. The information presented herein represents the Author's personal opinion and current understanding of the issues involved. The Author, the Presenter, and the SNIA do not assume any responsibility or liability for damages arising out of any reliance on or use of this information. NO WARRANTIES, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK. The Evolution of File Systems 2 © 2012 Storage Networking Industry Association. All Rights Reserved. 2 Abstract The File Systems Evolution Over time additional file systems appeared focusing on specialized requirements such as: data sharing, remote file access, distributed file access, parallel files access, HPC, archiving, security, etc. Due to the dramatic growth of unstructured data, files as the basic units for data containers are morphing into file objects, providing more semantics and feature- rich capabilities for content processing This presentation will: Categorize and explain the basic principles of currently available file system architectures (e.g.
    [Show full text]
  • Toward Automatic Context-Based Attribute Assignment for Semantic file Systems
    Toward automatic context-based attribute assignment for semantic file systems Craig A. N. Soules, Gregory R. Ganger CMU-PDL-04-105 June 2004 Parallel Data Laboratory Carnegie Mellon University Pittsburgh, PA 15213-3890 Abstract Semantic file systems enable users to search for files based on attributes rather than just pre-assigned names. This paper devel- ops and evaluates several new approaches to automatically generating file attributes based on context, complementing existing approaches based on content analysis. Context captures broader system state that can be used to provide new attributes for files, and to propagate attributes among related files; context is also how humans often remember previous items [2], and so should fit the primary role of semantic file systems well. Based on our study of ten systems over four months, the addition of context-based mechanisms, on average, reduces the number of files with zero attributes by 73%. This increases the total number of classifiable files by over 25% in most cases, as is shown in Figure 1. Also, on average, 71% of the content-analyzable files also gain additional valuable attributes. Acknowledgements: We thank the members and companies of the PDL Consortium (including EMC, Hewlett-Packard, HGST, Hitachi, IBM, Intel, LSI Logic, Microsoft, Network Appliance, Panasas, Seagate, Sun, and Veritas) for their interest, insights, feedback, and support. We thank IBM and Intel for hardware grants supporting our research efforts. Keywords: semantic filesystems, context, attributes, classfication 1 Introduction As storage capacity continues to increase, the number of files belonging to an individual user has increased accordingly. Already, storage capacity has reached the point where there is little reason for a user to delete old content—in fact, the time required to do so would be wasted.
    [Show full text]
  • Dominic Giampaolo Interview Page 1 of 4
    frontwheeldrive.com: dominic giampaolo interview Page 1 of 4 home | interviews | reviews | mentors | about | contact Anno Dominic Dominic Giampaolo [by Tom Georgoulias] Dominic Giampaolo isn't exactly a household name, but chances are high you've actually seen the benefits of his work. Dominic was the guy who tracked down a bug in the graphics driver during his days at SGI that was inhibiting a digital effects studio from getting their work completed on the movie Speed. He was also responsible for tracking down a gnarly bug in an eight processor system that only occured within a window of 12 nanoseconds. Dominic worked on various portions of the RealityEngine before Google moving to Be Inc. as a kernel engineer and file system architect for the BeOS. Easily the best search I met Dominic several years ago through a mutual friend and we've been engine out there. corresponding ever since, discussing topics like music, traveling, and software on a weekly basis. Dominic recently left Be Inc. for a senior project management position at Google, so I felt it was time to put him under the BeDope Interview frontwheeldrive spotlight and get his take on various events such as the rise of TA short but entertaining Linux and the Microsoft anti-trust trial. interview from BeDope, the Be Inc. fan site that makes up it's own news. frontwheeldrive: As I understand it, after your graduation you basically drove from Worcester, MA to San Jose, CA and landed a job at SGI. How did you like it there? Inside the BeOS Take a stroll through the BeOS with Dominic and Dominic Giampaolo: I loved working at SGI.
    [Show full text]
  • Generating Computer Forensic Supertimelines Under Linux
    Generating computer forensic super- timelines under Linux A comprehensive guide for Windows-based disk images R. Carbone Certified Hacking Forensic Investigator (EC-Council) DRDC Valcartier C. Bean Certified Hacking Forensic Investigator (EC Council) Defence R&D Canada – Valcartier Technical Memorandum DRDC Valcartier TM 2011-216 October 2011 Generating computer forensic super- timelines under Linux A comprehensive guide for Windows-based disk images R. Carbone Certified Hacking Forensic Investigator (EC Council) DRDC Valcartier C. Bean Certified Hacking Forensic Investigator (EC Council) Defence R&D Canada – Valcartier Technical Memorandum DRDC Valcartier TM 2011-216 October 2011 Principal Author Richard Carbone Programmer/Analyst Approved by Guy Turcotte Head/System of Systems Approved for release by Christian Carrier Chief Scientist © Her Majesty the Queen in Right of Canada, as represented by the Minister of National Defence, 2011 © Sa Majesté la Reine (en droit du Canada), telle que représentée par le ministre de la Défense nationale, 2011 Abstract …….. This technical memorandum examines the basics surrounding computer forensic filesystem timelines and provides an enhanced approach to generating superior timelines for improved filesystem analysis and contextual awareness. Timelines are improved by polling multiple sources of information across the filesystem resulting in an approach that is surprisingly flexible and customizable. The timeline is further enhanced by incorporating key time-based metadata found across a disk image which, when taken as a whole, increases the forensic investigator’s understanding. Résumé …..... Ce mémorandum technique examine les bases entourant la création d’un calendrier des événements inforensiques des systèmes de fichier et fournit une approche améliorée pour générer des calendriers supérieurs pour une analyse améliorée des systèmes de fichiers et un meilleur éveil contextuel.
    [Show full text]
  • Testdisk Documentation Release 7.1
    TestDisk Documentation Release 7.1 Christophe GRENIER May 31, 2021 CONTENTS 1 Presentation 1 1.1 TestDisk - Partition recovery.......................................2 1.2 TestDisk - Filesystem repair.......................................3 1.3 TestDisk - File recovery.........................................3 1.4 PhotoRec - File recovery.........................................4 1.5 QPhotoRec - File recovery........................................4 2 Installation 5 2.1 Linux: Installation of distribution package...............................5 2.2 macOS: Installation via Homebrew...................................6 2.3 Official binaries.............................................6 3 Building from source 9 3.1 Compilation environment........................................9 3.2 Cross Compilation environment..................................... 11 3.3 Compilation............................................... 11 4 Creating a live USB 13 4.1 Windows................................................. 13 4.2 Linux (command line).......................................... 13 4.3 Linux (GNOME)............................................. 14 4.4 OS X................................................... 14 4.5 Starting from the USB stick....................................... 14 5 Storage: can I repair it or recover data from it ? 15 6 Starting the tools 17 6.1 Disk image................................................ 17 6.2 Running TestDisk, PhotoRec or QPhotoRec under Windows...................... 17 6.3 Running TestDisk, PhotoRec under Linux...............................
    [Show full text]
  • A Bibliography of Books and Articles About UNIX and UNIX Programming
    A Bibliography of Books and Articles about UNIX and UNIX Programming Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 02 July 2021 Version 4.44 Abstract General UNIX texts [AL92a, AL95a, AL95b, AA86, AS93b, Ari92, Bou90a, Chr83a, Chr88, CR94, Cof90, Coh94, Dun91a, Gar91, Gt92a, Gt92b, This bibliography records books and historical Hah93, Hah94a, HA90, Hol92, KL94, LY93, publications about the UNIX operating sys- LR89a, LL83a, MM83a, Mik89, MBL89, tem, and UNIX programming tools. It mostly NS92, NH91, POLo93, PM87, RRF90, excludes networks and network programming, RRF93, RRH94, Rus91, Sob89, Sob91, which are treated in a separate bibliography, Sob95, Sou92, TY82b, Tim93, Top90a, internet.bib. This bibliography was started Top90b, Val92b, SSC93, WMP92] from material in postings to the sunflash list, volume 46, number 17, October 1992, and volume 57, number 29, September 1993, by Samuel Ko (e-mail: [email protected]), and then significantly extended by the present Catalogs and book lists author. Entry commentaries are largely due to S. Ko. [O'R93, Spu92, Wri93] 1 2 Communications software History [Cam87, dC87, dG93, Gia90] [?, ?, Cat91, RT74, RT79a] Compilers Linux [DS88, JL78, Joh79, JL87a, LS79, LMB92, [BBD+96, BF97, HP+95, Kir95a, Kir95b, MB90, SF85] PR96b, Sob97, SU94b, SU95, SUM95, TGB95, TG96, VRJ95,
    [Show full text]