Softwareudvikling: Miljøer Præsentation af mig Praktiske oplysninger Overblik Host-target setup UNIX, historisk UNIX egenskaber UNIX ulemper UNIX, netværk, X11, brugerflader Windows fordele/ulemper Øvelse 1, intro eksempler på værktøjer
Host/Target vs. Native software development Cross-development Host and target often have different architecture and operating system. Host/target is often used for embedded systems Multiple platforms Debugging using communication links Prototyping Examples: Host: Linux, Windows, Solaris Target: Atmel, Pic, VxWorks, RT-linux, RTAI.
UNIX historie Udviklet i 1969 på Bell Labs, AT&T på en PDP-7 af Ken Thomson og Dennis Ritchie Tidligere to hovedretninger BSD, Berkeley Software Distribution System V, AT&T Senere to hovedretninger: Linux BSD UNIX filosofi Lad hvert program gøre en ting godt. Skriv hellere et nyt end komplicere gamle programmer Forvent at output fra programmet bliver input til et andet, endnu ukendt program. Undgå specielle input formater, Insister ikke på interaktion. Ex: ps -ef grep or more
Mange varianter Senere: HP-UX, SunOS, Solaris, Linux and other workstations
UNIX egenskaber Flytbart, 90% C kode Mange platforme Lavet af programmører for samme Lille kerne, mange programmer Fleksibelt Multi-task, multi-user Devices og filer behandles ens Typeløse filer Interaktivt, tekst/(grafisk) Kraftfulde kommandofortolkere Baggrundsjobs (&)
UNIX ulemper Uoverskueligt for almindelige brugere Dårlig dokumentation (kun reference) Mange varianter gør flytbarhed svær Kun kildetext kan flyttes, modsat Windows Udvides ved knopskydning Mange obskure options til kommandoer
Windows baggrund og fordele/ulemper MS-DOS styresystem til IBM-PC foran CP/M MS-DOS er et system til små systemer med flere designmæssigt dårlige ting (640Kbyte grænse mm. bootproblemer mm) Ikke multitasking, ikke multiuser, ikke reentrant. Windows er oprindelig en overbygning til DOS Versionsnumre noget uoverskuelige: Windows 3.11 Windows 95 Windows 2000 Windows XP Windows.NET MEGET udbredt Binære programmer kan udveksles Windows NT er oprindelig udviklet til IBM (OS/2) og har en sundere basis. Windows Pocket PC 2002 til embedded systemer?? Meget fokus på brugerens behov og programmer Stor integration med Web Konkurrerer med Linux, mest på servermarkedet. Administration, Fleksibilitet
UNIX relaterede aspekter Netværk, Internet TCP/IP, sockets Mail, News ftp, telnet NFS network file system X11, client/server baseret grafisk brugerflade CDE mfl. talk, chat mm World Wide Web, Netscape Java Standardisering POSIX, API standard OpenGroup, X/Open. + OSF ejer UNIX varemærket Unix95, Unix98 Public FSF, GNU Linux X11
UNIX fremtid Linux Windows.NET Killer Apps Real-time, RT-Linux, RTAI Embedding, uclinux
Sprog I asm C, oversat, udbredt, ANSI. #include <stdio.h> int main(void) { printf("linux er sjovt\n"); return 0; C++, oversat, ANSI Java, objektorienteret, platformsuafhængigt, byte-code, Internet class HelloJava { public static void main(string[] args) { System.out.println("Dette er Java!"); pascal fortran, lisp m.fl.
Sprog II Shell, fortolket, mange dialekter #!/bin/sh echo "Hello World" tcl/tk, macrosprog, fortolket, grafisk interface tk #!/usr/bin/wish -f label.l -text "Filename:" label.l2 -text "Editor:" set fname testfil set editor emacs entry.e -relief sunken -width 30 -textvariable fname entry.e2 -relief sunken -width 30 -textvariable editor pack.l -side left pack.e -side left -padx 1m -pady 1m bind.e <Return> { exec xterm -e $editor $fname pack.l2 -side left pack.e2 -side left -padx 1m -pady 1m bind.e2 <Return> { exec emacs $f name MATLAB
Sprog III python, fortolket, objektorienteret, indrykning int i = 0; while (i!= 256) { printf("%d\n", i); i++; i = 0 while (i!= 256): print i i = i + 1 perl, fortolket, textmanipulation #!/usr/bin/perl @a="hej"; @b=(@a,"igen"); print "Arrayet \@b har værdierne : @b\n"; printf "Der er %i elementer i \@b\n",$#b+1; foreach $indeks (@b) { print "Ud kommer $indeks fra arrayet\n"; $c = "hvad med at "; $d = "sætte strenge sammen"; $e = $c.$d; print "Variablen \$e har værdien : $e\n";
IDE vs. separate tools Integrated Development Environment Første, Compass/ Poly Pascal Integrerer, edit-> compile -> link -> debug og code control, documentation Ofte dele man ikke kan lide Ofte ses muligheder for at anvende plug-ins Separate Tools make, hjælper med kompilering awk, fortolker til mønstergenkendelse mm. lex/flex, lexical analysis yacc/bision, kompiler bygning cc/gcc, C-kompiler SCCS, rcs, cvs, Source Code Control System termcap, terminal database sgml, dokumentationsgenerering tex/latex formaterer dokumenter