The Windows NT Registry

Total Page:16

File Type:pdf, Size:1020Kb

The Windows NT Registry Douglas A. Hamilton WINDOWS NT The Windows NT Registry ERHAPS THE LEAST • Provide a secure interface controlling access to all of this information understood Windows • Allow configuration information to be shared across a network NT feature is the reg­ • Support a standardized user inter­ P face via Control Panel istry. What the registry Several of these objectives arise from the view of Windows NT as a system de­ does is gather together all signed for a networked environment with lots of machines and lots of users. the information that the The NT design team imagines a world in which you might sit down in front of operating system needs to any machine on the network, log in and have it act indistinguishably from your know about the hardware own "home" machine. If you're the own­ er of the machine, it shouldn't be like having someone else drive your car, and (the type of processor, addresses of the peripheral con­ you find the seat's at the wrong height, the mirror's at the wrong angle and the trollers and so on), the system software (where the swap radio's on the wrong station. The result is a standardized database files are located, what time zone the machine is in, rec­ of information about your personal pref­ erences that can be shared in a secure ognized filename extensions and network protocols) manner across a network. With this in­ formation in the registry, as soon as you and each user (his or her preferred screen colors, envi­ log in, NT can go ask your own machine everything it needs to know about you. ronment variables and Program Manager choices). The No matter where you log in, it's just like home. And because it's secure, all that registry .also serves as a collection point for per-applica­ customization is still kept private, acces­ sible only to you even though it's avail­ tion information that otherwise would be scattered able to you anywhere you go. Internally, data is kept in the registry through myriad .INI files. in a tree structure rather like the file sys­ tem. To access any particular piece of in­ The objectives of the registry are to: formation you specify a path, called a key, for traversing down the tree from • Overcome the confusion of so many different spe­ one of four predefined starting points. Individual leaves of the tree, called val­ cial files typically used to configure other systems ues, typically contain a name (thoug:h some values can be unnamed) plus the • Structure configuration information so that it can binary or character string data associated with that name. The four predefined be separated by system, user and application starting points are: WINDOWS M AGAZINE • MAY 1993 225 Douglas A. Hamilton Figure 1. setreg.c: #include <windows.h> "Environment", 0, KEY_READ, &h); HANDLE Stdout, Stderr; if (rc == ERROR_SUCCESS) char*cmd; { DWORD cmdlen; rc = RegOueryValueEx(h, name, NULL, &type, void error( DWORD rc, char *msg) value, &valuelen); { if (rc == ERROR_SUCCESS) DWORD bytes; { WriteFile(Stderr, cmd, cmdlen, &bytes, NULL); WriteFile(Stdout, name, namelen, &bytes, WriteFile(Stderr, msg, strlen(msg), &bytes, NULL); NULL); i = namelen < 12? 13- namelen: 1; ExitProcess( rc); WriteFile(Stdout, spaces, i, &bytes, } NULL); DWORD DumpRegistry( void ) value[valuelen++] = '\r'; { value[valuelen++l = '\n'; /* Dump out all the environment variable:; WriteFile(Stdout, value, valuelen, shown in the registry. */ &bytes, NULL); HKEY h; } DWORD i, rc, namelen, valuelen, type, bytes; char name[MAX_PATH + 1]. value[4096 + 2]; return rc; rc = RegOpenKeyEx(HKEY_ CURRENT_ USER, "Environment", 0, KEY_READ, &h); DWORD SetVariable( char * name, char * value, if (rc == ERROR_SUCCESS) DWORD valuelen, DWORD type ) { for (i = 0; namelen = sizeof(name)- 1, HKEYh; valuelen = sizeof(value)- 2, DWORDrc; (rc = RegEnumValue( h, i, name, rc = RegOpenKeyEx(HKEY_ CURRENT_ USER, &namelen, NULL, &type, value, " Environment", 0, KEY _WRITE, &h); &valuelen)) == ERROR_SUCCESS; i++) if (rc == ERROR_SUCCESS) { rc ~ RegSetValueEx(h, name, 0, type, value, register char *t; valuelen); for (t = name + namelen; t < name + 12; return rc; *t++ = ' ') void main( void ) *t++ = ' '; WriteFile(Stdout, name, t - name, register char *c; &bytes, NULL); register DWORD rc; value[valuelen++] = '\r'; register BOOL got_equal; value[valuelen++] = '\n'; Stderr = GetStdHandle(STD_ERROR_HANDLE); WriteFile(Stdout, value, valuelen, if (Stderr == INVALID_HANDLE_VALUE) &bytes, NULL); ExitProcess(GetLastError()); } cmd = c = GetCommandLine(); if (rc == ERROR_NO_MORE_ITEMS) while (*c && *c != '' && * c != '\t') rc = 0; C++; cmdlen = c - cmd; return rc; while (*c == '' II *c == '\t') C++; DWORD DumpVariable( char * name, DWORD namelen ) Stdout = GetStdHandle(STD_OUTPUT_HANDLE) ; { if (Stdout == INVALID_HANDLE_VALUE) HKEY h; error( GetLastError(), char value[ 4096 + 2]; ": Couldn't open Stdout\r\n"); DWORD i, rc, valuelen = sizeof(value) - 2, if (*c == 0) type, bytes; /* Dump out all the environment variables static char spaces[12] = " "; in the registry. */ rc = RegOpenKeyEx(HKEY_CURRENT_USER, rc = DumpRegistry(); (Continued on page 227) 226 WINDOWS M AGAZINE • M AY 1993 Douglas A. Hamilton (Continued from page 226) Figure 1. setreg.c: else extra whitespace and watching for %'s. *I for (t = c; *c; *t++ = *c++) . register char * name = c; switch (*c) DWORD namelen; while (*c && *c !=' ' && *c != '\t' && *c != '=') inside_quotes = !inside_quotes; C++; C++; namelen = c- name; break; while (* c == '' II *c == '\t') case'\\': C++; if (c[1] == '\\' && if (got_equal = *c == '=') c[2] == "") { C++; I* Skip over any = followed by any break; spaces. *I case'': C++; case '\t': while (*c =='' II ·•c == '\t') if (! inside_quotes) C++; while (c[1] == ''II c[1] == '\t') if (*c == 0 && !got_equal) C++; I* Dump out just the one variable break; specified. *I case'%': rc = DumpVariable(name, namelen); type= REG_EXPAND_SZ; else } *t= 0; I* Set the variable to the specified name[namelen] = 0; value *I rc = SetVariable(name, value, t- value, register char *t, *value= c; type); register DWORD type = REG_SZ; } register BOOL inside_quotes =FALSE; I* First scan the value, fixing up any ExitProcess(rc); backslashes used as escapes, dropping } • HKEY_LOCAL_MACHINE, which There are registry functions (Lookup­ best way to answer that is just to open contains information about the machine AccountName and LookupAccountSid) up the registry with RegEdit and try to itself and the hardware and software for converting back and forth between make your own guesses. that's been installed user names and SIDs, but HKEY_CUR­ Also, the user interface to the registry is • HKEY_USERS, which describes the RENT_USER lets you gain access to your meant to be via the applets in Control default environment for a new user and own custornization information without Panel. Clearly, not all the applets are fin­ the customized environments for exist­ having to do that translation between ished yet; for now, some changes can be ing users SIDs and names. made only with RegEdit. But make a • HKEY_CLASSES_ROOT, a synonym Admittedly, we are still looking at change incorrectly, and you've got a sys­ for HKEY _LOCAL_MACHINE \SOFT­ work-in-progress in the October beta, so tem that won't boot and can't easily be WARE\Classes, which lists all the known there are some rough spots (hopefully, by fixed; following one of my own failed ex­ file type extensions the time you read this, the next beta periments a few months back, I had to re­ • HKEY_CURRENT_USER, a synonym should be available and will most likely sign myself to a complete reinstallation. for HKEY_USERS\<sid>, where <sid> is a be more complete than this one). One Another problem with the Control long gobbledygook string giving the such rough spot is that, while the overall Panel applets is that they are only graphi­ unique security identifier (SID), rather architecture of the registry is fairly clear, cal. There are no provisions for manipu­ like a Social Security number, for a partic­ some of the details are not. For example, lating the registry from a batch file, for ular user. For example, on my what are the individual names of all the example- which brings us to a discus­ OlivettiiMIPS machine, my SID is S"1-S- nodes in the registry and just what infor­ sion about the programming interface to 21-242430772-281344-854032384-SOO. mation should go where? Right now, the the registry and a couple of tiny utilities W INDOWS MAGAZINE • MAY 1993 227 Douglas A. Hamilton Figure 2. unsetreg.c: #include <windows.h> C++; #include <string.h> if (* c == 0) HANDLE Stdout, Stderr; error(ERROR_INVALID_PARAMETER, char *cmd; ": Can't unset a nulllist.\r\n"); DWORD cmdlen; Stdout = GetStdHandle(STD_OUTPUT_HANDLE); void error( DWORD rc, char * msg ) if (Stdout == INVALID_HANDLE_VALUE ) { error(GetLastError(), DWORD bytes; " : Couldn't open Stdout\r\n"); WriteFile(Stderr, cmd, cmdlen, &bytes, NUILL); rc = RegOpenKeyEx(HKEY_ CURRENT_ USER, WriteFile(Stderr, msg, strlen(msg), &bytes, " Environment", 0, KEY_WRITE, &h); NULL); if (rc == ERROR_SUCCESS) ExitProcess(rc); { } register char * name, savech; void main( void ) do HKEY h; name=c; register char *c; w hile (*c && *c != ' ' && * c != '\t') register DWORD rc; C++; Stderr = GetStdHandle(STD_ERROR_HANDLE); savech = *c; if (Stderr == INVALID_HANDLE_VALUE) *C++= 0; ExitProcess( GetLastError()) ; RegDeleteValue(h, name); cmd = c = GetCommandline(); } while (*c && * c !='' && * c != '\t') while (savech); C++; } cmdlen = c - cmd; ExitProcess( rc); while (*c =='' II *c == '\t') } for setting the environment variables setting a value. Also, if we're setting a Above, Figure 2 contains the compan­ you'll see every time you log in from the variable, we'll need to watch for %-style ion utility, called unsetreg.c. This utility command line or a batch file. references to other variables in the value deletes variables. Once again, the first Figure 1 contains setreg.c, a utility that we're giving it so we can tell the reg­ step is to open a handle to the environ­ used for setting an environment variable, istry those should be expanded later. ment key; unsetreg then iterates over the dumping a particular variable's value or Whether we're reading or writing to list of names it's given, calling dumping all the variables.
Recommended publications
  • Examining the Hamilton C Shell
    EXAMINING ROO M Examining the Hamilton C Shell Unix power for OS/2 Scott Richman tarting OS/2 for the first time was, file system), long filenames, and threads. in the background and the server will for me, like unlocking a Ferarri, Additionally, the Shell supports large be kept busy. sitting behind its wheel and find­ command lines and pipes (up to 64K) ing a Yugo's dash. What a disap­ and includes faster and more powerful Supporting Procedures pointment. Sure, the engine and utilities than those supplied with OS/2. Script programmers can create C Shell suspensionS were first rate, but the con­ This is more than Unix - this is a pow­ procedures, which are more like func­ trols were minimal, the clutch was stiff, erful requirement for development un­ tions: They accept a parameter list and and the pedals were nonresponsive! der OS/2. The ability to execute C shells return a value. These procedures are OS/2 comes with great stuff, but CMD simultaneously in different Presenta­ compiled into C Shell memory and are .EXE, the default command-line pro­ tion Manager (PM) text windows con­ then executed as new shell commands. cessor, is poor compared to the pow­ verts your PC into a flexible workstation. Procedures can greatly extend the erfuloperating system beneath. CMD.EXE The Hamilton C Shell comes with power and flexibility of your environ­ appears to be a port of the MS-DOS many programs and shell scripts. To ment. COMMAND.COM and lacks the major install the Shell, you simply copy the As an example, consider ZCW.CSH features of a serious front end.
    [Show full text]
  • Unix and Linux System Administration and Shell Programming
    Unix and Linux System Administration and Shell Programming Unix and Linux System Administration and Shell Programming version 56 of August 12, 2014 Copyright © 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014 Milo This book includes material from the http://www.osdata.com/ website and the text book on computer programming. Distributed on the honor system. Print and read free for personal, non-profit, and/or educational purposes. If you like the book, you are encouraged to send a donation (U.S dollars) to Milo, PO Box 5237, Balboa Island, California, USA 92662. This is a work in progress. For the most up to date version, visit the website http://www.osdata.com/ and http://www.osdata.com/programming/shell/unixbook.pdf — Please add links from your website or Facebook page. Professors and Teachers: Feel free to take a copy of this PDF and make it available to your class (possibly through your academic website). This way everyone in your class will have the same copy (with the same page numbers) despite my continual updates. Please try to avoid posting it to the public internet (to avoid old copies confusing things) and take it down when the class ends. You can post the same or a newer version for each succeeding class. Please remove old copies after the class ends to prevent confusing the search engines. You can contact me with a specific version number and class end date and I will put it on my website. version 56 page 1 Unix and Linux System Administration and Shell Programming Unix and Linux Administration and Shell Programming chapter 0 This book looks at Unix (and Linux) shell programming and system administration.
    [Show full text]
  • Curriculum Vitae of Nicole Ashley Hamilton
    Nicole Hamilton Computer Science and Engineering University of Michigan 2649 Beyster 2260 Hayward Street Ann Arbor, MI 48109-2121 [email protected] https://web.eecs.umich.edu/~nham/ Summary Lecturer in computer science and engineering at University of Michigan. Previously, lecturer in electrical engineering at University of Washington Bothell. Founder of Hamilton Laboratories and author of Hamilton C shell, a software tools package for developers on Windows. Wrote the query language and ranker for the first release of Microsoft’s Bing search engine. Expertise in digital design, Verilog, C, C++, embedded systems, processors, device drivers, compilers, circuits, transistors, search engines, OS concepts, algorithms, heuristics, Linux, program management, intellectual property, licensing. Education MBA valedictorian, High Honors, Boston University, May 1987. BS and MS, Electrical Engineering, Stanford University, June 1973. Experience Sep 2017 to Present Lecturer III, Computer Science and Engineering University of Michigan, Ann Arbor Instructor for EECS 280, C++ and Object-Oriented Programming, and EECS 398, System Design in C++, a course I created where students work in teams of five or six to build a whole search engine from scratch. Also serve on our program committee and as an undergraduate advisor. Jun 2013 to Jun 2017 Lecturer, Electrical Engineering University of Washington Bothell Instructor for BEE 271, Digital Design with Verilog, BEE/CSS 371 Business of Technology, a course on entrepreneurship, and the labs for BEE 233 Circuits, BEE 332 Transistors and BEE 425 Microprocessors. Adviser to numerous teams on their senior Capstone projects. Past teams have built a diagnostic tool for large trucks (PACCAR), a pulse width modulated motor controller using a PIC 18F4550, a DSP for an ECG using a Zynq-7000 (both Phillips) and an SDRAM controller in Verilog for the open source mips32r1 soft processor (IEEE Nexus).
    [Show full text]
  • Dcap106 Operating Syste
    1 ** 23# Edited by: Dr. Avinash Bhagat www.lpude.in DIRECTORATE OF DISTANCE EDUCATION OPERATING SYSTEM TOOLS Edited By Dr. Avinash Bhagat Printed by EXCEL BOOKS PRIVATE LIMITED A-45, Naraina, Phase-I, New Delhi-110028 for Lovely Professional University Phagwara SYLLABUS Operating System Tools Objectives: To enable the student to understand technicalities of Linux including installation, troubleshooting, shell programming, file system, managing servers and internet communication. Sr. No. Topics 1. Installing Linux: Preparing for the installation, The installation, Root account configuration. 2. Red Hat Linux 9 Basics: Moving around the desktop, Using applications, The file system, hierarchy, Navigating in the file system, Managing Hardware, Configuring the desktop, Managing processes, Managing Users. 3. Connecting to the Internet: Connecting to the Internet, Managing Multiple ISPs and connections, Software and configuration. 4. Installing Software: RPM, its benefits, The RPM command line tool. 5. Everyday Applications: Office applications, Internet applications, Personal information management. 6. Everyday Applications: Multimedia applications, System applications. 7. The Shell: The Shell as a command line interface, types of shell, Built-in programs and external programs. 8. The Shell: Common Shell commands , Special keys and shortcuts, Command line syntax. 9. The File System: The File System, anatomy of a file, File Search Utilities, locate command, find command, GNOME, Navigating file system . 10. Servers: Introduction to DNS, FTP,
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Introducción a Consola
    Introducci´ona consola Introducci´ona consola \La consola es tu amiga" Diego Fanego y Patricio Morenoy Rodrigo Ubal Dahlyz Cynthia Gamarrayz yFacultad de Ingenier´ıa(UBA) zLABI 27 de abril de 2017 Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola LABi >Qu´ese puede hacer en el labi? Estudiar Hacer TPs Pedir herramientas Usar herramientas del pa~nol Pedir libros de la biblioteca especializada Tomar mate/comer Dejando siempre las mesas limpias :) Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Cursos del LABi Soldadura (Intro, t´ecnicadigital, labo de micros, circuitos) Software libre: LATEX(Todas las materias donde haya que presentar informes, papers, tesis) Octave (An´alisisde circuitos, procesos estoc´asticos,se~nales, redes neuronales) KiCad (Labo de micros, circuitos) Introducci´ona la consola OpenSCAD Software gratuito: LTSpice (An´alisisde circuitos, circuitos) Y otros... Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Introducci´ona consola Tabla de Contenidos Fanego, Moreno, Ubal Dahl, Gamarra Facultad de Ingenier´ıa(UBA), LABI Introducci´ona consola Crear directorios Buscar archivos Procesar informaci´on Entender un poco m´as nuestro sistema de archivos Introducci´ona consola Introducci´on Objetivo Navegar el sistema de archivos Fanego, Moreno,
    [Show full text]
  • List of Programming Languages
    List of programming languages The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order. Dialects of BASIC, esoteric programming languages, and markup languages are not included. 0–9ABCDEFGHIJKLMNOPQRSTUVWXYZ Contents: See also A A.NET ALGOL W A-0 System Alice A+ Alma-0 ABAP AmbientTalk ABC Amiga E ABC ALGOL AMOS ACC AMPL Accent AngelScript Ace DASL (Distributed Application Apache Pig latin Specification Language) Apex Action! APL ActionScript App Inventor for Android's visual block Actor language Ada AppleScript Adenine APT Agda Arc Agilent VEE ARexx Agora Argus AIMMS Assembly language Aldor AutoHotkey Alef AutoIt ALF AutoLISP / Visual LISP ALGOL 58 Averest ALGOL 60 AWK ALGOL 68 Axum B B BASIC Babbage Batch file (Windows/MS-DOS) Ballerina bc Bash BCPL BeanShell BlooP Bertrand Boo BETA Boomerang BLISS Bosque Blockly C C – ISO/IEC 9899 CLU C-- (C minus minus) CMS-2 C++ (C plus plus) – ISO/IEC 14882 COBOL – ISO/IEC 1989 C* CobolScript – COBOL Scripting language C# (C sharp) – ISO/IEC 23270 Cobra C/AL CoffeeScript Caché ObjectScript ColdFusion C Shell (csh) COMAL Caml Combined Programming Language (CPL) Cayenne COMIT CDuce Common Intermediate Language (CIL) Cecil Common Lisp (also known as CL) Cesil COMPASS Céu Component Pascal Ceylon Constraint Handling Rules (CHR) CFEngine COMTRAN Cg Cool Ch Coq Chapel Coral 66 Charm CorVision CHILL COWSEL CHIP-8 CPL chomski Cryptol ChucK Crystal Cilk Csound CL (IBM) Cuneiform Claire Curl
    [Show full text]
  • Von Der Linux Bash Bis Zum Cloud Development
    Von der Linux Bash bis zum Cloud Development Kit Matthias Fuchs, @hias222 DOAG Konferenz, Nürnberg, 2019/11/20 Agenda • Basics – Scripting – Shell – Von Funktional bis Deklarativ – Die Toolwelt • Ziele • Szenarios – Ausführen eines Jobs – Bereitstellen einer Applikation mit Server – Eine Umgebung - Die Cloud • Clean Code • Programming in Scripting 3 Von Bash bis CDK Scripting Shell 1976 Thompson shell sh 1971 CCP (CCP) (1974) Bourne shell 1977 version sh 1977 OS/2 CMD.EXE CMD 1987 Bourne shell current version sh 1977 Windows CMD.EXE[nb 5] CMD 1993 POSIX shell[6] sh 1992[7] 1989 4DOS, NDOS 4DOS, NDOS (1986) bash (v4) bash, sh 1989[8] 4OS2 4OS2 1992 csh csh 1978 TCC (formerly 4NT) TCC 1993 tcsh tcsh, csh 1983[10] login/interacti VMS DCL[20] ve 1977? Hamilton C shell csh 1988[11] PowerShell PowerShell 2006 Scsh scsh 1994 rc rc 1989 Quelle: ksh (ksh93t+) ksh 1983[12][13] BeanShell ? 2005 Wikipedia pdksh ksh, sh 1989? fish fish 2005[21] command zsh zsh 1990 Ion ion 2015[22] shells ash sh 1989 Von Bash bis CDK Shell Beispiel #!/bin/functionscripte_kopierenbashsend_message { #_______________________________________________________send_messageretVal=$1$? scripte_kopieren ________________________________________________________subject=$2 __________createfolderstructuremessage="$HOSTNAME $3" #send_messageif [ $retVal$? createfolderstructure-ne 0 ]; then source $sourcedir/send_msg.sh "$HOSTNAME" "${subject}" "failure $ servicedir{postfixinstallationmessage}"=/errorhome/ubuntubase /bhs/services downloaddirsend_messageelse=/home$? Postfixinstallation/ubuntu/bhs/downloads
    [Show full text]
  • Unix Users's Guide
    Unix Users’s Guide i Unix Users’s Guide September 13, 2021 Unix Users’s Guide ii Copyright © 2013 Jason W. Bacon, Lars E. Olson, SeWHiP, All Rights Reserved. Permission to use, copy, modify and distribute the Unix User’s Guide for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. Unix Users’s Guide iii COLLABORATORS TITLE : Unix Users’s Guide ACTION NAME DATE SIGNATURE WRITTEN BY Jason W. Bacon September 13, 2021 Unix Users’s Guide iv Contents 1 Using Unix 1 1.1 Keep It Simple, Stupid . .1 1.2 What is Unix? . .2 1.2.1 Aw, man... I Have to Learn Another System? . .2 1.2.2 Operating System or Religion? . .4 1.2.3 The Unix Standard API . .7 1.2.4 Shake Out the Bugs . .8 1.2.5 The Unix Standard UI . .9 1.2.6 Freedom of Choice . .9 1.2.7 Fast, Stable and Secure . .9 1.2.8 Sharing Resources . 10 1.3 Self-test . 10 1.4 Unix User Interfaces . 10 1.4.1 Graphical User Interfaces (GUIs) . 10 1.4.2 X11 on Mac OS X . 13 1.4.3 Command Line Interfaces (CLIs): Unix Shells . 13 1.4.4 Terminals . 15 1.4.5 Basic Shell Use . 16 1.4.6 Self-test . 17 1.5 Still Need Windows? Don’t Panic! . 18 1.5.1 Cygwin: Try This First . 18 1.5.2 Windows Subsystem for Linux: Another Compatibility Layer . 31 1.6 Logging In Remotely .
    [Show full text]
  • The Research Computing User's Guide
    The Research Computing User’s Guide i The Research Computing User’s Guide September 13, 2021 The Research Computing User’s Guide ii COLLABORATORS TITLE : The Research Computing User’s Guide ACTION NAME DATE SIGNATURE WRITTEN BY Jason W. Bacon September 13, 2021 Initial HTcondor Lars Olson September 13, 2021 content The Research Computing User’s Guide iii Contents 1 Goals 2 2 Self-Study Instructions 3 2.1 Unix Self-Study Instructions . .3 2.2 Parallel Computing Self-Study Instructions . .3 I Research Computing4 3 Computational Science 5 3.1 So, What is Computational Science? . .5 3.2 Not Just for Nerds Anymore . .5 3.3 Achieving Our Goals . .5 3.3.1 The Computation Time Line . .5 3.3.2 Development Time . .6 3.3.3 Deployment Time . .6 3.3.4 Learning Time . .6 3.3.5 Run Time . .6 3.4 Common Methods Used in Computational Science . .6 3.4.1 Numerical Analysis . .6 3.4.2 Computational Modeling . .7 3.4.3 Data Mining . .8 3.4.4 Parameter Sweeps . .8 3.4.5 Data Sifting . .9 3.4.6 Monte Carlo . .9 3.4.7 Everything Else . 10 3.5 Self-test . 10 The Research Computing User’s Guide iv 4 Where do I get the Software? 11 4.1 But I Hate Programming... 11 4.2 BuyIt......................................................... 12 4.3 Download It . 12 4.3.1 How to Shoot Yourself in the Foot with Open Source Software . 13 4.3.2 How Not to Shoot Yourself in the Foot with Open Source Software .
    [Show full text]
  • OS/2, Unix Style
    INTERNATIONAL EXTRA REVIEW OS/2, Unix Style Tom Yager he promise of OS/2 is to release Hamilton C Shell This rule doesn't always apply, how­ users and developers alike from ever. While both shells provide the abil­ the shackles of8088-compliant ity to run processes in the background, Tenvironments. Lifting the 640K­ andMKSOSI2 the Hamilton C Shell offers a more Unix­ byte memory restriction opened the door like implementation. With the C Shell, to all kinds of more potent applications. Toolkit provide you can list background jobs with ps and In this case, the applications are a pair of terminate them with kill (Unix com­ Unix-type shells that add command-line mandsthat the MKS Toolkit does not and interpreted language-processing ca­ Unix-like shells provide). In fact, background jobs pabilities to OS/2. started from the MKS Toolkit shell seem Hamilton Laboratories has created its !orOS12 unstoppable. own version of the popular Berkeley C shell, the Hamilton C Shell 1.04. Its Command-Line Processing name is derived from the C-like syntax of The ability to interactively edit the com­ its shell scripts. Mortice Kern Systems' mand line is something relatively new, MKS OS/2 Toolkit 3. 1 includes a port of start-up commands from a home direc­ even to Unix. The standard Unix C shell AT&T's Kornshell (named for the shell's tory. OS/2 has no concept of separate doesn't have this capability, although original author, David Korn). This shell users, so this home directory is defined modified versions exist that can handle is a superset of an older AT&T invention, through an environment variable.
    [Show full text]
  • Zsh: Power Tools
    zsh: Power Tools. Because having all your fingers is overrated. zsh: Power Tools. Because having all your fingers is overrated. Paul L. Snyder <[email protected]> January 12, 2009 zsh: Power Tools. Because having all your fingers is overrated. zsh: Power Tools. Because having all your fingers is overrated. A non-partisan guide to shell selection zsh: Power Tools. Because having all your fingers is overrated. sh * The original Bourne shell * Written by Stephen Bourne for Version 7 Unix in 1977 * Usually, your ’/bin/sh’ is another shell running in compatibility mode Why should I use it? * You are writing a "portable" shell script * Your life will still be hell * If you’re writing a large system, use a real programming lanugage (Perl, Python, etc.) zsh: Power Tools. Because having all your fingers is overrated. ksh * David Korn’s Korn shell * MUCH better for programming than sh or *shudder* csh * Some interactive improvements * Two major versions, ksh88 and ksh93 (finally open-sourced in 2000) * The FSF released pdksh (mostly ksh88-compatible) Why should I use it? * Misguided nostalgia zsh: Power Tools. Because having all your fingers is overrated. csh * The "C" shell * Ha! * Introduced many now-standard interactive features (job control, aliases, !-substitution * Nastily brain-damaged scripting behavior * Csh Programming Considered Harmful: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot * Implementations were historically very buggy * The modern (and proprietary) Hamilton C Shell brings the glory of csh to Windows. Why should I use it? * You are an idiot. zsh: Power Tools. Because having all your fingers is overrated.
    [Show full text]