Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Linux Software

Looking At The Linux Kernel 196

A reader writes: "Some folks from The Boston Consulting Group with OSDN have been working on creating a visual representation of the Linux Kernel. It's been put online, complete with instructions with how to read it, and how to make sense of the information." There's also some new code checked into the Free Code Graphing Project, which enabled this to project to come together (look at CVS) - let's see if we can get people to do it with things like *BSD, Apache and some of the other great projects out there. This is a continuation with the other work being done, like the OSS demographic work. (Note: Slashdot is part of OSDN.)
Karim Lakhani, progenitor in many ways of the project also commented: "The kernelmap shows beautifully the inherent modularity of the Linux Kernel. We think modularity of the source code is one of the important strategic advantages that the Linux Community has and we wanted to move beyond a magnifying glass on the kernel map poster to make it browsable and to let the community add new features. We hope that this can become a tool for navigating the kernel and learning more about how it works. Rusty Russel and Martin Pool did an incredible job creating the map and transforming it into html."
This discussion has been archived. No new comments can be posted.

Looking At The Linux Kernel

Comments Filter:
  • by dpbsmith ( 263124 ) on Thursday September 05, 2002 @10:12AM (#4200196) Homepage
    on a whiteboard. You know, the guys that love to draw rectangles and clouds and arrows and boxes sitting on top of other boxes and call it an "architecture."
  • When will they release something like this for Microsoft? If a picture is worth a thousand words, then perhaps microsoft can release a movie detailing their kernel layout???
  • Suggestions (Score:3, Funny)

    by undeg chwech ( 589211 ) on Thursday September 05, 2002 @10:14AM (#4200210) Homepage
    1) Have the key readable at all levels of zoom

    2) Do it before the /. effect worsens

    Otherwise, all I'm looking at is some coloured boxes.
  • It's only slightly more complicated than the kernel itself.
  • by dr_dank ( 472072 ) on Thursday September 05, 2002 @10:17AM (#4200224) Homepage Journal
    There really is a penguin [osdn.com] at the center of the kernel!
  • at zoom level 4 its' creaking...

    You'd think OSDN would be able to code around the slashdot effect!

    This would be useful if it can be mirrored a thousand fold.
    • So we have slashdotted as a "industry recognized term" now.

      But what about those sites that CREEP, SHUDDER, MOAN, and SMOKE but still eek out small packets of info every now and then. I propose

      Slashdotdotdotted

      As in here is a little info...and...somemore...etc.

      Not that I think this is the best suggestion, but feel free to propose something else

      • You are a genius!

        IT beats thrashing or "excessive paging", or congested, or "bogged down by trolls."

        well, its synonymous with "bogged down by trolls"
        • Can't believe I'm replying to this...

          Thrashing, excessive paging or congested are all conditions that occur without the involvement of a posting at Slashdot. Are all sites that are down due to "Slashdotting?" Are all sites that are thrashing, paging or congested due to Slashdot???

          The point of having a term such as "slashdotted" is that it communicates what AND why...
  • Does anybody have a mirror? Looks like the site just got slashdotted just before I could see it. Damn.

  • BCG? Why? (Score:5, Interesting)

    by sphealey ( 2855 ) on Thursday September 05, 2002 @10:24AM (#4200267)
    BCG is one of the classic management strategy consulting organizations. Typically that type of consultant comes in and recommends that you fire all your current technology people and replace whatever you have (Unix, AS/400, Novell) with the most expensive and complex products on the market (later they will recommend that you outsource everything to one of their "partners").

    For the last 10 years the "most expensive and complicated" option has been Microsoft, and that is what the consultants have pushed.

    Why would BCG be involved in Linux???? There is no percentage in it for them - or is there? Help me understand here.

    sPh

    • You ask and answer (Score:3, Interesting)

      by Pac ( 9516 )
      (later they will recommend that you outsource everything to one of their "partners")

      Which is exactly where the real money has always been, as SAP showed us so well. And it has been explained to exhaustion already that the right way to make money with Free software is by providing service to the users of the said software.

    • Could it be because BCG is attempting to appeal to potential open-source clients?

      If you take a look at the map it looks pretty neat, but like most things that are visual appealling, they tend to lack functionality. The only reason to do this map was neato factor and to get their name in the press. I think it will work because management tends to be impressed by style more often than substance.

    • Re:BCG? Why? (Score:1, Interesting)

      by Anonymous Coward
      Probably because your best leads are the clients you've already served.

      If you've got 99% of your clients using Windows whatever, consulting them to go another way is always going to make you some more money. While Free software may be cheaper than a six pack of Schlitz, installing and developing a system is not. As long as you listen to their recommendations and you their "partners", they're going to make money.
    • And, ahem, *cough*cough* how does this make BCG so special in the consulting market?
    • The volume of customers requesting services is down, they needed a new market.
    • Re:BCG? Why? (Score:4, Interesting)

      by iabervon ( 1971 ) on Thursday September 05, 2002 @11:08AM (#4200465) Homepage Journal
      They're clearly trying to determine whether Open Source could be a more complicated and expensive option. They have to decide whether to start suggesting that companies hire open source hackers to write whatever the companies want. If you look at the demographic survey, they are clearly figuring out that open source hackers are frequently not employed, but could demand a lot of money if someone were going to hire them, and they have the experience to write really complex stuff.

      A little less tongue-in-cheek: BCG could probably do well coming in, looking at what your problems are, and telling you which open source hackers you should pay to fix them. Then they can charge a percentage on the whole thing.

      There's only a limited amount of money you can spend buying MicroSoft products. It's huge, but you can spend even more on open source if you pay the salaries of the hackers. I mean, they are projects with hundreds or even thousands of contributors. If you give them each $100k...
    • Re:BCG? Why? (Score:5, Informative)

      by jarit0z ( 140710 ) <pechos@NOSpaM.yukas.com> on Thursday September 05, 2002 @12:12PM (#4200873) Homepage
      First a disclaimer: I've worked for the past three years at BCG. BCG's core business is not IT consulting (as IBM, for example) but business strategy. That means that our recommendations are usually not centered around any particular technology infrastructure, nor do we usually work with the IT department of our clients. Instead our recommendations focus on ways to increase the competitive advantage of our clients, some of the time that competitive advantage is reached through harnessing a new business model or a new way to organize around the work that needs to be done. Open Source is an active area of interest inside BCG mainly because it represents an innovative way to organize people to meet a goal. There has been an active mailing list discussing Open Source topics and how they apply to our clients needs for quite some time, also this is not the first collaboration of BCG with the movement, the results of a survey amongst sourceforge members conducted by BCG can be found here [bcg.com].
      • Instead our recommendations focus on ways to increase the competitive advantage of our clients, some of the time that competitive advantage is reached through harnessing a new business model or a new way to organize around the work that needs to be done.
        Well, I have lived through five "transformations"": one driven by BCG, two by Accenture (actually AC), one by McKinsey, and one by Mercer. And when I say "lived through", I mean at the receiving end, not from the executive suite. Let us just say that there are slightly more cynical views of the way management consultants operate than the one you posted!

        sPh

      • Open Source is an active area of interest inside BCG mainly because it represents an innovative way to organize people to meet a goal.

        IT workers of the world, unite! :)

        In news that won't be new to the unions, this can effectively be translated as "the corporations want your labour free, or extremely cheap". A good reason to choose the GPL rather than the BSD when writing free software/open source... at least they'll be forced to share any changes they make to your code.

  • How does this help someone understand anything about the kernel?
    • Re:What's the point? (Score:2, Interesting)

      by jeffy124 ( 453342 )
      if someone were to come along and want to make a change to the kernel, he/she use the graph to determine what other parts of the system may be affected if the change were to be made, in theory leading to a more robust system.

      These are used all the time in software re-engineering, and there's an entire research community in software visualization. It's particularly helpful for legacy systems where architectual design or other docs have been lost or are severely outdated.
    • Good question. It makes a pretty picture but i would hate to have to use it to find a bug or make a design decision.

      which brings up a good question: Are there GOOD software packages out there that provide a nice usable display of source code dependencies (call graphs, include dependencies, etc)? I've been using Source Navigator [redhat.com] recently and it seems to work ok for well structured java code but less well for c and c++ (of course poorly structured code is a whole different problem and I dont expect it to display well)

      • CIAO from AT&T is a good tool for C/C++/Java. I do work in a research lab that does this type of stuff, and we use CIAO DBs as a backend to some of our work, but it works quite well in it's own right as a visualizer.
        http://www.research.att.com/~ciao/ [att.com]
      • oh, and if you're bug fixing, something like this can come in handy. Let's say you narrow the bug down to a certain point, but it depends on who calls taht function. You can look on the graph for who calls the function where you're at.

        Generally, you want to use subsets of graphs, not the whole tamale like in this story.
    • At my family reunion recently, I got the attention of a lot of people who ordinarily wouldn't care about genealogy with a 5' by 25' poster of 9 generations of my family tree. LUGs and advocacy could get better interest with some cool eye candy like this.
  • by Anonymous Coward
    Now that slashdot has slashdotted its parent OSDN, will slashdot slashdot it self as well
  • by pubjames ( 468013 ) on Thursday September 05, 2002 @10:37AM (#4200323)
    This could be made into a great SVG or Flash interactive.

    Also, what about the third dimension? there is a lot of info. there - perhaps it would be more managable to look at in 3D?

    Question: is it really useful? I'm not a kernal coder, but it seems to me that this could be a neat way of identifying bad coding e.g. identifying variable and function scope and keeping it neat and modular. Could this be a feature of future IDEs for Linux programmers?

    • I remember some netscape plugin that allowed you to make 3d navigation files like this.

      I wonder what it was called.

      Is there some archive of old Netscape plugins?
      • Perhaps the pluggin to which you refer was cosmo player, a Virtual Realm Modelling Language browser w Netscape/iE pluggin.

        It would be useless without a VERY high speed graphics card. More than about 10,000 polygons would jitter like crazy. Can you say 3 frames a second. (It's an interpreted language from HELL!!! Imagine the 3D version of 'printable' graphics using html 2.0). I wouldn't try it in a browser.

        Now a 3D IGES file, that would be cool.

        There are/were linux VRML browsers coming along ages ago. I should go back & check on them.
        • This was not that, I remember Cosmo Player.

          This was not realy a 3d render more like a 3d lable viewer.

          You could create text lablels and link them to other lables. Which would then be rendewred in a 3d space that you could navigate through.
    • How about a forth dimension? It would be cool to see the evolution of the kernel and what is being worked on for the future.
  • by qurob ( 543434 ) on Thursday September 05, 2002 @10:41AM (#4200344) Homepage

    ThinkGeek [thinkgeek.com] has the Kernel map poster...
  • Congrats! (Score:4, Insightful)

    by FortKnox ( 169099 ) on Thursday September 05, 2002 @10:45AM (#4200357) Homepage Journal
    Congrats on the waste of money. Honestly, this is pretty and all, but hardly useful, and, most likely, not worth the money spent on the project.
    What is the point of this? To sell it as posters and make a profit?
    Who, in their right mind, would use this to change design, or track a bug?
    This project is a waste of money that would be better off spent on the kernel itself, not a pretty picture of the kernel.
    • Re:Congrats! (Score:4, Informative)

      by Deth_Master ( 598324 ) on Thursday September 05, 2002 @10:51AM (#4200394) Homepage Journal
      If this were being used by a company, in theory, it would work very well. You would be able to look at what you're working on and see quickly what it affects. But the image size would have to be much, MUCH bigger, and on paper. We have similar tools at work, Database Diagrams, and they are quite handy, at times.
    • Re:Congrats! (Score:3, Interesting)

      by jeffy124 ( 453342 )
      rather than repeat myself, read this thread [slashdot.org].
    • Did you not get elected to spend everyone's money for another term?
      That's awful.

      --

      I'm sorry, your right to spend has been revoked, because apparently...you're stupid. [The Adjudicators]

    • Re:Congrats! (Score:4, Informative)

      by Hemos ( 2 ) on Thursday September 05, 2002 @11:09AM (#4200471) Homepage Journal
      It's a visualization effect - BCG was kind enough to provide the resources to get the programming done, and we're providing the hosting for it.
      • And a nice visualization at that. For those who see this as a pretty picture... oh well. Large, complex systems are hard to understand. When they're made up of hundreds of files, each contianing hundreds or thousands of lines of code, it's nearly impossible to keep "the big picture" in your head. No, of course you wouldn't go to this as a reference, but I would use it as an introductory tool for new coders or as a visual aid for discussions about architectual issues.

        The only problem is that you really want to work with a high-level system that can change this picture dynamically. But, still this is a very nice map. I'm curious about what the diagaming inside of each function is about. I'll have to go look at the project to find out.

    • > Congrats on the waste of money. Honestly, this > is pretty and all, but hardly useful, and, most > likely, not worth the money spent on the
      > project.

      have you ever heard about research?
      maybe someone will evolve the idea and we can have some new way of changing design and fixing bugs
    • It's something that DESIGNERS DO. its called iterative design. It's a simple idea. You create visualistions, you stand back, you scan for problems, you fix the problems, you create new AND VARIOUS representations and stand back, and look for problems, and repeat, and repeat, and repeat......

      To people who cannot see the point of this, all I can say is THANK GOODNESS LINUS IS RUNNING THE SHOW and not.....
      • >> it's something that DESIGNERS DO

        No, Linus and company did not design the kernel with artwork like this.

        >> its called iterative design

        Well, visualisations could be part of an iterative design process, but not ones like this - merely showing that there are loops and forks within a piece of code, without really knowing WHAT the loops and forks do, is just artwork - no functional purpose as far as software design.

        Much of the RUP is like this, spending great amounts of time making pretty elaborate diagrams so that people with the skills of a mediocre COBOL programmer can "get in on" OOD - better to have well written functional specifications & implementation plans, and programmers who can make mental representations using SOURCE CODE (in the end, the diagrams don't mean jack, only how well the code performs and meets the business requirements)
        • You are assuming that coders are the only ones with ideas. The Linux Kernel has passed or is approaching most other OSs very rapidly in a broad range of areas. It can no longer play tag. What the linux kernel will need in the very near future is ideas, concepts, directions, where to go from here. Things like the virtual_/dev stuff that other people are not doing. A range of approaches will aid in facilitating that. This facilitates people with a range of approaches!
  • How about a hardware compatibility list. I would expect something like that straight off of kernel.org. Why should I search through message boards to see if someone was able to get my ethernet card to work, or search through changelogs.
    • Funny then, how I found this [tldp.org] with just a couple of clicks from the main kernel.org page. I've seen a few other HCLs for Linux in the last few years, but overall I'd expect that for really new hardware you either have to have a good idea of how to get it to work already or find someone that does. Linux moves more quickly than most operating systems, and, as such, hardware compatibility is a moving target dependant on a large number of variables, including changes to the kernel and dedication of the hardware developers.
    • by crush ( 19364 )

      How about a hardware compatibility list. I would expect something like that straight off of kernel.org. Why should I search through message boards to see if someone was able to get my ethernet card to work,

      Have you looked at this [zdnet.com] yet? Please add your own hardware details.

  • c'mon OSDN (Score:1, Offtopic)

    by cr@ckwhore ( 165454 )
    Seriously OSDN... waste time and resources on something trivial like this (which has already been done several times), but meanwhile, kill davecentral.com.

    Way to go guys, yeah

  • This is art (Score:3, Insightful)

    by possible ( 123857 ) on Thursday September 05, 2002 @10:50AM (#4200392)
    I hate to be negative but this is not really useful. As Geek Art it's kinda cool -- but let's not kid ourselves about it having any value for kernel hackers. It's just some pretty pictures that Linux scene whores can look at and say "Oooh ahhh I grok the kernel now" -- but don't expect any of those people to submit patches or new device drivers anytime soon.

    You know, the Linux kernel is not massive -- you can spend a couple hours looking at source code and get a much better idea than you would with these kinds of visualizations. And if you can't read source code like that, then you shouldn't really be wasting your time looking at pictures.
  • Wow! (Score:5, Funny)

    by DeltaSigma ( 583342 ) on Thursday September 05, 2002 @10:54AM (#4200409) Journal
    I finally found something more overwhelming than HTML 4.01 (transitional) validation [w3.org] of Microsoft's website [microsoft.com].
  • I think we just slashdotted the linux kernel...

    Steven
  • by koto54 ( 539444 ) on Thursday September 05, 2002 @11:00AM (#4200433) Homepage
    I do rather prefers the Seesoft [vt.edu] visualization, based on the Treemap [umd.edu] principe, or the HyperProf [orst.edu] visualization, based on the Hyperbolic Tree [inxight.com] principle.

    Moreover, there is free and open-source implementations of those two visualizations: Treemap Java Library [sourceforge.net] and Hypertree Java Library [sourceforge.net].

  • What's up with M$ adverts on /.
    ??
  • ...not for the hackers, but for the marketing of Linux. Imagine giving a presentation about Linux at your local school committee meeting. You can pull out a visually impressive 4' x 6' sketch of the kernel and say, "We know exactly what we're getting if we switch to Linux. We know every single line of code." Then while you hold up a small black box you say, "That isn't the case with other operating systems where we have no idea what we're getting and no way to fix any problems that crop up without spending even more money."

    Also, a beautiful, visually appealing picture of the kernel can help non-techies understand that the kernel is a well-thought out piece of software engineering and not just some half-ass code pumped out by computer hippies and geeks with nothing better to do. Again, this can help further the cause of Linux with those in power who make purchasing decisions but have little technical expertise.

    This is good work.

    • The catch is when someone asks you what any piece of the kernel actually does. Seeing it and understanding it are two different things.

      I can pop open the hood of my car anytime I want, doesn't mean I can fix it.
  • Hmmm, I generated and printed out this map almost 2 years ago, using the 2.4.0 kernel. This isn't new, folks. Perhaps the only thing of interest is the webification of it.

    Seriously, Rusty released the source for generating all the postscript shortly after 2.4.0 - the fact that its resurfacing with a company name behind it seems like its merely a way to promote the consulting business.
  • Awesome. I am really impressed with the image. Now I want to see a visual representation of M$Windows.

    Second thought, I see enough toddler artwork from my two-year-old.

    • Awesome. I am really impressed with the image. Now I want to see a visual representation of M$Windows.

      You mean you actually want to see the infamous goatse.cx troll? Actually, I believe that the kernel is probably quite clean, but as for the GUI, that would probably be about as tangled web of spaghetti code around.

  • this one [veat.com] shows how the Kernel, KDE and an application interact

    ---
  • Map scale (Score:3, Funny)

    by Alsee ( 515537 ) on Thursday September 05, 2002 @01:01PM (#4201188) Homepage
    As I zoomed in on the kernal map, I couldn't help rephrasing a Steven Wright joke:

    I have a map of the Linux kernal...

    the scale is one line equals one line.

    (The original joke was: I have a map of the United States... the scale is one mile equals one mile.)

    -
  • by elmegil ( 12001 ) on Thursday September 05, 2002 @01:06PM (#4201237) Homepage Journal
    The kernelmap shows beautifully the inherent modularity of the Linux Kernel. We think modularity of the source code is one of the important strategic advantages that the Linux Community has...

    I've seen diagrams of Unix from the 70's that had exactly the same structure to them. Nothing new.

    Furthermore, Solaris has been inherently modular (and has evolved to have fine grained locking and an almost fully preemptible kernel) since SVR4 was adopted by Sun as the basis for Solaris. I can't see spending the time to map Solaris too, but I bet if someone did, it would look exactly the same.

    Dont' get me wrong, this is a nifty tool, looks neat, etc. But if someone wants to use it to claim uniqueness for Linux, they're barking up the wrong source tree.

    • >Dont' get me wrong, this is a nifty tool, looks neat, etc. But if someone wants to use it to claim uniqueness for Linux, they're barking up the wrong source tree.

      The claim is that Linux is good in this respect, not that anybody else isn't. This isn't another one of those articles proclaiming the superiority of Linux.
  • We think modularity of the source code is one of the important strategic advantages that the Linux Community has and we wanted to move beyond a magnifying glass on the kernel map poster to make it browsable and to let the community add new features.

    Gee, thanks for making this. This map obviously allows the community to add new features -- something we were never able to do before!

    Zounds.
  • My God! (Score:2, Funny)

    by bLanark ( 123342 )
    My God, it's full of Tux!
  • The graph is really neat, but I am kind of disappointed that it doesn't show much inter-file information (the position of source file boxes is essentially arbitrary, and there are no indications of connections between them)...

    One thing I would love to see is some kind of graph that shows the dependencies between source files. i.e. who calls functions in this file; who is called by functions in this file; what headers does this file depend on (taking recursive inclusions into account), etc. That kind of information is really important when trying to understand code, even my own. (e.g. it should be really easy to spot unwanted header dependencies which are otherwise difficult to detect).

    I am aware of some scripts based on GraphViz, like "cinclude2dot.pl" But the results aren't really what I am looking for.
  • It's a cool thing that not only looks good, but means something too! Very Fractal like! Nice Hack!

    ttyl
    Farrell
  • This represents a program. It would be interesting to see how far one could take the paradigm by writing an interpreter for this diagram. What would it be like to code this way (obvious VB trolls excluded)? I've always thought that what makes the upper echelon of coders great is that they can visualize their code in a similar manner.

"Virtual" means never knowing where your next byte is coming from.

Working...