Design Developing Software on Linux Tim Marriott Mel Nicholson ICCAD 2003.

Slides:



Advertisements
Similar presentations
PC Operating Systems in Review lesson 12. UNIX DOS The Macintosh Operating System Windows 3.x OS/2 Warp Windows NT Windows 95 and 98 Linux Windows 2000.
Advertisements

Technology Analysis LINUX Alper Alansal Brian Blumberg Ramank Bharti Taihoon Lee.
C++ Development on Linux Agenda Introduction Editors Debuggers GUI IDEs Make Automake Exploring further.
Installation and use of Linux as a client and server operating system: a tutorial AMCIS 99Al Bento.
C Compilers & IDEs When faced with a decision, I always ask, "What would be the most fun?" Peggy Walker In the name of God © 2006 NematAllah Ahmadyan.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
'08 Rabat Why are we using FreeBSD? Scaleable Services Workshop AfNOG 2008 Rabat, Morocco slides by Hervey Allen presented by Joe Abley.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Module 1 Introduction to Network Operating Systems
CS 497C – Introduction to UNIX Lecture 3: Inside UNIX Chin-Chih Chang
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 1 Introduction to Managing the SUSE Linux Enterprise Server.
Overview Basic functions Features Installation: Windows host and Linux host.
Chapter 2: Exploring the Desktop The Complete Guide to Linux System Administration.
Chapter 6 Introduction to Network Operating Systems 6.1 Characteristics of a Network Operating System 6.2 Windows 6.3 Linux 6.4 Determining Software Requirements.
LESSON 1 INTRODUCTION Compiled By: Edwin O. Okech [Tutor, Amoud University] JAVA PROGRAMMING.
Linux Operating system
Unix Presentation. What is an Operating System An operating system (OS) is a program that allows you to interact with the computer -- all of the software.
3/4/2003 WMRedHat /4/2003 WMRedHat - 02 redhat Linux redhat Enterprise Linux Personal OS = $39.95 Professional OS = $ A dvanced S erver =
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Introduction COMP104: Fundamentals and Methodology.
Lesson 6 Operating Systems and Software
1 ITGS – Software Basic Food for Thought: Recipe for food Precise steps How many steps Processing with Programs 1.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Guide to Linux Installation and Administration, 2e1 Chapter 3 Installing Linux.
LINUX System : Lecture 3 Vmware, Cygwin, LINUX installation Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
The PC The PC is a standard computing platform, built around a EISA bus (1988) –IBM compatible –“Intel Architecture” from Intel or AMD or other companies.
Overview of Linux Dr. Michael L. Collard 1.
CENT 305 Information Systems Security Linux Introduction.
13 th May 2004LINUX, which LINUX?1 Presentation to the AB/CO Technical Committee – Linux as the Future Console O/S Alastair Bland, 13 th May 2004.
An Introduction to Linux Name: Haixin Wang ID :
Developing C/C++ applications with the Eclipse CDT David Gallardo.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Using Virtual Servers for the CERN Windows infrastructure Emmanuel Ormancey, Alberto Pace CERN, Information Technology Department.
UNIX (Linux) Introduction Module-1. OS Kernel In computing, the kernel is the central component of OS. It is a bridge between applications and the actual.
Session 1 Introduction to Java. Objectives Java Simplified / Session 1 / 2 of 32 Explain the history of Java Explain Java in brief List the types of Java.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
IT320 OPERATING SYSTEM CONCEPTS Unit 3: Welcome to Linux September 2012 Kaplan University 1.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
리눅스 : Lecture 3 Vmware, Cygwin, LINUX 설치 Acknowledgement : notes from A. Gokhale, A, Taylor.
Application Debugging. Debugging methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic.
Debugging 1/6/2016. Debugging 1/6/2016 Debugging  Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a program.
Made By: Micheal Mouner Linux VS Windows. Agenda.
Byoung-Jo CHOI Fall 2007 SW Project II Advanced Linux Programming.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Gorman, Stubbs, & CEP Inc. 1 Introduction to Operating Systems Lesson 8 Linux.
Computer Operating Systems And Software applications.
System Requirements  Supports 32 bit i586 and 64 bit x86-64 PC hardware.  PowerPC(PPC) processors.  RAM: 256 MB minimum, 512 MB recommended.  Hard.
This slide deck is for LPI Academy instructors to use for lectures for LPI Academy courses. ©Copyright Network Development Group Module 01 Introduction.
Virtual Server Server Self Service Center (S3C) JI July.
Linux and Coldfusion MX Mid-Michigan Coldfusion User’s Group, Nov
Operating System Basics. Outline The User Interface Running Programs Managing Files Managing Hardware Utility Software.
Linux Essentials Chapter 1: Selecting an Operating System.
CrossOver and Wine Jeremy White CEO, Codeweavers, Inc.
IT320 Operating System Concepts
Object Oriented Programming in
Virtualization for Cloud Computing
Processing with Programs 1
Operating System & Application Software
Guide to Linux Installation and Administration, 2e
PC Operating Systems in Review
Introduction Enosis Learning.
Chapter 6 Introduction to Network Operating Systems
HP C/C++ Remote developer plug-in for Eclipse
Chapter 2: Operating-System Structures
Introduction Enosis Learning.
PC Operating Systems in Review
Graphic Libraries for The User Interface
Presentation transcript:

Design Developing Software on Linux Tim Marriott Mel Nicholson ICCAD 2003

© 2003 Synopsys, Inc. (2) Introduction Why Linux? Porting to Linux Developing on Linux

