DeepHack

From Noisebridge
(Difference between revisions)
Jump to: navigation, search
(Created page with '=DeepHack= Spelunking for the 21st Century ==QEMU== [http://wiki.qemu.org/Main_Page QEMU] is a generic and open source machine emulator and virtualizer. ==The Elements of Compu…')
 
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=DeepHack=
+
DeepHack: Digital spelunking for the 21st Century
Spelunking for the 21st Century
+
  
==QEMU==
+
= Secret Motor =
 +
[http://www.youtube.com/watch?v=D5PS-zOciF8 The original Secret Motor] was a project by Mike Kan circa 1993 to visualize memory access on a Macintosh using an oscilloscope. The [https://github.com/leif/qemu-secret-motor QEMU Secret Motor] is an attempt to create something similar using an emulator. It currently consists of a patched version of qemu which prints the x86 EIP for each cycle of the emulated machine, and a python script (based on this [https://www.youtube.com/watch?v=s1eNjUgaB-g YouScope] [http://www.youtube.com/watch?v=-1E0DpQ_cFo emulator]) to visualize that data. TODO: post some video here of the qemu secret motor running.
 +
 
 +
=QEMU=
 
[http://wiki.qemu.org/Main_Page QEMU] is a generic and open source machine emulator and virtualizer.
 
[http://wiki.qemu.org/Main_Page QEMU] is a generic and open source machine emulator and virtualizer.
  
==The Elements of Computing Systems==
+
=Horology=
 +
==Linux 3.4 timer fixes==
 +
Patches for resume and 32-bit timer overflow
 +
 +
https://lkml.org/lkml/2012/8/21/673
 +
 
 +
==(Potential) fix for Linux leapsecond bug==
 +
1 July 2012
 +
 
 +
https://lkml.org/lkml/2012/7/1/176
 +
 
 +
==Avoiding unnecessary overflow in sched_clock==
 +
15 November 2011
 +
 
 +
https://lkml.org/lkml/2011/11/15/359
 +
 
 +
=The Elements of Computing Systems=
 
* The [http://www1.idc.ac.il/tecs/plan.html book]
 
* The [http://www1.idc.ac.il/tecs/plan.html book]
 
* The [http://www1.idc.ac.il/tecs/about.html synopsis]
 
* The [http://www1.idc.ac.il/tecs/about.html synopsis]
 
* The [http://www1.idc.ac.il/tecs/software.html software]
 
* The [http://www1.idc.ac.il/tecs/software.html software]
  
==MMIX==
+
=MMIX=
 
[http://www-cs-staff.stanford.edu/~uno/mmix-news.html MMIX] is a 64-bit RISC machine used in Volume 4A of Donald Knuth's Art of Computer Programming and it will eventually be used in all other volumes of that series.
 
[http://www-cs-staff.stanford.edu/~uno/mmix-news.html MMIX] is a 64-bit RISC machine used in Volume 4A of Donald Knuth's Art of Computer Programming and it will eventually be used in all other volumes of that series.
  
==OR1k==
+
=Open Computation Hardware=
 
The [http://opencores.org/or1k/OR1200_OpenRISC_Processor OR1200] is an open-source synthesizable CPU.
 
The [http://opencores.org/or1k/OR1200_OpenRISC_Processor OR1200] is an open-source synthesizable CPU.
  
==What Every Programmer Should Know about Computer Memory==
+
=What Every Programmer Should Know about Computer Memory=
[http://lwn.net/Articles/250967/ 7-part series] by Ulrich Drepper.
+
A 7-part series by Ulrich Drepper ([http://ftp.linux.kiev.ua/pub/docs/developer/general/cpumemory.pdf complete PDF]):
 +
* [http://lwn.net/Articles/250967/ Introduction]
 +
* [http://lwn.net/Articles/252125/ CPU Caches]
 +
 
 +
=CorePy=
 +
[http://www.corepy.org/ CorePy]: Assembly Programming from Python
 +
 
 +
=Patterson & Hennesy=
 +
[http://www.cs.iastate.edu/~prabhu/Tutorial/title.html Java tutorial] based on "Computer Architecture" and "Computer Organization and Design"
 +
 
 +
=Operating Systems=
 +
Systems-level software (kernel and userspace)
 +
==Unix V6==
 +
* [http://v6shell.org/history/sh.c Unix V6 Shell] by Ken Thompson (900 lines), 1975
 +
* [http://v6.cuzuco.com/ John Lion's Commentary] on the Unix v6 source
 +
** [http://www.lemis.com/grog/Documentation/Lions/ in PDF]
 +
==Linux==
 +
===A Plumber's Wish List for Linux===
 +
Looking for a useful systems software project? [http://lkml.org/lkml/2011/10/20/275 Version 2] of the list by Kay Sievers (20 Oct 2011).
 +
===Linux 0.01===
 +
* [http://www.kernel.org/pub/linux/kernel/Historic/ Original release] by Linus Torvalds (10,000 lines), September 1991
 +
* [http://kerneltrap.org/Linux/Dusting_Off_the_0.01_Kernel Port to GCC4 / QEMU] by Abdel Benamrouche, 1 January 2008
 +
==Minix 3==
 +
[http://wiki.minix3.org/en/MinixRoadmap Roadmap] including ARM support.
 +
 
 +
=Temporal Hex Dump=
 +
* http://scanlime.org/2009/10/temporal-hex-dump/
 +
 
 +
[[Category:Python]]
 +
[[Category:Projects]]

Latest revision as of 22:46, 23 September 2012

DeepHack: Digital spelunking for the 21st Century

Contents

[edit] Secret Motor

The original Secret Motor was a project by Mike Kan circa 1993 to visualize memory access on a Macintosh using an oscilloscope. The QEMU Secret Motor is an attempt to create something similar using an emulator. It currently consists of a patched version of qemu which prints the x86 EIP for each cycle of the emulated machine, and a python script (based on this YouScope emulator) to visualize that data. TODO: post some video here of the qemu secret motor running.

[edit] QEMU

QEMU is a generic and open source machine emulator and virtualizer.

[edit] Horology

[edit] Linux 3.4 timer fixes

Patches for resume and 32-bit timer overflow

https://lkml.org/lkml/2012/8/21/673

[edit] (Potential) fix for Linux leapsecond bug

1 July 2012

https://lkml.org/lkml/2012/7/1/176

[edit] Avoiding unnecessary overflow in sched_clock

15 November 2011

https://lkml.org/lkml/2011/11/15/359

[edit] The Elements of Computing Systems

[edit] MMIX

MMIX is a 64-bit RISC machine used in Volume 4A of Donald Knuth's Art of Computer Programming and it will eventually be used in all other volumes of that series.

[edit] Open Computation Hardware

The OR1200 is an open-source synthesizable CPU.

[edit] What Every Programmer Should Know about Computer Memory

A 7-part series by Ulrich Drepper (complete PDF):

[edit] CorePy

CorePy: Assembly Programming from Python

[edit] Patterson & Hennesy

Java tutorial based on "Computer Architecture" and "Computer Organization and Design"

[edit] Operating Systems

Systems-level software (kernel and userspace)

[edit] Unix V6

[edit] Linux

[edit] A Plumber's Wish List for Linux

Looking for a useful systems software project? Version 2 of the list by Kay Sievers (20 Oct 2011).

[edit] Linux 0.01

[edit] Minix 3

Roadmap including ARM support.

[edit] Temporal Hex Dump

Personal tools