Prototyping 22 Jan 2013: Difference between revisions
Line 23: | Line 23: | ||
http://abyss.hubbe.net/gfx/covers/bks/lg/compilers.jpg | http://abyss.hubbe.net/gfx/covers/bks/lg/compilers.jpg | ||
In 1985, programmer Richard Stallman writes the [http://www.gnu.org/gnu/manifesto.html GNU Manifesto], in response to his frustrations in how his programming work is controlled. | Compilation turns a programmer's source code into something a particular computer can perform (an executable). | ||
<source lang="C"> | |||
#include <stdio.h> | |||
int main() { | |||
printf("Hello, world!\n"); | |||
return 0; | |||
} | |||
</source> | |||
The command to use the [[GNU]] [[C]] compiler to compile this "Hello world" program would look like: | |||
gcc helloworld.c | |||
More likely you'd like helpful output (-Wall), and a nicer name for the program that gets output (-o). | |||
gcc -o helloworld helloworld.c | |||
== This is not and operating system == | |||
In 1985, programmer [[Richard Stallman]] writes the [http://www.gnu.org/gnu/manifesto.html GNU Manifesto], in part in response to his frustrations in how his programming work is controlled. He envisions an entire operating system for programmers to be able to keep control over their work. In the Manifesto, he writes: | |||
<blockquote> | <blockquote> | ||
So far we have an Emacs <b>text editor</b> with Lisp for writing editor commands, a source level <b>debugger</b>, a yacc-compatible <b>parser generator</b>, a <b>linker</b>, and around 35 utilities. A <b>shell</b> (command interpreter) is nearly completed. A new portable optimizing C <b>compiler</b> has compiled itself and may be released this year. An initial <b>kernel</b> exists but many more features are needed to emulate Unix. When the kernel and compiler are finished, it will be possible to distribute a GNU system suitable for program development. We will use TeX as our text formatter, but an nroff is being worked on. We will use the free, portable X Window System as well. After this we will add a portable Common Lisp, an Empire game, a spreadsheet, and hundreds of other things, plus online documentation. We hope to supply, eventually, everything useful that normally comes with a Unix system, and more. ''(bold has been added)'' | So far we have an Emacs <b>text editor</b> with Lisp for writing editor commands, a source level <b>debugger</b>, a yacc-compatible <b>parser generator</b>, a <b>linker</b>, and around 35 utilities. A <b>shell</b> (command interpreter) is nearly completed. A new portable optimizing C <b>compiler</b> has compiled itself and may be released this year. An initial <b>kernel</b> exists but many more features are needed to emulate Unix. When the kernel and compiler are finished, it will be possible to distribute a GNU system suitable for program development. We will use TeX as our text formatter, but an nroff is being worked on. We will use the free, portable X Window System as well. After this we will add a portable Common Lisp, an Empire game, a spreadsheet, and hundreds of other things, plus online documentation. We hope to supply, eventually, everything useful that normally comes with a Unix system, and more. ''(bold has been added)'' | ||
</blockquote> | </blockquote> | ||
Finally in 1991, [[Linus Torvalds]], a computer science student in Helsinki, Finland writes a kernel, the part of the operating system that connects to the computer hardware, in this case cheap Intel-processor based PC's, that makes it possible for a fully free (as in freedom) operating system. | |||
[[Gstreamer]] | [[Gstreamer]] |
Revision as of 14:37, 22 January 2013
State of the install
- Nan: ubuntu install on partition on mac book; issues: wireless?
- Yoana: ubuntu to gnome: everything appears to be working ... Trackpad however is "really different" ;)
- Nicole: Virtual Box + Crunchbang: Kernel panic on open ?!
- Mich: VB Crunchbag, working
- Joz: crunchbang, game missing library: self compilation problems Warsow
- Lasse: XUBUNTU! problems with debian and crunchbang; MacBook with partition
- Marlon: Ubuntu on partition on thinkpad
- Menno: Yet to install (acer laptop partition?)
- Matt[h]ias: VirtualBox + Crunchbang
- Niek, Matthijs
- Roel (Crunchbang!?)
Compilation, Free Software, and the Pipeline
Software depends on libraries
Compile
Compilation turns a programmer's source code into something a particular computer can perform (an executable).
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
The command to use the GNU C compiler to compile this "Hello world" program would look like:
gcc helloworld.c
More likely you'd like helpful output (-Wall), and a nicer name for the program that gets output (-o).
gcc -o helloworld helloworld.c
This is not and operating system
In 1985, programmer Richard Stallman writes the GNU Manifesto, in part in response to his frustrations in how his programming work is controlled. He envisions an entire operating system for programmers to be able to keep control over their work. In the Manifesto, he writes:
So far we have an Emacs text editor with Lisp for writing editor commands, a source level debugger, a yacc-compatible parser generator, a linker, and around 35 utilities. A shell (command interpreter) is nearly completed. A new portable optimizing C compiler has compiled itself and may be released this year. An initial kernel exists but many more features are needed to emulate Unix. When the kernel and compiler are finished, it will be possible to distribute a GNU system suitable for program development. We will use TeX as our text formatter, but an nroff is being worked on. We will use the free, portable X Window System as well. After this we will add a portable Common Lisp, an Empire game, a spreadsheet, and hundreds of other things, plus online documentation. We hope to supply, eventually, everything useful that normally comes with a Unix system, and more. (bold has been added)
Finally in 1991, Linus Torvalds, a computer science student in Helsinki, Finland writes a kernel, the part of the operating system that connects to the computer hardware, in this case cheap Intel-processor based PC's, that makes it possible for a fully free (as in freedom) operating system.
The Shell
wikipedia:Bourne_shell, wikipedia:Unix_shell
Bourne was later Bourne-again in the form of BASH (programmers do love their wordplay).
UNIX Philosophy
http://en.wikipedia.org/wiki/Unix_philosophy
2003 Eric Raymond's The Art of Unix Programming is published [1]
Pipeline
Small tools loosely joined
Grep, and videogrep
Free Software
Script
In-class
Select a commandline tool and create a wiki page briefly explaining it and giving some simple cookbook examples. (If the page already exists for what you're interested in, you can also extend/improve it instead).