© 2003 Synopsys, Inc. (3) Why Linux? The question should be “Why the PC?”  Inexpensive Performance What is wrong with Windows as the OS?  It is too different from Unix  Major EDA software runs on Unix  The initial port is tough and the continued support is difficult Linux is a robust OS that is very close to Unix  The initial port is easy and the continued support is also easy  It is in the right place at the right time

© 2003 Synopsys, Inc. (4) Why Linux? We port to Linux because customers want it  Fast Hardware  Inexpensive Hardware  It’s an easy port We develop on Linux because it increases our productivity  Fast Hardware  Inexpensive Hardware  Not a steep learning curve for our developers

© 2003 Synopsys, Inc. (5) Porting to Linux Porting Overview What Linux to choose? Problems with the Linux Support Story The Enterprise is Coming Porting Issues Encountered

© 2003 Synopsys, Inc. (6) Porting Overview Linux is really just another flavor of Unix  The port was not difficult  The issues encountered were no more difficult than between flavors of Unix Very few problems were encountered OS and hardware configuration took the most time to get right

© 2003 Synopsys, Inc. (7) What Linux to Choose? Versioned Linux was the gating factor to delivering a port  Can’t base a product on all variants of the OS that the open source community produces Various companies supply versioned variants of Linux  Red Hat, SuSE, Caldera, Mandrake  Synopsys chose Red Hat

© 2003 Synopsys, Inc. (8) Problems with the Linux Support Story Linux companies didn’t deliver a true enterprise support structure  Versions are not compatible  No long term support of versions  No compatibility guarantees between patches  Versions release very often ISV’s stay with old versions for long periods of time  Synopsys is still based on Red Hat 7.2 Linux companies have recognized the flaw  Enterprise versions are becoming available  Consumer versions are unfriendly to business

© 2003 Synopsys, Inc. (9) The Enterprise is Coming Red Hat now only supports an Enterprise version  Yearly subscription based support  Guaranteed binary and API compatibility between versions  months between major releases Cost will increase  Stability will offset the additional cost  Red Hat Enterprise Linux WS $179 - $299 on x86 $792 on Itanium and AMD64 Information on this slide from

© 2003 Synopsys, Inc. (10) Porting Issues Encountered Calling fclose() on a file that is not open crashes  Be sure to only call fclose() once per open file Binary files are not platform independent due to Little Endian byte order  Must decide where you want to handle the conversion when reading/writing binary files

© 2003 Synopsys, Inc. (11) Porting Issues Encountered Gcc doesn’t increment i++ until the end of the statement  result = foo(x[i++], x[i]);  Increment some other way i and i+1 is one option C compiler has problems with nested function calls and function calls in “if” statements  Use separate statements instead

© 2003 Synopsys, Inc. (12) Porting Issues Encountered “/bin” and “/usr/bin” are separate directories  Make sure command location is defined for Linux Default sorting order is not the same  Set environment variable LC_ALL to C

© 2003 Synopsys, Inc. (13) Porting Issues Encountered Can’t initialize global scope to be stdout or stdin  stdout/stdin are not constant expressions and are therefore not suitable for initialization If a NULL pointer is passed to fclose it will crash  Check the pointer if (fd) fclose(fd);

© 2003 Synopsys, Inc. (14) Porting Issues Encountered intptr_t is not defined in int_types.h  It is defined in stdint.h SIGEMT is not defined  Do not use SIGEMT

© 2003 Synopsys, Inc. (15) Porting Issues Encountered The default floating point precision varies  Uses native support of underlying hardware  Different results for register operation versus loaded  Makes golden-file based regression testing difficult  IEEE compliance options incur a performance penalty

© 2003 Synopsys, Inc. (16) Developing on Linux Linux Development Model Office Productivity Tools Developer Tools GUI Development

© 2003 Synopsys, Inc. (17) Linux Development Model Windows Desktop 2 CPU 4 GB Memory Linux Box Computer Room Exceed Vnc SCM Data Servers Big Local Disk

© 2003 Synopsys, Inc. (18) Office Productivity Tools Windows Desktop avoids the office productivity tool issues  OpenOffice and StarOffice available on Linux MS Office compatible  CodeWeavers CrossOver Office Allows MS Office to run directly on Linux  VMware dual operating system capable

© 2003 Synopsys, Inc. (19) Developer Tools Compilers  Gnu (gcc, g++)  Intel Compilers Debuggers  gdb  Graphical front end, ddd

© 2003 Synopsys, Inc. (20) Developer Tools Editors (IDE’s)  Emacs, Vim Highly configurable editors Can tightly integrate gdb and SCM systems  Kdevelop Full integrated MS Visual C++ style IDE Source Control Systems  Clearcase, Perforce, CVS, RCS

© 2003 Synopsys, Inc. (21) Developer Tools Memory Debug  Purify (Available Soon)  Valgrind Performance  Quantify (Available Soon)  Kcachegrind

© 2003 Synopsys, Inc. (22) Developer Tools Test Coverage  Purecov (Available Soon)  Gcov Scripting Language  Perl, Tcl/Tk, Python, JavaScript

© 2003 Synopsys, Inc. (23) GUI Development Native GUI toolkits available  Gnome GTK+ is a C based public domain toolkit  LessTiff is Motif compatible library  Tcl/Tk provides scripting type capabilities  Java, AWT or Swing  Qt is a C++ class library commercially available from Trolltech KDE is written in Qt Portable across Linux/Unix/Windows platforms Public Domain version available Synopsys standardized on Qt

© 2003 Synopsys, Inc. (24) Summary The PC has given us fast, inexpensive hardware Linux enables EDA on the PC Enterprise Linux makes this a viable solution  Stability, Compatibility, Predictability Linux is a winning platform for EDA!  For customers and developers