Slashdot Log In
Linux 2.4 Schematic Poster (Generated From Source!)
Posted by
Hemos
on Wed Feb 07, 2001 10:27 AM
from the pretty-damn-cool dept.
from the pretty-damn-cool dept.
Dave Sifry writes: "Rusty Russell has posted the scripts that render a function call graph of all of the .c files in the Linux kernel. Each file is graphically represented and named, and function calls are graphically represented inside of each source file. The end result is a 180MB vector PostScript file. You can get the source code and then render it yourself, or if you just want to get the big finished poster, send an e-mail to Linuxcare or contact EverythingLinux if you live down under. BTW, it took us about 5 hours to get that file to print at a print shop down at LWE - that much vector PostScript really tested the limits of their big printers!"
This discussion has been archived.
No new comments can be posted.
Linux 2.4 Schematic Poster (Generated From Source!)
|
Log In/Create an Account
| Top
| 127 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
|
2
(1)
|
2
I saw this at Linux Expo (Score:3)
Could some one please mirror the
Re:{ question } (Score:3)
SELECT nickname + ' is a complete moron.'
FROM users
WHERE posting_style = 'half-assed pseudocode'
--Shoeboy
reminds me of the redhat annual report (Score:3)
if i could find the link on corporate-ir.net, i'd link to the web version of the report, but it looks like they've dropped it and are only distributing the 10K.
pity. a lot of people really dug that poster, and have it hanging in their offices. i know a lot of people at redhat have them in their cubes.
Re:{ question } (Score:3)
european availability (Score:3)
Awesome! (Score:3)
Congrats to Rusty for this, it couldn't have been easy...
rr (No relation :)
heres a mirror: (Score:3)
100% totally offtopic (Score:4)
Anyway, sorry about that, feel free to mod me down.
--Shoeboy
tempfile (Score:4)
Well. My guess is that tempfile just gives a temporary filename ready for use. So, the (not politically correct) fix would be a perl script called tempfile.
#!/usr/local/bin/perl
print "/tmp/",rand(100000);
Worked for me ! My poster is on the way.
Posters are useful to check students' coding style (Score:4)
Fo example:
- Miró: Simple programs, almost naive. Few calls, it needs more work.
- Klee: Asshole!!!, he wrote four functions and want me to approve him. Draw it again Sam.
- Picasso: He doesn't know in deep about structured programming. Better improve the code, it's a mess.
- Dalí: This guys knows about object oriented programming.
- Impressionist: It's a master in programming, but may be the code has too many functions and it's hard to understand. Better to crisp it slightly.
As you see, the program is useful too.--ricardo Estilo Dalí: muy bien estructurada u orientada a objetos. Impresionista: el hombre es un monstruo de la programación.
What's next? Linus' DNA? (Score:4)
"Send $24.95 to the human genome project for a printed copy of Linus Torvalds' complete genome! Straight from the sources! Only takes 2000 hours to render on an average Postscript printer."
Come to think of it, a clone of Linus would really speed up development, wouldn't it? Or would we have to clone Alan Cox too?
;-)
Could you imagine... (Score:4)
wow (Score:4)
Is this useful for programmers? (Score:4)
Of course, unless this actually helps you understand the code, and is better than pre-existing methods, why bother? Sure, it looks cool, but a similar representation of paths to local chinese restraunts may look as cool (you can take 5th st, or 15th st, represented as spikes off an oval, etc...)
If it really is an aid for comprehension, or even better, exposes structural flaws, then this is great! Let's make the FPS version, with a profiler coloring or texturizing (is that a word?) the environment, to show time taken in different subroutines (rooms?)
Anyway, cool idea, but lets give it a few months to see if it is just cool, or cool and useful.
Detailed Explanation (Score:5)
1) This does not generate a call graph. It is a static rendering of all the functions in the
2) Yes, the images correspond to the code: forks represent if and switch() statements, circles cover the code within them. Also, code with asm statements, inline, etc are `hairier' (look in the architectures). So, a big star is either a big switch or an if...else if...else if..... If it's inside a circle, there's a loop around it. Two circles inside each other: nested loops. etc.
3) Why PostScript? For the 2.3.18 one I wanted to learn about PNG, so I did it in PNG. But I wanted people to be able to print out copies at home on small printers, so I wanted something scalable: 1GB PNG was not the answer. So I learnt PostScript and changed over to that; the `posterize' shell script lets you make an NxN poster for printing (I recommend >= 6x6).
4) cannot find -lfl
You need flex installed (or use lex and change the Makefile).
5) shopt: command not found
Run bash2, or remove the line:
shopt -s nullglob; for f in $(KERNEL_DIR)/$$d/*.c; do \
And replace it with these two (don't miss the trailing \'s!):
for f in $(KERNEL_DIR)/$$d/*.c; do \
if [ "$f" = "$(KERNEL_DIR)/$$d/*.c" ]; then continue; fi \
6) tempfile: command not found
Change the two occurrances of this (classify_nonstatics.sh and conglomerate_functions.sh) to:
TMPFILE=`mktemp ${TMPDIR:-/tmp}/$$.XXXXXX`
Please give feedback for these, and any other bug reports to rusty at my linuxcare.com.au address, and I'll release 2.4.0a soon...
Thanks!
Rusty.
Fast Mirror (SunSITE dk) (Score:5)
It's hosted at SunSITE Denmark [sunsite.dk] as you see, which should have enough bandwidth.
And yes, it's very cool, and it's completely unreadable at that size & resolution
Re:Could you imagine... (Score:5)
I thought the most telling thing, though, was what Linus said two years ago at a documents show in Atlanta. He was in a panel discussion with a Microsoft Marketroid (and maddog and a Wall Street analyst) and the 'droid was going on about Microsoft's huge labs where they could replicate any problem known to man. Then Linus in a quiet voice told the story of how the U.S. Post Office (that's right, boys and girls, Uncle Sam runs LINUX) had a problem with the computers that run the bar code sprayers. They called Red Hat, Red Hat emailed Linus, who thought about it, vi'ed the appropriate source file, discovered the race condition, fixed it, sent it back, USPS recompiled, and it worked. Total time, 48 hours. Then he said something which caused complete silence in the room:
This poster is proof of the easy understandability of Linux.--
Software is like SEX: it's better when it's free.
-- Linus Torvalds
What? (Score:5)
Linux running on a LaserWriter, what a joke.
What would be even cooler... (Score:5)
I wonder how difficult that would be to implement ?
Heh! That's nothing (Score:5)
Re:5 hours rendreing? Duh... (Score:5)
Size of the file doesn't matter - each sequence of vectors is rendered separately, slapped on the bit map of the page, and on to the next one.
HPGL/2 will not help - the complexity of the primitives is the same. HP/GL and PostScript share the same rendering backend on some printers.
Most plotters nowdays are wide-format inkjets with the same raster backend as other printers. Old pen plotters can't physically do 700 vectors/sec. No way. More like 25. How about drawing the same thing for five days, switching depleted pens on the fly? (reminds me of the old days... where's the old trusty 7225?)