Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Suzanne Cook - Developing the CLR, Part I

Download

Right click “Save as…”

Suzanne Cook is a developer on the .NET CLR team. Translation: she's smart and she's a geek.

Anyway, she talks about loaders and GACs and other such obscure topics.

In this segment we ask things from "what's the GAC?" to getting inside knowledge of the .NET CLR Loader (which is what she works on).

You can read more of Suzanne's thoughts on her blog: .NET CLR Loader Notes.

Tag:

Follow the Discussion

  • MarsellaMarsella Error- there is no beer in the fridge!
    Cant get the video to work, how do I download rather than stream?
  • Please provide transcript to the video.

    The quality of audio is quite bad. When can we see Chris Brumme?
  • Something Suzanne said about 12 minutes in made me think, do Microsoft employees use a *real* pre-processor when writing managed code?  I think Suzanne said something about using the pre-processor to define an Assembly name.
  • The Channel 9 TeamThe Channel 9 Team 5 guys from Redmond
    Talav, what kind of sound card/speakers do you have? The audio is easily heard and understood on my machines here.

    To download the video click the "save" link underneath the video.
  • MinhMinh WOOH!  WOOH!
    I read somewhere that Fusion handles all the managed calls that require some sort of unmanaged calls or resources. Is this an accurate description?
  • MinhMinh WOOH!  WOOH!
    Beer28 wrote:
    So my question is, does managed mean VM managed in general, or does it mean MSIL?
    I first heard "managed" when .NET came out. So managed code is anything thar runs inside the CLR. C# is managed, VB.net is managed, MSIL is managed. VB6 is NOT managed.
  • MinhMinh WOOH!  WOOH!
    Beer28 wrote:
    Is the CLR just a big CPU emulation machine?
    I don't believe so. The JIT compiler does create native x86 instructions from MSIL ... then I guess at some point run those instructions.
  • Mike SampsonSampy And I come back to you now - at the turn of the tide
    What about rotor? You can look at that code and see what's going on. It's not exactly the same but it's pretty close.

    Also, good to see this round of "who invented what" ended quickly. You know how much I love that game Smiley
  • Mike SampsonSampy And I come back to you now - at the turn of the tide

    What's to stop you from throwing together a BSD machine to play with rotor on?

    Also, I think it's important to note that for most people, understanding exactly how the CLR loads a dll (and I mean exactly, it's always good to have a vague understanding) isn't that useful. While you and I may be interested, it's mostly an intellectual curiosity rather than a deal-breaker when it comes to platform choice.

  • Mike SampsonSampy And I come back to you now - at the turn of the tide
    Back on the main topic, the video!

    I've traded emails in the past with Suzanne (I'm the current owner of InstallUtil.exe and InstallUtilLib.dll; we're some of those people that use LoadFrom when we probably shouldn't) but I've never seen her or heard her voice until this video Smiley

    I've also seen her answer questions on internal mailing lists about .Net. Thanks to her blog, she almost never has to type a reply, just a link to a blog post. I'm convinced that after years of answering the same questions over and over, it was just easier to blog about it and point people over to that.

    And to hear her talk about going to the doc guys and getting them to beef up the MSDN when it comes to the loader, getting bad practice methods depricated, etc. is just 10 kinds of cool. Suzanne is my hero Smiley I hope I'm that awesome when I've only been here for 6 years (that's a little over 4 years from now).
  • CharlesCharles Welcome Change
    talav wrote:
    When can we see Chris Brumme?


    Click here for some Brumme.
  • CharlesCharles Welcome Change
    Beer,

    Managed code is code that executes in a virtual machine that automatically handles memory allocation and object lifetime among other nifty things.

    In our case, this VM is the CLR and this is typically what we mean when you hear us say "managed" code around here.
  • rjdohnertrjdohnert You will never know success until you know failure
    Nice video,  that lady knows her stuff.  Good show fellas. 
  • Right, and VBScript and JScript as well. Geez...
  • rasxrasx Emperor of String.Empty
    So this interview had weird gender encounter energy all over it:

    * The suave geek male had to ask all the questions. The other geek male could barely hold the camera.

    * Suzanne C. was not lecturing---she had to be interrogated. These events could be caused by her personality but is very, very different from most Channel 9 subjects.

    * Suzanne C. seemed extremely tense but that could just be geek non-physicality.

    The Amanda Silver interview was different.
  • rhmrhm
    Beer28 wrote:
    Charles wrote:Beer,

    Managed code is code that executes in a virtual machine that automatically handles memory allocation and object lifetime among other nifty things.

    In our case, this VM is the CLR and this is typically what we mean when you hear us say "managed" code around here.


    Perl 5 does it with reference counting, so it too is managed code then, and so is php and python as well as java.


    perl and python are interpreters (like the original non-JIT JVM). Although you could call code running under it 'managed' it certainly doesn't mean the same thing as saying the CLR runs managed code.

    I think managed referrs to code that runs in the CLR as part of a garbage collected object (as either a class or instance method). Note that you can have a mixed assembly that also contains native code - actual x86 instructions. Note also that code isn't managed just because it is JITed by the CLR. For example Visual C++ can compile any old C++ program into MSIL instead of native code just by using the /CLR switch. The code is only managed when it is part of a class marked with the Managed C++ extension __gc (or ref class in VisualC++ 2005).

    That also leads me to a key difference in philosophy between .NET and Java. While they are pretty much the same technology-wise they come at it from a different angle. The idea with Java was to create a virtual machine that ran a standard set of bytecodes and a virtual OS as part of the class library. The idea for the .NET framework was just to make Windows development easier. There's a good reason why the code generated by .NET compilers is called MSIL - Microsoft Intermediate Language. The message is that this code is just seen as an intermediate stage between the compiler and the processor the same way many traditional compilers use an intermediate code internally (in GCC it is called RTL for example). MSIL is flexible enough to enable unmanaged ANSI C++ to be compiled into it. Even that model of .NET languages C# has a little used unsafe mode which you can use to write code that looks and works pretty much the same as C.
  • rhmrhm
    Beer28 wrote:

    what about microsoft pcode?


    what's that?

  • rhmrhm
    Beer28 wrote:

    Because even back to quick basic and pascal, really high level code has been managed. And that goes back for 20 years.


    I remember when I was at university before Java had broken cover we were using a system called poplog. It was sort of like a runtime that supported CLisp as well as its own langauge called pop11 which was like Lisp but with Pascal like syntax. Anyway, back then there was a discussion about how to refer to languages that required a memory management infrastructure like a garbage collector as well as a big runtime, to differentiate them from languages like C, Pascal and C++. 'Managed' would have been a good term to have at the time as I don't believe the discussion ever came to anything. Mostly it consisted of stupid arguments about what it meant to rely on a memory manager, i.e. C has malloc which can be as complex as some garbage collectors even though it doesn't do anything nearly as useful. C++ in all but its simplest guises needs a certain amount of library support, esp. for features like RTTI and exceptions.

    I will state again becuase I think beer28 missed it the first time: The fact that a language is compiled into an intermediate code does not make it 'managed'. As I said before ANSI C++ can be compiled into MSIL by using the /CLR, but that doesn't make it managed. Likewise the UCSD p-system which first popularised the concept of p-codes wasn't managed because it ran pascal - the users program still have to manage memory allocations itself like you do in any pascal as far as I know.

    Where the border really lies between managed and unmanaged is: does the runtime need to know the type and layout of all the classes/structures in your program? The runtime has to know in order to run a proper garbage collector (rather than the Bohem hack), to provide type reflection and late binding support. Languages like LISP, Smalltalk and Pop11 were managed as it Java, C# and VB.NET. Pascal, C++, Delphi (save for the latest version) are unmanaged whether they are compiled to machine code, p-code or MSIL. Languages like Perl and PHP which are interpreted could be described as managed: They are interpreted and the interpreter has to know the layout of any data structures they use in order the implement them so they are managed, but it's a moot point really.
  • scobleizerscobleizer I'm the video guy
    RASX: yeah, I was sensing it while filming too. I think Suzanne was nervous. The problem now with Channel 9 is that our subjects realize that people are watching and they get a little bit of stage fright the way you get nervous when giving a talk in front of 2,000 people.

    Most people really aren't comfortable speaking in front of crowds because we all know we're being judged.

    My hat is off to Suzanne, though. She's very smart. I think the second part of the video is a little better.
  • CharlesCharles Welcome Change
    Yep. She's shy, as are many people. Not everybody around here feels the need to talk about themselves and what they do effusively, unprovoked.

    I'd say that "interrogation" is an entirely incorrect expression for how the interview was conducted.
  • CharlesCharles Welcome Change
    Beer28 wrote:
    Charles wrote: Yep. She's shy, as are many people. Not everybody around here feels the need to talk about themselves and what they do effusively, unprovoked.

    I'd say that "interrogation" is an entirely incorrect expression for how the interview was conducted.


    Blogs are nice because it lets people format and revise what they're going to say before they say it in writing.

    At some late night talk shows they will have a rehersal before the actual taping.

    Maybe it would make people more comfortable if you gave them a list of questions you're going to ask ahead of time. At least people that are camera shy.


    When you sit down to have an informal, casual chat with somebody do you give them a list of quetions ahead of time so they know what they are going to say before you ask questions?

    We don't do this type of thing on Channel 9, and we won't. Perhaps I need to do a better job of making people feel comfortable. What do you all think? I'd appreciate feedback.

    Charles
  • CharlesCharles Welcome Change
    Beer28 wrote:
    Charles wrote: When you sit down to have an informal, casual chat with somebody do you give them a list of quetions ahead of time so they know what they are going to say before you ask questions?

    We don't do this type of thing on Channel 9, and we won't. Perhaps I need to do a better job of making people feel comfortable. What do you all think? I'd appreciate feedback.

    Charles


    I noticed you glaringly stare at people with your eyes wide open in most of your interviews, this is a little brutal, but if i was in her chair I'd have been a little freaked out.

    I know you may not do this intentionally, but it almost seems like you're bored and want them to finish their answer. Scoble comes across like he just came home from a kegger or a house party. This is also pretty brutal, so Scoble, skip this, Like "woah, that's cool heh heh, here's another question somebody off the street might pose, I'm going to go get some twix out of the vending machine now". It's not totally that way, I'm exagerating it to try to explain what I'm talking about.

    So take it or leave it, there's my honest feedback. You guys need to watch some dave letterman, jay leno, or conan obrien. Charles seems on the spot with technical questions that aren't too technical, but lacks the warm character of a good interviewer, and Scoble, he's just Scoble I guess.

    I'm not perfect either, so I'm not saying this to ripp on you guys, you asked for feedback.




    Thank you. This is helpful. I will work on getting better at this. This is all pretty off the cuff and very often my questions are born during the interview (there is nothing as pure and honest as spontaneity). I try to keep the technical stuff approachable since we want these interviews to appeal to a wide audience.

    Please always feel free to give feedback on what we do and how we do it.

    Thanks again.


    Charles
  • CharlesCharles Welcome Change
    That's Robert Hess.
  • Beer28 wrote:


    are you sure that ansi C is really compiled to MSIL with /CLR


    To the extent that it is possible, yes. There are a few situations in which a function will be left as native code (embedded asm springs to mind) but it'll mostly spit out MSIL and the framework will be required to run it.
  • scobleizerscobleizer I'm the video guy
    Beer: I'll try to do better.

    A lot of times in interviews I'm just trying to mentally keep up with the interviewee.

    She's a developer on the .NET CLR team. I'm nowhere near as smart as she is.
  • I disagree with rasx. In my opinion, Suzanne did make a very good appearance on camera, she didn't give me the impression of being shy, and especially for someone who is not used to speaking in front of people, she did a VERY NICE JOB in explaining her stuff to us!

    So... thumbs up for Suzanne!
    And for Robert and Charles too! I actually like your style better than Robert Hess's, because it is so natural and informal.

    Keep up the great work guys, we LOVE these videos!  And really, Channel9 has become one of the very few sites that I visit daily, even in weekends (only to see that it wasn't updated yet Wink)

    What's more, Channel9 changes the perception of Microsoft in a way that you just cannot imagine. Seeing all these nice and intelligent people behind the products that we use, creates a very strong bond. This unique inside view into a corporation achieves much more than even millions of dollars of marketing money ever could...

    Greetings from Belgium,
    dotnetjunkie Smiley
  • William Staceystaceyw Before C# there was darkness...
    Thanks guys.  Nice video Suzanne.  Nice to see a pretty face (not just) for a change.

    I would like to hear more about StrongName (SN) improvements that may be coming in loader or other.  Not about the FQ Assem Name per se, but protecting the assembly signature and the public key, and hence the bits, somehow.  Today, you can resign any assembly by changing the public key hex and using SN -R.  See http://www.atrevido.net/blog/PermaLink.aspx?guid=f772c18a-f389-4c28-bd6a-a30f4ccc84f5 .

    That pretty much allows you to change assem and resign.  You can also zero out the signature and use SN -V to skip verify.  As you can resign assemblies with a new key pair, I don't see the need for Delayed signed assemblies anymore.  As you can just sign your assems with a tmp key pair during dev, and have the "Key" team resign with real key before shipping and key testing.  That way, I ~think, you could do away with SN -V and the Delayed Signed process all togeter to remove the "skip" attack.  Any work on better protecting the public key and the signature (maybe CLR and meta data in assem working together to provide a solution)?  I realize there is a circular problem here with protecting x to protect y to protect z, but just interested if anyone is working on something new and interesting.  TIA!!!

    --
    William Stacey [MVP] 
  • MinhMinh WOOH!  WOOH!
    rasx wrote:
    * Suzanne C. seemed extremely tense but that could just be geek non-physicality.
    Nah. The effect is from looking back & forth at 2 interviewers ... the shifty eye syndrome. Nixon did the same thing in his debate w/ JFK.
  • my comment on the "please change your interview style" topic:

    in my opinion robert and charles try really hard to create this 3-person-friendly-chat style so people don't feel the pressure of talking infront of a camera and infront of an online audience. i also think that they really succeed in that. not only the public speaking warriors like don box (no offence! don's speeches are among my favourites (i must say i like 'the ballmer' most on stage)) but also people who don't give public presentations all day feel comfortable being on channel9.. and i think you can see that throughout all of the videos. i wouldn't judge based on a few interviews where the private atmorphere didn't really work out. that happens.

    roberts interjectional Wink style  is something i really enjoy. i think it helps the interviewees to feel at home and not being afraid of just raving on about their work. we're friends with them. even if we don't know them personally. robert enforces that in a very natural way i think. i also like the "scoble-questions" a lot. "what are you most proud of in the product?" for instance. most uber-technical questions don't make people think as hard as this one does. that's something robert hess doesn't tend to do... keep things small and direct like they are!

    charles has obviously a tendency to ask some indepth technical questions. and i do think that they are always of general interest for the niners. asking indepth questions to a guy who's developed OSes and file systems his whole life is not the easiest thing! charles does it. after all we're geeks.

    the one thing i would like to add is that maybe if you gave the interviewees notice so they knew you are about to visit them in a week or so. i think this would also be the rersponsibility of the PMs in charge to make sure the team knows about channel9... not so that they can prepair themselves.. we all don't need that and they don't need that, more importantly... but to make them comfortable with the idea of being on camera. PMs shouldn't surprise the interviewees in those "tour-style" videos. Just let them spread the word of channel9. if they see that we're a bunch of friendly geeks ( sounds hard i know +g+) they won't hesitate to sit infront of the camera.

    i'm sorry this post has gotten so long.. but i feel that the mood and style of the channel9 interviews is just the right thing. let robert hess do his thing.. he won't achieve this style we have here on channel9.
    (i respect robert hess and his team very much. i've just got a little tired of his discussions about concepts and philosophies behind something that might be aswell seen as geeky stuff).

    best regards
    - martin.
  • scobleizer wrote:
    Beer: I'll try to do better.

    A lot of times in interviews I'm just trying to mentally keep up with the interviewee.

    She's a developer on the .NET CLR team. I'm nowhere near as smart as she is.


    While I understand its much more effort to arrange, I find the videos where you get the Guest and someone the Guest knows (manager or whatever) together, there is less chance for the silent parts where your thinking whats the next smart question, as the other person who knows the subject area you are talking about with the guest can then chime in. There's many videos already where we have seen this work best I think, like

    Kevin Schofield - Tour of Microsoft Research
    Herb Sutter, the Future of Visual C++
    Kit George - Tour of .NET CLR Base Class Library Team (Part II)

    This tour with expert + a good conversation with guests format is very good as there can both be expert conversation and novice questions and less chance for akward silence. And the guest may even feel more comfortable when theres someone (s)he knows better to help out if the question is going a bit out of his/her area of knowledge etc..

    And my hidden agenda: Less of The Scobleizer laughing and more of the interesting conversation between people who know what they're talking about - if they go too much rocket science, you can always let them know.

    But actually I feel stupid whining about this, most of the videos lately have been like I've hoped here, for this video I guess you just could not arrange the better setup?
  • As far as I can tell, Charles did a good job trying to make Suzanne feel confortable.

    There was some tense energy
    to be felt, but I don't necessarily think it's anybody's fault. I'm not sure how much can be ascribed to gender dynamics, but gender dynamics are what they are and some people might get caught in
    a cross-fire of contradictory expectations (or what
    they imagine society expects), especially if they are a minority gender in a given field. Especially if they are smart.

    Certainly, the "geek" image is male-centered and
    might be alienating for techy women i guess...
    If I were Robert, I wouldn't push the geekiness talk so much... There's some gender issues with it, like with the image of hip-hop homies and the surrounding narrative.

    All in all I think Suzanne did a pretty good job and I liked those interviews a lot.
  • Personally, I think you both have done a terrific job and give a great sense of cross-section and great interest in a whole variety of subjects.  XML talks and MS Research talks top the list as far as I'm concerned.  I'd be curious if it would be possible to rate the talks so you (and we) get a sense of what worked and what didn't.  Not necessarily the person being interviewed, but the setting, timeframe, environment, etc.

    I noticed that Suzanne was kind of sweating visibly (I guess I was viewing full-screen rather than in a mini window) so I had the sense she felt put on the spot for an impromptu talk.  That stuff is definitely not easy for most people.  But that's how I like it - a raw and uncut view of the people at Microsoft to some extent.

    Dan Lipsy
    Stevens Institute of Technology
    Student Ambassador to Microsoft


  • rasxrasx Emperor of String.Empty
    scobleizer wrote:
    My hat is off to Suzanne, though. She's very smart. I think the second part of the video is a little better.


    Yeah, I don't want to bring up the Amanda interview and the Suzanne interview like they must go together because they are both of the same gender. People are allowed to be different.

    In an effort to not accuse you guys of having bad experiences with female interview subjects I cannot avoid making sexist observations. But the great thing about these 'new days' of American "liberty" and "freedom" my sexist remarks are totally insignificant to the "good people of Texas" all over the world.
  • rasx wrote:

    In an effort to not accuse you guys of having bad experiences with female interview subjects I cannot avoid making sexist observations. But the great thing about these 'new days' of American "liberty" and "freedom" my sexist remarks are totally insignificant to the "good people of Texas" all over the world.


    I'm not sure if such comments are part of the solution or part of the problem.

    I disregard political correctness for its ficticious character - trying to conjure the problem by putting enough tokens on the front page (analyze the demographics on pictures on ms.com)

    But I also disregard the right-wing version of political correctness which dismisses equality as a ficticious issue. It is not.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    Beer28 wrote:
    I think that's scoble in the background

    <quote>
    15:51

    quest: you haven't been writing managed code for your entire career then right? it's only been out for 5 years right?

    response: right

    quest: so what was the biggest challenge you found getting into the managed world
    </quote>

    So "managed" has only been out around 5 years, if you're refering to the term which I believe was coined by microsoft. VM managed code has been around for 10+ of years now, and was popularized with Java which has been around almost 10 with it's 1.0-1.1 jdk that was only for solaris and windows.

    So my question is, does managed mean VM managed in general, or does it mean MSIL?

    Because I hear managed used as a replacement for MSIL alot, then some other people use it to refer to virtual machine runtime managed code.

    So since I think MS coined the term, perhaps somebody can clarify.





    Managed comes about from some runtime features that currently aren't exploited in common scenarios. The guts of the runtime can be thought of as a request/response cycle with messages. So when you make a call on a method, the call is packaged as a message and follows a request/response cycle. Just like it's possible to 'manage' messages in a TCP/IP environment it's equally possible to 'manage' runtime messages.

    Spend some time spelunking around System.Runtime.Remoting.Context and System.Runtime.Remoting.Messaging.


    So it goes alot more further than simply managing memory etc... It's more about having an environment where programming messages can be managed.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    I didn't say the CLR was a request/response system. I said it could be thought of as a request/response system.

    I won't even answer the rest. It's pretty clear you don't understand how the CLR works. Everything is represented a message inside of the CLR. Spend some time investigating those namespaces and then we can talk.  

    Also messsages != managed. The managed aspect comes into play with this notion of an omnipresent thing, a manager if you will, looking down at message paths saying yes you can do this, no you can't do that. Oops you actually need to go here.

    Finally anyone who doesn't acknowledge that the CLR is COM done right (or COM version 3.0) is deluded. In fact IIRc the original name for the CLR was COM+2.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    dood. every single programming construct - even in a simple program like a console hello world - is an IMessage. Every methodcall, evey constructor call, every property get or set, every event, every delegate. The runtime deals with them all as IMessages. In fact it is accurate to say that all the runtime does is stitch together, resolve and manage messages.

    Feel free to scan whatever, it isn't going to change the way it works.

    Don't let the fact that all this stuff lives in a remoting namespace confuse you.

    If you really want to understand how it works, download rotor and navigate to \sscli\clr\src\vm\. You will find a unmanaged counterpart to every single call construct used in the managed environment. The critical class is message.cpp basically what it does is well... here's the comments

    /*============================================================

    **

    ** File: message.cpp

    **

    ** Purpose: Encapsulates a function call frame into a message

    ** object with an interface that can enumerate the

    ** arguments of the message

    **

    ** Date: Mar 5, 1999

    **

    ===========================================================*/

    The runtime views everything as a message and the runtime manages these messages. Again, it's pretty clear to me that you have no idea what you are talking about.

  • rasxrasx Emperor of String.Empty
    Zaczek wrote:
    rasx wrote:
    In an effort to not accuse you guys of having bad experiences with female interview subjects I cannot avoid making sexist observations. But the great thing about these 'new days' of American "liberty" and "freedom" my sexist remarks are totally insignificant to the "good people of Texas" all over the world.


    I'm not sure if such comments are part of the solution or part of the problem.



    My comments were by definition sexist. Your wish is to extend my assertions into the phrase you have been taught, "political correctness." So I agree with you that you are not sure. And I am no "problem" for the "good people of Texas" because I have no nuclear weapons. The data have been transmitted. Please parse the data. Use quotes. Do not use the uncertainty of loyal captivity.
  • rasx wrote:

    My comments were by definition sexist. Your wish is to extend my assertions into the phrase you have been taught, "political correctness." So I agree with you that you are not sure. And I am no "problem" for the "good people of Texas" because I have no nuclear weapons. The data have been transmitted. Please parse the data. Use quotes. Do not use the uncertainty of loyal captivity.


    Which parser do you use? Mine barfed on this.
    And which definition are you talking about? You didn't import any definitions. Your stuff doesn't compile.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    Beer28 wrote:
    Paul D. Murphy wrote: dood. every single programming construct - even in a simple program like a console hello world - is an IMessage. Every methodcall, evey constructor call, every property get or set, every event, every delegate. The runtime deals with them all as IMessages. In fact it is accurate to say that all the runtime does is stitch together, resolve and manage messages.


    This is the way I understood it from what reading I did on the topic. I tried to compile the rotor source but it had threading that was unique to solaris ./configure reported errors on the build.

    So I'm going to look at sun's instead which released 3 builds for different types of systems.





    So what you are saying is you are going to study an inferior virtual machine that supports a lowest common denominator threading model?

    The fundametal difference between the CLR virtual Machine and the Java Virtual Machine is this message based architecture. Like I said, while this is not commonly exploited it does open up an incredible array of possibility.

    You will see, in a few years Microsoft is going to 'flip the script' and all this message stuff is going to make a whole lot of sense. When that happens I suspect your little penguin will start to shake and ultimatly implode.

    Maybe, just maybe if you studied what Microsoft is doing with the runtime you would get it and help the communist duck live to see a future in the computing arena. But in your arrogance I doubt that will happen, so let me wish you fairwell; because by 2010 you won't be relevant at all.

    Maybe you should just buy a Mac. At least they understand a: good threading models b: good network stacks and c: the future of the personal computer.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    Beer28 wrote:
    by "some local module call some method or some data", i mean call a method, or reference data, not call bytestring data of course.

    When I wrote "data is mapped from metadata", I mean of course it's IL instructions are converted to opcode instructions, then it is mapped, I think that's done on the fly, where only the methods that are immediately going to be called by the module are compiled and their start address put in the lookup table.

    As to whether the calls and references are done directly or through a messaging system, you got me, but that's peripheral.

    You're actually lucky you got the rotor source to build and breakpoint through it seeing how it works. I'm going to use java when I study VM's because I can break through on my own system with that.



    You are totally missing the point of it. In a message based system, there is really no need for a module to be local. If you would like me to explain it to you, don't hesitate to ask. 
     
    And FWIW, I've never built Rotor - I just know how to read the code and I've spent alot of time programing with IMessage on the managed side.

    Sorry if I sound so harsh but I've been reading your back log of posts and find you to be an arrogate, uninformed blabber mouth would really doesn't understand the Microsoft platform at all and who has no intention of doing anything other make inflamatory comments that are designed to make noobs feel stupid.

    If fact the only reason why I started posting here was to shut you up, or at least force you to make sense.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    Beer28 wrote:

    You can accuse me of being arrogate, even aggregate, but never arrogant! Wink


    I dyslexic. Get used to it.
  • Paul D. MurphyPaul D. Murphy The Anti-Beer
    Beer28 wrote:

    So if a module inside an app domain calls a method in itself after it's mapped it doesn't go to the switchboard pointer lookup table mapped from metadata and call the function? It goes through a messaging cycle for call/ret routines? (without remoting or some other network transport marshalling of set types)



    Yes. That's exactly how it works. Let me give you an analogy.

    Consider a router. When a packet comes into a router on an interface the router looks at that packet and makes some decisions about what to do with that packet. In some cases it might need to wrap that packet (e.g. nat), In some cases it might need to unwrap that packet (e.g. nat again). It does this by using some internal state (a routing table).

    The runtime can be thought of in a similiar fashion. So as method messages calls are coming into the runtime some state tables are used to load and execute code, which in turn generate return messages.
  • more than one year and the video is not available to download Sad

     

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.