GNV / bash für OpenVMS

Similar documents
OpenVMS UNIX Application Portability Initiative

Overview of Unix / Linux operating systems

Introduction to Supercomputing

Open Source and UNIX portability

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Introduction to Linux

Q-VET Read Me. V7.9 for OpenVMS 7.3 V8.6 for OpenVMS 8.x V8.6 for Tru64Unix

Introduction to Linux

Transitioning your applications from Tru64 UNIX to HP-UX on Itanium

EE516: Embedded Software Project 1. Setting Up Environment for Projects

Linux & Shell Programming 2014

EL2310 Scientific Programming

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

Lecture 2. Software Development on Linux Platforms (Cygwin( Cygwin,, etc.) INTRODUCTION TO DESIGN AUTOMATION. Guoyong Shi, PhD

Linux for Beginners. Windows users should download putty or bitvise:

Lecture 2: The file system

Practical Computing-II. Programming in the Linux Environment. 0. An Introduction. B.W.Gore. March 20, 2015

GNV Read First Before Installing

Linux Driver and Embedded Developer


Systems Programming. The Unix/Linux Operating System

Introduction to Linux

Cover Letter for HP OpenVMS Version 8.3 1H1 for Integrity Servers

Introduction to Cygwin Operating Environment

Chapter 1 - Introduction. September 8, 2016

Operating Systems, Unix Files and Commands SEEM

VMS Software, Inc. Business Update. Johan Gedda Chairman

EL2310 Scientific Programming

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Projects and Environment Introduction

Welcome to OpenVMS. VSI Strategic Update. Terry R. Holmes / December 13, 2017

Virtual File System. Don Porter CSE 306

Name: Peter Lemieszewski Venue: Education

About OpenVMS Managed Nodes. About OpenVMS Managed Nodes

HP OpenVMS Systems. Another Neat Tool (Ant) for HP OpenVMS. Installation Guide and Release Notes. December Version 1.7-1

OPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM

TPF Lab: z/tpf Development Environment Tools and SCMs

Introduction to Linux Basics

minit Felix von Leitner September 2004 minit

Introduction to Supercomputing

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

CSC209. Software Tools and Systems Programming.

Please choose the best answer. More than one answer might be true, but choose the one that is best.

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Dalhousie University CSCI 2132 Software Development Winter 2018 Lab 8, March 22

1Z Oracle Linux Fundamentals (Oracle Partner Network) Exam Summary Syllabus Questions

UNIX File Hierarchy: Structure and Commands

Introduction to Linux. Fundamentals of Computer Science

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview

Unix Introduction to UNIX

Distributed Systems Operation System Support

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

PROGRAMMAZIONE I A.A. 2015/2016

UNIX COMMANDS AND SHELLS. UNIX Programming 2015 Fall by Euiseong Seo

Appendix A GLOSSARY. SYS-ED/ Computer Education Techniques, Inc.

client X11 Linux workstation

EECS2301. Lab 1 Winter 2016

UNIX Kernel. UNIX History

*nix Crash Course. Presented by: Virginia Tech Linux / Unix Users Group VTLUUG

Chap2: Operating-System Structures

Mid Term from Feb-2005 to Nov 2012 CS604- Operating System

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0

UNIT I Linux Utilities

CS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm

Oregon State University School of Electrical Engineering and Computer Science. CS 261 Recitation 1. Spring 2011

CS 300 Data Structures

CS 642 Homework #4. Due Date: 11:59 p.m. on Tuesday, May 1, Warning!

Unix Workshop Aug 2014

CSC209. Software Tools and Systems Programming.

Prerequisites: General computing knowledge and experience. No prior knowledge with Linux is required. Supported Distributions:

Unix and C Program Development SEEM

Virtual File System. Don Porter CSE 506

Linux/Cygwin Practice Computer Architecture

Oracle Corporation 1

Figure 1: Graphical representation of a client-server application

Files

LINUX FUNDAMENTALS. Supported Distributions: Red Hat Enterprise Linux 6 SUSE Linux Enterprise 11 Ubuntu LTS. Recommended Class Length: 5 days

(MCQZ-CS604 Operating Systems)

Itron Riva Dev Software Development Getting Started Guide

Exercise 1: Basic Tools

Chapter 1 An Introduction to C++, Unix, SSH and Komodo Edit

Manual Shell Script Linux If Not Exist Directory Does

Sysgem Enterprise Manager

NetBeans Version 3.6 for OpenVMS

Lecture 3. Unix. Question? b. The world s best restaurant. c. Being in the top three happiest countries in the world.

Section 1: Tools. Kaifei Chen, Luca Zuccarini. January 23, Make Motivation How... 2

Unix/Linux: History and Philosophy

CISC 220 fall 2011, set 1: Linux basics

CS155: Computer Security Spring Project #1

Introduction. Let s start with the first set of slides

Unix/Linux Basics. Cpt S 223, Fall 2007 Copyright: Washington State University

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

MacOS X as UNIX. How to use MacOS X for your uni degree and not go insane. Stewart Smith

CL020 - Advanced Linux and UNIX Programming

GNU/Linux 101. Casey McLaughlin. Research Computing Center Spring Workshop Series 2018

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

Programming Project 1: Introduction to the BLITZ Tools

CSE 391 Lecture 1. introduction to Linux/Unix environment

Prerequisites: Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.

containerization: more than the new virtualization

Transcription:

GNV / bash für OpenVMS 3D06 Helmut Ammer Technical Consultant OpenVMS CCCSC 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics UNIX Portability File System Enhancements CRTL GNV Futures 3D06 GNV / bash in OpenVMS 2 www.decus.de 1

UNIX Portability (UP) - Rationale Many ISVs develop applications for both OpenVMS and UNIX/Linux platforms Applications are (or can be) ported from UNIX/Linux platforms to OpenVMS Operators, programmers, users may be more familiar with *NIX-style interfaces, commands, utilities and tools 3D06 GNV / bash in OpenVMS 3 UNIX Portability - Goal Provide a full set of UNIX interfaces and tools within OpenVMS In native, integrated fashion No layered emulator (e.g. old POSIX for OpenVMS product) No performance issues No interoperability issues 3D06 GNV / bash in OpenVMS 4 www.decus.de 2

UNIX Portability - Benefits Easy portability of UNIX applications to OpenVMS Easy development of applications intended to run on both UNIX and OpenVMS No need to train UNIX-skilled personnel on OpenVMS OpenVMS will optionally be like a UNIX flavor Cost of porting from UNIX to OpenVMS equal or comparable to porting from one UNIX flavor to another (e.g. from Solaris to Tru64) 3D06 GNV / bash in OpenVMS 5 But I like VMS the way it is!!! Current VMS behavior is preserved New UNIX Portability features typically need to be enabled Defaults preserve existing behavior C Run Time Library: UNIX features are enabled via logical name switches Old behavior is the default Legacy behavior is preserved Can also enable features via an API 3D06 GNV / bash in OpenVMS 6 www.decus.de 3

Tentative Schedule V7.3-1 Delivers first set of UNIX enabling technologies (CRTL, Commands & Utilities, File system) V7.3-2 New commands and utilities Continues delivery of UNIX enabling technologies Following releases New commands and utilities New features in CRTL and base O.S. (e.g. fork()) Final goal Complete UNIX compliance (e.g. UNIX 98) in OpenVMS 3D06 GNV / bash in OpenVMS 7 V7.3-x Contents File System Enhancements CRTL GNV 3D06 GNV / bash in OpenVMS 8 www.decus.de 4

V7.3-1 File System New Filesystem Features: ODS-5 only ODS-5 system disk Hard links (ODS-5 only) Time of last file access UNIX Style File Names $ SET PROCESS/CASE_LOOKUP={SENSITIVE,BLIND} Root Directory Problem: Code references a root directory / Solution: Virtual root directory in CRTL (SYS$POSIX_ROOT logical name) Mount Points 3D06 GNV / bash in OpenVMS 9 V7.3-1 C RTL Large file support 32-bit UID/GID (applications) TCP/IP enhancements New / Changed C RTL Functions scanf fseeko ftello... UNIX features enabled via logical name switches 3D06 GNV / bash in OpenVMS 10 www.decus.de 5

V7.3-2 C RTL POSIX Style Identifiers Socket Enhancements Set Default Directory for Child Processes Additional Feature Logicals Extended Command Line Length More new C RTL Functions File R/W, Print, Signal, Time, Password, Security Performance 3D06 GNV / bash in OpenVMS 11 GNV GNV: GNU s Not VMS GNU-based, UNIX environment for OpenVMS Open source, freeware product http://gnv.sourceforge.net/ Updated version included with OpenVMS or at: http://h71000.www7.hp.com/opensource/opensource.html Changes from sourceforge ODS-5 file system support Additional utilities ported and included Packaged as a HP-branded PCSI kit 3D06 GNV / bash in OpenVMS 12 www.decus.de 6

GNV Release for V7.3-1 Provides an environment for porting and running UNIX tools and software on OpenVMS Implementation of the UNIX shell BASH (Bourne Again Shell) Many UNIX-shell utilities General purpose Command manipulation Program creation User- and system-level administration File manipulation Text processing Printing Networking 3D06 GNV / bash in OpenVMS 13 GNV Release for V7.3-2 New Utilities bbzip2 gawk man Improved complier interfaces (cc,gcc) Working towards getting configure to work for any arbitrary Open Source package. IPF Port complete Negligible effort! Available in E8.1 time frame Native compiler support may lag behind 3D06 GNV / bash in OpenVMS 14 www.decus.de 7

GNV GNV V1.5-5 Kit on Open Source Tools CD V7.3-2 GNV V1.5-6 Kit at: http://h71000.www7.hp.com/opensource/opensource.html Documentation GNV Readme First Bash Reference Manual 3D06 GNV / bash in OpenVMS 15 GNV Installation Installation on ODS-5 disk strongly recommended OpenVMS V7.3-1 or higher $ PRODUCT INSTALL GNV /SOURCE= location Installation other than system disk $ PROD INSTALL... /DESTINATION= dev Another move after installation, modify dev:[sys$startup]gnv_destination.com 3D06 GNV / bash in OpenVMS 16 www.decus.de 8

GNV Setup Systemwide include in SYSTARTUP_VMS.COM $ @SYS$STARTUP:GNV$STARTUP.COM or $ @dev:[sys$startup]gnv$startup.com Each User $ @GNU:[LIB]GNV_SETUP.COM 3D06 GNV / bash in OpenVMS 17 GNV Tip Define DECC$PIPE_BUFFER_SIZE 65535 to maximize pipe capabilities New feature/parameter DECC$PIPE_BUFFER_QUOTA Exploits VMS 7.3-1 change that increases mailbox buffer quotas ($crembx:bufquo) Be careful given enough BYTLM, processes can quickly eat up virtual memory 3D06 GNV / bash in OpenVMS 18 www.decus.de 9

Using GNV Starting and leaving shell $ bash bash$ bash$ logout $ Single bash command $ bash c bash-command $ bash c ls $ bash c ls al $ 3D06 GNV / bash in OpenVMS 19 bash - Beispiel bash$ ls l total 1 -rwxr-x--- 1 AMMER 17 72 Apr 5 14:04 hello.c -rwxr-x--- 1 AMMER 17 82 Apr 5 14:04 makefile bash$ bash$ cat makefile hello : hello.c gcc -o hello.exe hello.c clean : rm -f hello.exe hello.o bash$ make gcc -o hello.exe hello.c bash$ 3D06 GNV / bash in OpenVMS 20 www.decus.de 10

bash - Beispiel... bash$ hello Hello There! bash$ bash$ dcl dir /date Directory STP:[TEST.TEST] HELLO.C;1 5-APR-2004 13:45:56.46 HELLO.EXE;1 5-APR-2004 14:05:20.67 HELLO.O;1 5-APR-2004 14:05:18.35 MAKEFILE.;2 5-APR-2004 14:04:58.85 MAKEFILE.;1 5-APR-2004 13:59:33.72 3D06 GNV / bash in OpenVMS 21 UNIX Portability Roadmap 2004 2005 2006 2007 OpenVMS V8.2 Symbolic Links CRTL APIs DCL support NFS support CRTL File Lock APIs statvfs/fstatvfs Stnd stat struct GNV 1.6 VI gnutar Continued configure and Make improvements OpenVMS V8.3 Byte range locking Semaphores Asynch I/O APIs GNV update OpenVMS V8.x Binary Tree ioctl() UNIX Compliant Signals GNV update OpenVMS UP future investigations Full function select() fork () Shared memory APIs Unix 98 compliance Note: Investigations are provided solely to inform what is being considered and should not be used as a deliverable commitment. 3D06 GNV / bash in OpenVMS 22 www.decus.de 11

Porting Experiences Some partners already using UP features (since V7.3-1) to port their applications to OpenVMS Experience #1 HP and a partner worked in HP lab to determine level of effort needed to port partner s application Summary of that effort follows on next slides 3D06 GNV / bash in OpenVMS 23 Porting Experiences Application architected to isolate OS specific features An OS interface layer A Network layer Source files maintained on partner s Linux system NFS served to OpenVMS system Team made extensive use of BASH make and sed used extensively Some minor changes to partner s make files, especially in the area of recursive make Successfully compiled and linked all modules, except missing semaphore routines ar used to populate object libraries Some difficulty with GNV linker, successfully used OpenVMS linker 3D06 GNV / bash in OpenVMS 24 www.decus.de 12

Porting Experiences (cont.) Successfully passed all tests Developer couldn't believe it - rewrote tests to add verification that it was actually executing properly Some things were missing, some hiccups Semaphore support Planned for V8.3 poll(), vsnprintf() Both implemented in V7.3-2 Some trouble with periods in directory names file and lex utilities not yet implemented in bash (planned) Overall, a positive experience Partner feels effort to port will be similar to other UNIX ports 3D06 GNV / bash in OpenVMS 25 Porting Experiences #2 Customer needed a solution for printing barcode labels Simple application, just print the barcode Very expensive to purchase products included more than customer needed Found simple, UNIX Open Source application Downloaded to OpenVMS 7.3-1 with BASH Ran build scripts Everything worked Minimal effort Not all will be this easy, but, this demonstrates the goal 3D06 GNV / bash in OpenVMS 26 www.decus.de 13

More Porting Experiences From the GNV developers list (July 2003): GNV is working better and better. I could "./configure" and "make install" the following packages (sometimes with little hacks): mktemp 1.5 hostinfo 2.2 patch 2.5.4 yacc 1.9.1 flex 2.5.4 bison 1.35 3D06 GNV / bash in OpenVMS 27 Contacts OpenVMS C RTL Project Leader: Brad.McCusker@hp.com UNIX Portability Web Site: http://h71000.www7.hp.com/portability/index.html 3D06 GNV / bash in OpenVMS 28 www.decus.de 14

Questions? www.decus.de 15