Unix Workshops

= What is it? =

It's pretty simple. This is a proposal for weekly free Unix workshops to be held in the space. It'll give people a chance to learn some awesome skills from one another, and discuss any cool new stuff you've been playing with over the past week.

= When is it? =

Usually Every Tuesday at 19:30 But see meetup for changes.

= What to expect =

Expect a mixed-bag of Unix tricks, shown off by whoever happens to be about. Whether you're a beginner or a self-proclaimed 'wizard' - you're sure to learn something new.

Also, bear in mind that when we say 'Unix', we mean 'UNIX-like operating systems' This definitely includes Linux, but be prepared to play around with some other interesting operating systems such as the 'BSDs (FreeBSD, NetBSD, OpenBSD), Solaris, ancient Unixes (SysV and the like), and any other similar OSes that are fun to learn about.

The structure of the workshops will generally be along the lines of:

"I have a problem X to solve with the command line. How do we find the solution together?"

= What will I learn? =


 * What a Unix is, and why you'd want one.
 * How to slice, dice and throw away mice.
 * How to smoke a (Unix) pipe
 * TCP/IP - Internet style.
 * How to use your new-found skills to attract sex partners from all across the world.
 * Something new, each week!

= What do I need? =


 * A laptop - preferably with around 15GB free HD space for playing with VMs.
 * Some kind of virtualization software. http://virtualbox.org is pretty cool.
 * Something for taking notes with.
 * A suitable amount of curiosity

= Where do I sign? =

Go to meetup and register for the next coming meeting, or let us know on hasadna googlegroup or directly to alon found at pobox period net.

= Plans for upcoming meetings =

28.1.2013
There is a new kernel, let's see what's new: http://kernelnewbies.org/Linux_3.13

21.1.2013
Look into the new null block driver, learn to change it or write our own.

17.12.2013
ltrace, strace, nm, objdump, gcc - investigating dynamic loading vs static loading.

= Interesting Links =
 * The Computer History Simulation Project: http://simh.trailing-edge.com/
 * Historic Unix releases: http://www.in-ulm.de/~mascheck/various/ancient/
 * UNIX at textfiles.com: http://www.textfiles.com/hacking/UNIX/
 * Linux distro history: http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svg

Signals, system calls, interrupts
 * https://lwn.net/Articles/528935/ - Al Viro on kernel interrupt (including 0x80) handling

= What do people want to learn = A starting course in linux, like what miki did, with plenty of hand on excercises, and learn development environments.

Asaf: did a unix course. Unix fundamentals.

David: newbie, starts learning python, doesn't know pipelines, networking, filesystems, wants to understand those things better.

Ilya: web developer, discovered the console recently, mkdir/touch knows. wants to know more.

Linux installations:
 * David: suse once, ubuntu now (on his mac).
 * bsd on vmware
 * Ilya: ubuntu a couple of times crashed.

= Sources =
 * http://www.fedorafaq.org/basics/
 * https://fedoraproject.org/wiki/User:Renich/Course/Introduction_to_GNU_and_Linux
 * http://tldp.org/LDP/intro-linux/intro-linux.pdf

blogs
 * ancient but has some nice lists: http://linux.jamesjpn.com/learning_linux.html
 * https://learningfedora.wordpress.com/

= Useful oneliners (or close) =

Example pipe lines

 * Problem: find the error code for a failure to open an image file by my user's libvirtd:
 * Solution: strace -f -p `pgrep -U alon libvirtd` -e trace=open 2>&1 | grep /image