tag:blogger.com,1999:blog-37315020785281199912024-02-19T05:58:50.866-08:00L4::thesisNow I understand that I have to do what I think I was ment to do.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-3731502078528119991.post-24271493195362158032007-07-16T12:01:00.000-07:002007-07-16T12:04:37.540-07:00almost doneIt's been some time since the last post, I've been very busy, I'm almost done, so this may be my last post about this undergrad project specifically, I will edit this with project's download regarding information, I'll probably will start a sourceforge.net project, so for now on this blog, will tell things about different things that happen in my life, that only matter to me and I just want to keep on for the record.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-81666748356356057102007-05-30T23:50:00.000-07:002007-05-30T23:56:14.177-07:00So what is it that you're doing Jorge?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOqLXcOhzbCOiOAORQvB1_p1LqvdyiiTVRn_q60reS6cwOMTx-UVMnddSahkQS-2XvJdW347ZhmOYpXWOrn9un9nFLRqMg4lxd6zGeqb8d0qdAmLWa71xIl5OgXs-0R64QPiPX7PAjiLcV/s1600-h/structure.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOqLXcOhzbCOiOAORQvB1_p1LqvdyiiTVRn_q60reS6cwOMTx-UVMnddSahkQS-2XvJdW347ZhmOYpXWOrn9un9nFLRqMg4lxd6zGeqb8d0qdAmLWa71xIl5OgXs-0R64QPiPX7PAjiLcV/s320/structure.png" alt="" id="BLOGGER_PHOTO_ID_5070614345796808962" border="0" /></a><br />Well, sometimes Images have more words than bytes (joke?), anyhow it's called MPSched, a multi personality scheduler.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-57073985140032395242007-05-30T04:15:00.000-07:002007-05-30T13:38:02.936-07:00Problems breathing?, get some DoxygenWell, I found this project which really can give some Oxygen<br /><br /><a href="http://www.stack.nl/%7Edimitri/doxygen/">http://www.stack.nl/~dimitri/doxygen/</a><br /><br />It helps people around the globe on documenting code.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-79220327371252807212007-05-25T03:46:00.000-07:002007-05-25T04:23:45.748-07:00ICONTEC up my ASS!!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf37jXugSi39ywxvygSOovO3jXDHjx2NKHU5H_JiD6rRDJvwUgyMWazEvFcSh0NbAN3tRpU5Ha6VWeDpIGQnjAvwEzzAx8Gw48i22GO_mhYa8g_1LkCevbfPqQyATT379wjcBmueeYpZ-d/s1600-h/icontec.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 232px; height: 301px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf37jXugSi39ywxvygSOovO3jXDHjx2NKHU5H_JiD6rRDJvwUgyMWazEvFcSh0NbAN3tRpU5Ha6VWeDpIGQnjAvwEzzAx8Gw48i22GO_mhYa8g_1LkCevbfPqQyATT379wjcBmueeYpZ-d/s320/icontec.jpg" alt="" id="BLOGGER_PHOTO_ID_5068452775476884738" border="0" /></a><br />Well, <span style="font-weight: bold;">AFTER HARD WORKING ON IT, I STILL CAN'T MAKE MY DOCUMENT LOOK AS UGLY AS ICONTEC WANTS ME TO!: </span>Story begins yesterday when I lost all my day working on something I couldn't avoid to do; unfortunately any UPB's undergrad project documentat should be properly delivered in compliance with ICONTEC norms for documents, thing is, I'm using LATEX and as you can imagine there is not a single LATEX class for ICONTEC on the searchable planet (google), meaning that I have two options: redo on M$ word, or .cls DOITYOURSELF, since such animal was climbing my leg directly to my ass, I decided to put an end to it yesterday. Well, after a complete day of tweaking the standard neat book class; <span>I STILL CAN'T DEFEAT IT PROPERLY INTO ICONTEC</span><span style="font-weight: bold;">, IT STILL LOOKS SOMEHOW NICE!!!!!!!!!!!!!, </span>once I get it done, I'll sure share such .cls file to the world.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com1tag:blogger.com,1999:blog-3731502078528119991.post-76339856390321927932007-05-16T08:12:00.000-07:002007-05-16T08:43:58.045-07:00Dresden's TUDOS<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2XQxktAYXorOcvC_wM7kJTGIomJnQ6FE6lpbYnvyG1EfnMcXX-OQonWffUBpWHDxZTLJOmJgVW5k2GC-CxLhtVjaQGvSYYBjMyN8LWJCPQa3SmFBhtKl3ROBG1La989zXaGIR-0_HvKQ/s1600-h/funny.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 218px; height: 291px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR2XQxktAYXorOcvC_wM7kJTGIomJnQ6FE6lpbYnvyG1EfnMcXX-OQonWffUBpWHDxZTLJOmJgVW5k2GC-CxLhtVjaQGvSYYBjMyN8LWJCPQa3SmFBhtKl3ROBG1La989zXaGIR-0_HvKQ/s320/funny.jpg" alt="" id="BLOGGER_PHOTO_ID_5065177330337740002" border="0" /></a><br />It seems that not everything in Dresden is about neonazis, people at UT Dresden, have been working hard for the last years on L4 fiasco, among of which I will want to have in record:<br /><ul><li><a href="http://www.blogger.com/img/gl.link.gif">Driver Reuse In The L4 Environment</a></li></ul><ul><li><a href="http://www.blogger.com/img/gl.link.gif">Qt for the L4 Environment</a></li></ul><br />Three thumbs up for UT-Dresden!!!,<br /><span style="font-size:85%;"><span style="font-style: italic;">too bad I still feel scared about the idea of visiting some day. </span><br /></span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-60042602256059503342007-04-26T18:06:00.000-07:002007-04-26T18:16:44.788-07:00evolving to OKL4Well, I was out of town for almost one week, now that I'm back, I've been informed that OKL4 has been released at <a href="http://ok-labs.com">Open Kernel Labs</a>, and now getting it up and running seems much more simplier, than old iguana-devel:<br /><br /><span style="font-size:78%;">wget http://portal.ok-labs.com/_assets/downloads/okl4_release_1.4.1.1.tar.gz<br />tar xvfz<br />okl4_release_1.4.1.1.tar.gz<br />./tools/build.py machine=ia32_pc99 project=iguana wombat=True simulate<br /></span><br />I've noted some changes:<br /><br />there is no lua script and init for iguana, therefore, I have a few questions:<br /><br />What is the l4 to wombat init sequence, and where can I customize it?<br /><br />The other thing: I'm trying to understand the iguana/server/src/main.c<br /><br />but I can't find the server_loop() function code.<br /><br />Here is some output:<br /> <span style="font-size:85%;">jetorres@dolce:~/cool/okl4_release_1.4.1.1/iguana$ grep -r server_loop * ../libs/*<br /></span><div id="mb_0"><span style="font-size:85%;"> naming/src/naming_server.c: server_loop();<br /> serial/src/main.c: server_loop();<br /> server/src/main.c:extern void server_loop(void);<br /> server/src/main.c: server_loop();<br /> timer/src/main.c: server_loop();</span></div>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-83499713078869308522007-04-11T12:25:00.000-07:002007-04-13T02:32:49.793-07:00Genesis IIVarious processes running in the same computer implies a risk of having one process corrupting some other process memory, because of that; memory protection concept evolved into the allocation of distinct pages of memory for each process into segments, its limitations are defined by two hardware registers, hence, if a process tries to access memory outside the defined segment a protection mechanism is used, such as Intel's general protection faults. Having that; the concept of memory management unit (MMU) appeared as the set of components responsible for handling memory access from the CPU.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPL4wwAvpB54mDW8pAKqzV-t-IYkhNWnDCp04Hu6OdAfGSYZlyBxKsUYNLrnWba2ZHx3Ro3bdrz6IDZwQKz97vb8t4kwV0l8o6TmiWVcJUtfJiM12kfyGraynJ2aCKcpMqVH3o3fFA4fAy/s1600-h/l4-scheduler.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPL4wwAvpB54mDW8pAKqzV-t-IYkhNWnDCp04Hu6OdAfGSYZlyBxKsUYNLrnWba2ZHx3Ro3bdrz6IDZwQKz97vb8t4kwV0l8o6TmiWVcJUtfJiM12kfyGraynJ2aCKcpMqVH3o3fFA4fAy/s320/l4-scheduler.jpg" alt="" id="BLOGGER_PHOTO_ID_5052320384522189538" border="0" /></a><br />Time-sharing has also had a very interesting evolution into what we know as multitasking, which defines scheduling policies that decide which task runs at any given time, and establishes a mechanism known as context switching that reassigns CPU from one process to another. Concept began at computing early days, where peripherals (devices hooked up to the CPU) became much more slower than processing units, so when a process needed access to a peripheral, the CPU had to stop executing instructions while such peripherals were busy. Thus, multiprogramming idea came to scene by context switching every time a process was waiting, but that gave no guarantee of process to be run at proper times, since one could run for very long periods of time without triggering a context switch. That was absolutely not suitable for interactive computing needs, therefore cooperative multitasking was designed; there, processes ceded time to each other in a voluntary manner, however multitasking dangerously relied on each process to efficiently give time to the others, consequently the preemptive multitasking idea was born about assigning operating time slices to each process. Only then; processes were cataloged into two different groups; CPU-bounded ones as those who were fully utilizing CPU, and I/O bound processes as those waiting for input or output from peripherals. A perfect Martini came out of blending preemptive multitasking with hardware interrupts, which would rather than inefficient I/O bound process to constantly check for resource availability. It gives a call to subroutines handling the interrupt event of resource availability, changing I/O bound processes state from on hold or blocked to unblocked as it may correspond, meaning that blocked processes would properly return to execution.<br /><br />At that point processes were so handy, that programmers started use them by assigning different tasks to different processes, which then was generally understud as a set of cooperating processes that people started to reffer as applications, the main issue behind it, was finding appropriate ways to exchange information between application's processes. As a result of that search; Threads were proposed as cooperating lightweight processes coexisting in a shared memory space or context, thus, another advantage was found in their favor, and it was that memory context switching was not necessary when <span style="font-style: italic;">context switching</span> between threads.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-51154937936044161702007-03-30T02:58:00.000-07:002007-04-11T15:04:51.601-07:00בראשית-Bərêšîth-Genesis<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCVQlXF6W58EuzPoJ5eQyJqpr7-iQp5tI1Vsqx5kTqzUitt6-GLSnx7JalZ_ICbKVhPSMevNqkNcxahNXyyozo3PzcP5WS8B8g75qa3jrASfKIgLga37ZzJ-wzYX27DZMo2rZL5PXGHlU3/s1600-h/adam_eve.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 256px; height: 279px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCVQlXF6W58EuzPoJ5eQyJqpr7-iQp5tI1Vsqx5kTqzUitt6-GLSnx7JalZ_ICbKVhPSMevNqkNcxahNXyyozo3PzcP5WS8B8g75qa3jrASfKIgLga37ZzJ-wzYX27DZMo2rZL5PXGHlU3/s320/adam_eve.jpg" alt="" id="BLOGGER_PHOTO_ID_5047669861868116386" border="0" /></a><span style="font-size:78%;"><span style="font-weight: bold; font-style: italic;">I decided to start from the beginning, and here it goes my first undergrad chapter:</span></span><br /><br /><span style="font-style: italic;">In the beginning, the earth was without form and </span><a style="font-style: italic;" href="http://void.fluidsignal.com/">void</a><span style="font-style: italic;">, and darkness was upon the face of the deep </span><span style="font-style: italic;font-size:78%;" ><span style="font-weight: bold;"><span style="text-decoration: underline;">[</span></span><a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Torah" title="Torah">Torah</a><span style="font-weight: bold;">]</span></span><span style="font-style: italic;">; many, many years later; the sons of the sons of the sons......of </span><span style="font-style: italic;font-family:arial;font-size:85%;color:Black;" >Noah</span><span style="font-style: italic;"> said; let it be a CPU </span>and there was a Central processing Unit, or simply <span style="font-style: italic;">processor</span>, whose job was to process data and to interpret computer programs instructions, hence an important difference between processes and programs: were programs are the set of instructions which we call a process once they are being processed by the processor (makes sense doesn't it?), in other words a process is a program under execution. <span style="font-style: italic;">And Noah's grand grand... children saw that the processor was good</span>, but for this processor to be of some real use; it had to interact with some computer resources. And as systems went larger and complex, managing computer resources and processing interactions became a development complicated issue. Thus, operating systems (OSs) were born as a set of programs developed to provide standardized solutions for managing computer software and hardware.<br /><br />Having operative systems and their services; a new world of concepts such as process and memory management, device drivers, disk and file systems, networking, etc. started to have a meaning and reason for existence.<br /><br />As long as the computer is a Harvard or von Neumann architecture like the one the reader certainly has at home, only one process can run per CPU core at a time. As a solution for that; the time-sharing magic appeared at early 1960's, enabling concurrent execution of many processes at once per processor core, the trick behind it is called process management; and it is simply done by quick-switching processes, therefore distributing CPU time, which will be explained in deatail.<br /><br />Having many concurrent executions dramatically increases memory management complexity, since it has to coordinate how memory is used by processes. Keep in mind that now days system's memory, is divided in various types, depending on its access speed. we have registers, CPU cache, random access memory (RAM) and at last: disk storage. The memory manager deals with those various types of memory by determining how to move data between them. To help with that task, virtual memory management was invented, there, memory is divided in virtual and physical addresses, having the virtual ones as those unique to processes, and real addresses as those unique to memory manager and CPU, that provides a separation between the physical memory and addresses used by programs. It is important to understand that in memory; programs consist mainly of two things: ``Text'' where program's running instructions are stored, and ``data'' where hardwired and volatile information such as string constants and variable values are stored, but as programs become a little bigger, the use of functions or subroutines is necessary, so there is a need for storing current process state before they call a function, consequently there must be some specific place to store such information, which is called the process's stack. For security reasons some operative systems split text, data and stack sections into what is called segments. Having that clear, when a program is about to be run, a virtual memory space for its text, data and stack information is created, that means that at process point of view, virtual memory its the only memory available, which is organized , but as process's need for more memory arises, data segment can change its size dynamically, by reallocating memory from unused memory areas called heap, that method is known as heap-based memory allocation.<br /><br />It is common to hear people talking about 64-Bits now days, due to AMD's successful publicity, what this number is telling us is the largest number an AMD-64 can work with at a time, called word-size; which in that specific case is 64 bits. There are many implications from it, one important comes if we think about addressable addresses in memory, for example the common 32-Bit architectures have top of 2^32-1 bits = 4GB to work with. Therefore having a virtual address space from 0x00000000 to 0xffffffff, which is divided in peaces called pages. Same thing happens to physical memory but divisions are called frames. So a program segment can be located in virtual address A found by its page and offset numbers but it really corresponds to a physical address B, located by its frame and offset numbers, and what the virtual memory manager does is to translate virtual into physical addresses, with the use of a page table containing page-frame mappings, but address translation by software rutines is time consuming, and therefore reduces system's eficiency, so they decided to fasten this by storing most recent page-frame mappings into a very fast content addressable memory, known as the translation lookaside buffer (TLB), in which the search key is the virtual address and the search result it's corresponding real address. If no match ocured then a software address translation is trigged, improving virtual memory management speed.<br /><br /><br /><br /><span style="font-style: italic;">to be continued.....</span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-29350908001316946592007-03-28T23:30:00.000-07:002007-03-29T11:45:14.605-07:00Good old make times before scons<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4qPs7YIXxz6sGKSyeeyONEPI17ekfvXuUOA0tbPg-xXLPYnvoqpn_A6ICZ8ayq2JoZ2hfN8-Ch108sW4t6_TWwaQMlVNCTQwr0QpY1hb03rIHLhyBO3h0H9R9geVd1Jkihn1toe8iRsNH/s1600-h/demartino_pigeon_en_detresse.gif"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4qPs7YIXxz6sGKSyeeyONEPI17ekfvXuUOA0tbPg-xXLPYnvoqpn_A6ICZ8ayq2JoZ2hfN8-Ch108sW4t6_TWwaQMlVNCTQwr0QpY1hb03rIHLhyBO3h0H9R9geVd1Jkihn1toe8iRsNH/s320/demartino_pigeon_en_detresse.gif" alt="" id="BLOGGER_PHOTO_ID_5047230332094912898" border="0" /></a><br /><p>What tha f*&%k have I gotten my self into?, sent this paper signing my own death penalty, I was very wrong thinking, if I was planning to finish my undergrad project in no longer term than a month, hence I could start backpacking Latin America for as long as my wallet would've supported it. why didn't I do some stupid piece of dummy borland software, like every f**&cking else. Did I mentioned that I never liked python at all?, well surprise, I'm starting to hate scons build system, it makes it dificult for me to understand things, and I also feel frustated because of me not understanding as quick as I expected the iguana-devel sources, too late to figure out that it is not as simple as understanding the papers.<br /><br />WHEREEEEEEEEEEEEE THE HELL IS THE SCHEDULE FUNCTION EXECUTED FOR THE FIRST TIME IN WOMBAT????????<br /><br />Any how, just for the record: To find a function code: Must first check on the file you're reading, then if nothing is there; cd to libs dir, and <span style="font-style: italic;">grep -r "FunctionName" *</span>.<br /><br />Oh, also some useful documents I've found, for "code understanding"<br /><br /><a href="http://benno.id.au/l4_dev_talk.pdf">L4 Development</a><br /><a href="http://www2.blogger.com/l4hq.org/viewcvs/pistachio/doc/refman/l4-x2.pdf">L4-X2 Reference manual</a> (outdated, for what I'm working on, since Im using the N series :)<br /><br />also found this on the mailing list:<br /><br /></p><pre>><i> Can anyone help me and describe the execute process of L4:pistachio mainly? Thanks.<br /></i><br />See the "Teaching" section of the L4<span class="blsp-spelling-error" id="SPELLING_ERROR_0">Ka</span> web. There are some very<br />interesting slides like:<br /><br /><a href="http://i30www.ira.uka.de/teaching/coursedocuments/80/mkc-03.pdf">http://i30www.ira.uka.de/teaching/coursedocuments/80/mkc-03.pdf</a></pre>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-16980826728606643402007-03-28T15:58:00.000-07:002007-03-28T16:01:06.050-07:00template env for luaI cant understand exactly where is it that the lua env variables values are set, for the iguana startup script. I'm not too much into python, but as I can see there is something at the IGUANA Init SConstruct, but still I don't understand how scons args.get works, and where such args are set.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-9680808151219245502007-03-27T08:47:00.000-07:002007-03-28T13:26:33.330-07:00Wombat memory<span style="font-style: italic;font-family:webdings;font-size:85%;" >I now understand that system's memory size is passed to wombat by the iguana init server as Hal Ashburner said in his last e-mail, my question is about the LINUX_HEAP_SIZE definition, is that the amount of RAM memory assigned to wombat L4's thread?, or is it the parameter that iguana passes to wombat informing about memory virtual size, or both?<br /></span><pre style="font-weight: bold;"><tt><tt>Hal Ashburner<span style="font-family:webdings,mon;">:</span></tt></tt><span style="font-family:webdings;"></span></pre> <span style=";font-family:webdings;font-size:85%;" ><span style="font-weight: bold;">This is the size of the iguana memsection that is created and backed byphysical memory that is passed to wombat that wombat can then use for</span><br /><span style="font-weight: bold;">its heap.</span><br /><br /><span style="font-weight: bold;">As far as wombat is concerned this is all the memory available for its heap, it knows of no more and can't use anything else.</span></span><br /><span style="font-style: italic;font-family:webdings;font-size:85%;" ><br />And what is the L4_ZONE_SIZE?,</span><span style=";font-family:webdings;font-size:85%;" ></span><span style="font-style: italic;font-family:webdings;font-size:85%;" ><br /><br />Oh, yes and about my last e-mail, does somebody know why is it that I have to use the -nographic parameter with qemu in order to run the c.img image?<br /><br /></span><pre style="font-weight: bold;"><tt><tt>Hal Ashburner<span style="font-family:webdings,mon;">:</span></tt></tt><span style="font-family:webdings;"></span></pre> <span style=";font-family:webdings;font-size:85%;" ><span style="font-weight: bold;">Because there is no vga driver enabled in the version of wombat you are<br />using.</span></span><br /><span style="font-style: italic;font-family:webdings;font-size:85%;" ><br />Thank you very much,<br /><br /></span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-52622405908413158692007-03-22T09:53:00.000-07:002007-03-22T10:42:32.626-07:00L4 embedded + Wombat Linux in 3 simple steps, Magic?No theres no magic, thank god I use <span class="blsp-spelling-error" id="SPELLING_ERROR_1">debian</span>, here I will describe how to get your wombat up&running within few commands:<br /><br />First you have to get the required software + plus some other useful things:<br /><br /><span style="font-size:85%;">apt-get remove --purge <span class="blsp-spelling-error" id="SPELLING_ERROR_3">gcc</span> g++<br />apt-get install <span class="blsp-spelling-error" id="SPELLING_ERROR_4">gcc</span>-3.3 g++-3.3<br />apt-get install python<br />apt-get install <span class="blsp-spelling-error" id="SPELLING_ERROR_5">scons</span><br />apt-get install <span class="blsp-spelling-error" id="SPELLING_ERROR_6">sudo</span><br />apt-get install <span class="blsp-spelling-error" id="SPELLING_ERROR_7">qemu</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_8"><br />apt-get install qemuctl</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_9">vgabios</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_10">qemu</span>-launcher <span class="blsp-spelling-error" id="SPELLING_ERROR_11">kqemu</span>-common<br />apt-get install <span class="blsp-spelling-error" id="SPELLING_ERROR_12">kqemu</span>-modules-<kernel><br />apt-get install bazaar</kernel></span><br /><br /><span style="font-weight: bold;">WARNING <span class="blsp-spelling-error" id="SPELLING_ERROR_13">gcc</span>-3.3 and g++-3.3 are required!</span><br /><br />Now that we have what we need, we will get the last version of iguana-<span class="blsp-spelling-error" id="SPELLING_ERROR_14">devel</span> into some <span class="blsp-spelling-corrected" id="SPELLING_ERROR_15">particular</span> directory, check out this <a href="http://www.ertos.nicta.com.au/software/baz-howto.pml">link</a> for further explanation.<br /><br /><span style="font-size:85%;"><span class="blsp-spelling-error" id="SPELLING_ERROR_16">mkdir</span> wombat-rep<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_17">cd</span> wombat-rep<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_18">baz</span> register-archive http://www.ertos.nicta.com.au/arch/public/<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_19">baz</span> get ertos@nicta.com.au--public/iguana-project--devel<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_20">cd</span> iguana-project--<span class="blsp-spelling-error" id="SPELLING_ERROR_21">devel</span>--1.2--version-0/<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_22">baz</span> build-<span class="blsp-spelling-error" id="SPELLING_ERROR_23">config</span> packages</span><br /><br />Now go get your self something to eat!!<br /><br /><span style="font-size:85%;"><span class="blsp-spelling-error" id="SPELLING_ERROR_24">scons</span> machine=<span class="blsp-spelling-error" id="SPELLING_ERROR_25">pc</span>99 simulate</span><br />or<br /><span style="font-size:85%;">tools/scons.py machine=pc99 simulate<br /><span style="font-size:100%;"><br />Results on the build folder, and if getting hands dirty is wanted, there's a doc folder with iguana framework information.</span><br /><br /></span>That's it!!<span class="blsp-spelling-corrected" id="SPELLING_ERROR_26"> Special</span> thanks to the <a href="http://www.ertos.nicta.com.au/research/l4/"><span class="blsp-spelling-error" id="SPELLING_ERROR_27">ERTOS NICTA</span></a> group for making this as simple as it is!!!JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-40287115546261909492007-03-15T20:32:00.000-07:002007-03-15T20:46:12.437-07:00Just in case jorge sees it!<div style="text-align: left;">A few days ago (like 60!), I wrote Ben Leslie about sigma0 and its out of scene, and I forgot to post his answer, I beleve my friend Jorge, will find this useful for his project:<br /><br /><span style="font-size:85%;"><br /><span style="font-family: courier new;">>Well and the other question, this removal of sigma0 need, happens at the L4::N1 implementation or is it a very recent l4:Pistachio improvemnet?</span><br /><br /><span style="font-family: courier new;">I think it is N1. The change is that MapControl allows the roottask to insert explicit mappings, rather than relying on the address space of sigma0.</span></span><br /><br /><br /></div>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-23131925263935592822007-03-14T10:58:00.000-07:002007-03-15T20:25:03.955-07:00close your eyes.... OPEN UP!!What's it gonna be?, Last time I was talking about Gernot's idea of a user-level scheduler implementation for L4, but now I've come up with something using it, I've found what Sergio Ruocco wrote: <a href="http://www.ertos.nicta.com.au/publications/papers/Ruocco_RTSS_06.abstract.pml"><span style="font-style: italic;">User-Level Fine-Grained Adaptive Real-Time Scheduling via Temporal Reflection</span></a>, also he said that:<br /><pre><tt><tt>A decision on releasing the framework has not been made (yet), but you<br />can read more about it in this paper</tt></tt><br /></pre>It seems that I can implemented it my self plus some other things I believe I can add to it. The question is: What do I want it for?, well I wrote long time ago at the kenge users list about me wanting to merge down the wombat scheduler into a L4 embedded thread. so that's precisely what I have in mind. one important thing is that I cannot shoot my own foot, so I have to make my goal something like this:<br /><br /><span style="font-weight: bold;">TITLE</span> (which describes the goal): Framework for realtime Wombat Linux schedulerJORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-63647654588891966572007-03-14T10:42:00.000-07:002007-03-15T20:29:52.324-07:00Back on top of the saddleWell, as a dream come true, there is my self <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">knocking</span> on wood and more than happy to tell I'm jobless. Today is my first day back in Medellin, to get my hands dirty with my undergrad project.<br /><br />Fist things first:<br /><br /><span style="font-weight: bold;">Find me an advisor</span>: I called my friend <a href="http://apogeo.blogspot.com/">Rafael Gonzalez</a>, a very <span style="font-style: italic;"><span class="blsp-spelling-corrected" id="SPELLING_ERROR_1">busy</span></span> <span class="blsp-spelling-error" id="SPELLING_ERROR_2"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">fluidsignal</span></span> worker, teacher at the <span class="blsp-spelling-error" id="SPELLING_ERROR_3"><span class="blsp-spelling-error" id="SPELLING_ERROR_1">UPB</span></span> and a very nice guy, told him it was going to be related to L4, so he accepted. Now I have to write a project description, and e-mail it, lets see how he likes it!<br /><br /><span style="font-weight: bold;">(<span class="blsp-spelling-error" id="SPELLING_ERROR_2">ANTEPROYECTO</span>) Project description:</span> I have <span class="blsp-spelling-corrected" id="SPELLING_ERROR_3">promised</span> my self that this will be finished before <span class="blsp-spelling-corrected" id="SPELLING_ERROR_4">Friday</span> night!.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-46584968523192217492007-02-20T21:32:00.000-08:002007-02-20T22:26:36.694-08:00rafa:~# declare -x LIFE="Don't Become a Scientist"I don´t know where exactly would this post match the better, but here it comes: I DON´T FEEL like writing Italian at this moment, I'll probably come with something out of it after I get to chew and swallow, what my close friend <a style="font-weight: bold; font-style: italic;" href="http://posludio.wordpress.com/"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">rafa</span></a> advises, <span style="font-weight: bold;"><a href="http://www.physics.wustl.edu/%7Ekatz/scientist.html">DON´T BECOME A SCIENTIST</a>, </span>I remember late at <a href="http://www.fluidsignal.com/"><span style="font-weight: bold; font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_1">fluidsignal's</span></span></a> "<span style="font-style: italic;">working</span>" nights, long talking to him about the dreamer idea of becoming one of those he is now telling to <span style="font-style: italic;">do not touch</span>!!, I have only one thing to add, I do have dualities: entrepreneur or scientist: which could translate (like it or not) at the very end into money and knowledge of the art of making money or knowledge and just passion for making something that has nothing to do with money, very <span class="blsp-spelling-corrected" id="SPELLING_ERROR_2">contradicting</span> one from the other??, I really don't know but sometimes I say to my self, <span style="font-weight: bold; font-style: italic;">money can wait, </span>plus it is not just about becoming a scientist, it´s about the experience, new countries, new people. I <span class="blsp-spelling-corrected" id="SPELLING_ERROR_3">don't</span> want to be a <span class="blsp-spelling-corrected" id="SPELLING_ERROR_4">millionaire</span>, once dead no buddy remembers them!! (will my grandsons remember Bill Gates???) I truly <span class="blsp-spelling-corrected" id="SPELLING_ERROR_5">believe</span> that the reason I want to become a so called <span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">entrepreneur</span>, it´s just because I want to get into that level at which I <span class="blsp-spelling-corrected" id="SPELLING_ERROR_7">don't</span> have to care about money, and dedicate my life to something much more interesting, which I still have to find!.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com2tag:blogger.com,1999:blog-3731502078528119991.post-20138455453682522512007-01-29T17:37:00.000-08:002007-01-29T17:40:45.190-08:00B licensesKind Gerwin, wrote:<br /><br /><span style="font-size:85%;"><span style="font-style: italic;">> Hi Jorge,</span><br /><span style="font-style: italic;">></span><br /><span style="font-style: italic;">> Raf has a copy of his formal B model available for download at:</span><br /><span style="font-style: italic;">> <a href="http://xaph.net/x/APInov3.tgz">http://xaph.net/x/APInov3.tgz</a></span><br /><span style="font-style: italic;">></span><br /><span style="font-style: italic;">> As for B licenses: we don't really know.</span><br /><span style="font-style: italic;">></span><br /><span style="font-style: italic;">> Raf says he would advise against B, unless you or your institute already</span><br /><span style="font-style: italic;">> have some licenses available. You can always ask the manufacturers, though.</span><br /><span style="font-style: italic;">> The main tools are Atelier B and the B Tool, I think. There is also a new</span><br /><span style="font-style: italic;">> version of B coming from the RODIN project, but I don't think Raf's</span><br /><span style="font-style: italic;">> formalisation will be compatible with that.</span><br /><span style="font-style: italic;">></span><br /><span style="font-style: italic;">> Cheers,</span><br /><span style="font-style: italic;">> Gerwin</span><br /><span style="font-style: italic;">> </span></span><br /><br />This is my response:<br /><br /><span style="font-size:85%;"><span style="font-style: italic;">Hi Gerwin,</span><br /><br /><span style="font-style: italic;">Thank you very much, Raf´s advise against B, would be great, since we dont have any licenses.</span><br /><br /><span style="font-style: italic;">Why is it that you think that Raf's formalization wont be compatible with the B version from RODIN?, anyhow, I've seen the website: <a href="http://rodin-b-sharp.sourceforge.net/">http://rodin-b-sharp.sourceforge.net/</a>, but it seems that project stoped six months ago.</span><br /><br /><span style="font-style: italic;">Thank you very much,</span><br /><br /><span style="font-style: italic;">Jorge</span><br /><br /></span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-42630006154838407172007-01-22T16:39:00.000-08:002007-01-22T16:44:46.481-08:00PLEB-> Testbed for L4So I came across with PLEB, an XSCALE single board computer designed at NICTA. They have everithing one will need to get it done, form hardware designs, til software code for BIOS and the rest. They even have one with CAN node integrated,<br />More info about it:<br /><a href="http://www.ertos.nicta.com.au/hardware/pleb/">http://www.ertos.nicta.com.au/hardware/pleb/ </a><br />lets see if I cant talk <a href="http://jorgeecardona.blogspot.com">Jorge</a> to get his hands on it.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-41993558639508155832007-01-21T21:45:00.000-08:002007-01-21T21:51:48.629-08:00where did sigmas go?I wrote back:<br /><span style="font-size:85%;"><br /><span style="font-style: italic;"> This removal of sigma0 need, happens at the L4::N1 implementation or is it a very recent </span><span style="font-style: italic;">l4:Pistachio improvemnet?</span><br /><span style="font-style: italic;"> Now I'm a little more confused than last time. When you mean that you've removed the </span><span style="font-style: italic;">sigma0 need, you mean that it is not a provileged thread anymore?, giving freedom of </span><span style="font-style: italic;">implementation for memory management, so there is no thread memory space asingment at </span><span style="font-style: italic;">kernel level, and that task is now performed at a user level, at same level of memory </span><span style="font-style: italic;">manager? which makes sense. If so, would it be better having memory manager </span><span style="font-style: italic;">implementations wich will do both deliver memory for threads(sigma0) and manage memory?, </span><span style="font-style: italic;">is your simple sigma0 implementation</span><a style="font-style: italic;" class="fixed" href="http://www.ertos.nicta.com.au/software/kenge/sigma0/devel/" target="_blank"> http://www.ertos.nicta.com.au/software/kenge/sigma0/devel/</a><span style="font-style: italic;">, a demo of it?.</span><br /><span style="font-size:100%;"><br /><br />Just as a reminder, I havent found any information about the l4::N1, I'll have to search </span></span><span style="font-size:100%;">some more.</span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-86178371204559699902007-01-21T20:48:00.000-08:002007-01-21T21:04:10.337-08:00L4 User-level reflection schedulerI've found this article:<br /><a href="http://www.ertos.nicta.com.au/publications/papers/Ruocco_RTSS_06.pdf">http://www.ertos.nicta.com.au/publications/papers/Ruocco_RTSS_06.pdf</a><br />In which Sergio Ruocoo describes his 100 loc implementation of a user-level reflection scheduler, for realtime implementations without cahnges at l4 kernel, I assume it is about a L4 Thread with the SCHEDULLER attribute set to 0, any how, there's the article, I'll write about it once I finish reding it. For now:<br /><span style="font-size:85%;"><span style="font-style: italic;"><br />Computational reflection: “the activity performed by a computational system when doing computation about (and by that possibily affecting) its own state and computations”.</span></span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-2729454640242189232007-01-21T20:23:00.000-08:002007-01-21T20:31:41.190-08:00BenLeslie says: Sorry to tell, but sigma0 died!Well, what can I say, unexpected answer from the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">kenge</span> users list!. Friendly <a href="http://benno.id.au/">Ben Leslie</a> answered about sigma1:<br /><pre><tt><tt>Hi Jorge,<br /><br />We have actually removed the need for sigma1 (and sigma0). On our<br />latest version it does not exist.</tt></tt></pre>Further e-mail about this I'll write. And about B-toolkit, he was kind enough to CC to the L4 formal method author. And about scheduler I was correct.<br /><br />Few questions I have for my self, and for Ben <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1">off course</span>.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-91614983366019268752007-01-16T22:27:00.000-08:002007-01-16T22:35:40.774-08:00distributed or disturbed notion of sigma0Well, I had this project with my friend Jorge Cardona, about distributing an operative system trough a network of computers, so if you get to run a Virtual Machine on top of it, it would be transparent for the host OS, in other words a <span style="font-weight: bold;">transparent cluster configuration</span>.<br /><br />How about making <span style="font-weight: bold;">sigma0 </span>distributed over a network?, in that way VM machine threads memory on top of L4 would be distributed, and then, it wouldnt be too complicated to make a thread to manage distrubuted interrups and make virtualized wombat to use such thread, thus having wombat working under multiple computers at the same time, and one could do cool things such as active-active failover OS.<br /><br />Reading this B-method implementation i found this:<br /><span style="font-size:85%;"><br /><span style="font-style: italic;">Sigma0 is the default system pager. Its job is to take up all possible non-kernel memory on</span><span style="font-style: italic;"> start up, and give it out to threads as it is requested. <span style="font-weight: bold;">Sigma0 is not a memory manager</span>, and</span><span style="font-style: italic;"> does not accept any form of request to take back (free) the memory that has once been given</span><span style="font-style: italic;"> out. When other special threads load during the kernel loading procedure, memory is taken</span><span style="font-style: italic;"> from sigma0. After this is done, <span style="font-weight: bold;">a memory manager should take the remaining memory from</span></span><span style="font-style: italic;"><span style="font-weight: bold;"> sigma0 and manage it appropriately</span>. Sigma0 gets its own address space, and is a privileged</span><span style="font-style: italic;"> thread.</span><br /></span><br />If I understand OK; in order to make it real one would have to worry aboout sigma0 and a memory manager.JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-33938511386980511792007-01-16T22:17:00.000-08:002007-01-16T22:23:13.813-08:00echo mailto kenge-users >> /dev/null ??I DONT know why, every time I write to the kenge-users list I dont get any answers, this time I worte about some questions I had.<br /><span style="font-size:85%;"><br /><span style="font-weight: bold; font-style: italic;">to: kenge-users@ertos.nicta.com.au<br />Subject: sigma1 and L4 formal model</span><br /><br /><span style="font-style: italic;">Hi you all,</span><br /><br /><span style="font-style: italic;">I'm confused about what sigma1 is for?, I've found that it is about task persistency, but still it isn't clear to me, is it an atempt of having a swap memory manager?</span><br /><br /><span style="font-style: italic;">Another question, is there any CVS for the Rafal Kolanski formal description of L4 using the B-method?, are there any kind of B-toolkit research licences, for thesis projects, I want to use it for a formal model of L4 scheduler so that a privileged thread such as sigma0 but for handling time interrupts which will IPC to a user space thread in which schedulling dessisions will be taken. </span><br /><br /><span style="font-style: italic;">I understand that the internal scheduler is not a thread it self, it is just a function that chooses next thread to execute based on scheduller attribute.</span><br /><br /><span style="font-style: italic;">Thank you very much,</span><br /><br /><br /><span style="font-style: italic;">Jorge </span></span>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-10000386575217429552007-01-13T22:05:00.000-08:002007-02-20T22:14:15.681-08:00Gernot thesis supervisor?En <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">el</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">otro</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">lado</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">del</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">charco</span></span>, which textually translates, at the other side of the pool, is <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Gernot's</span></span> mail user agent (<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">MUA</span></span>), and suddenly a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7">weird</span> mail from: <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">jorge</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">torres</span></span><a href="http://www.ertos.nicta.com.au/education/theses.pml#ug-GH"> </a><torrmal@......> <a id="folderviewmsg4subjlink" href="http://www.ertos.nicta.com.au/education/theses.pml#ug-GH"> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">GH</span></span>126: User-level scheduling in L4:</a><br /><br /><span style="font-style: italic;font-size:85%;" >Professor <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10">Gernot</span></span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">Heiser</span></span>,<br /><br />I understand that you are a very busy person, so please receive my apologies for taking some of your time. I have seen your Thesis Topics list for undergraduate students, and I am convinced that User-level scheduling in L4 is what I want to do for my undergraduate thesis project. I have only one question: what can I do (if possible) In order for you to be my thesis Supervisor?,<br /><br />Thank you very much for taking the time to read this,<br /><br />Sincerely,<br /></span><br /><span style="font-size:100%;">ME,<br /><br />That was more than a week ago, so he probably wasnt interested at all, and </span><span style="font-size:100%;">decided to send it to the bulk mail, or to mark it as spam, since he </span><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_14" style="font-size:100%;">didn't</span><span style="font-size:100%;"> even answer something like: </span><span style="font-size:100%;"><span style="font-style: italic;">sorry, you are right <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15">I'm</span> very busy.<br /><br /></span>Even if it's his idea or not, due to its under public domain, and under the freedom of <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_16">choice</span> <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_17">I'm</span> proud of having to tell, if <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_18">I don't</span> find something more interesting in L4, that will be my thesis project whether <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12">Gernot</span></span> likes it or not!</span><a id="folderviewmsg4subjlink" href="http://us.f607.mail.yahoo.com/ym/ShowLetter?MsgId=1104_7719764_1220_653_661_0_38810_1637_1029075025&Idx=4&YY=5103&y5beta=yes&y5beta=yes&inc=25&order=down&sort=date&pos=0&view=a&amp;amp;amp;amp;amp;amp;amp;head=b&box=Sent"><br /></a></torrmal@......>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0tag:blogger.com,1999:blog-3731502078528119991.post-33583799545190315492007-01-13T21:36:00.000-08:002007-01-13T23:48:06.722-08:00B->AMNAbstract machine notation, I meet with a friend of mine, "<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">tocayo</span>" <a href="http://jorgeecardona.blogspot.com/">Jorge Eduardo <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">Cardona</span></a> and between beers, he told me about this thing he was reading, the B-method, so it came in to my curiosity <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">todo</span> reading list, and as i got to talk to him <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">tody</span> again i remembered, I found this site:<br /><a href="http://www.b-core.com/aboutb_method.html">http://www.b-core.com/aboutb_method.html </a><br />and documentation about it:<br /><a href="http://www.b-core.com/ONLINEDOC/Contents.html">http://www.b-core.com/ONLINEDOC/Contents.html</a><br />Jorge tells me that there is this guy at <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">NICTA</span> who came up with the L4 <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">microkernel</span> implementation using the B-method:<br /><a href="http://cgi.cse.unsw.edu.au/%7Erafalk/pubs/b-l4-api.pdf">http://cgi.cse.unsw.edu.au/%7Erafalk/pubs/b-l4-api.pdf</a><br />So having that on the table why not having a zero <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6">defect</span> thesis, as b-core <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7">promises</span>?<br /><br /><div style="text-align: left; font-style: italic;"><span style="font-size:85%;">The B Method, developed by Jean-Raymond Abrial [1], is a system of formal development from the initial high-level specification all the way to implementation via a process called refinement. It is one of the few formal methods to do so. The idea is to abstract away the implementation and concentrate on pure functional requirements at the top level. Then, with each refinement step, provide more information on how exactly the system fulfils those requirements, until enough information exists to implement the system. Each refinement step requires proof of consistency with the previous step.<br /></span><div style="text-align: right;"><span style="font-weight: bold;font-size:85%;" >Rafal Kolansk</span><br /></div><span style="font-size:85%;"><br /></span><div style="text-align: right;"><br /></div></div>JORGE TORRES MALDONADOhttp://www.blogger.com/profile/08419561171139732718noreply@blogger.com0