* An OS in Ada, why not RTEMS ? @ 2002-04-26 20:58 sk 2002-04-28 7:45 ` James Ross 2002-04-30 8:49 ` Why not MaRTE was " Alfred Hilscher 0 siblings, 2 replies; 24+ messages in thread From: sk @ 2002-04-26 20:58 UTC (permalink / raw) Hi, I have had time to "revisit" the EduOs-Ada project and during much needed research run accross RTEMS. A brief look at the RTEMS specs would suggest that RTEMS either meets most of the needs discussed in 2 or 3 years (at least) of threads in cla or is capable of supporting those needs. I am wondering why the contributors to the said threads do not regard RTEMS as a suitable OS to adopt as a platform for playing with ? Any insights appreciated, thanks. (RTEMS at => http://www.oarcorp.com/) -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-26 20:58 An OS in Ada, why not RTEMS ? sk @ 2002-04-28 7:45 ` James Ross 2002-04-28 11:18 ` sk 2002-04-28 21:13 ` An OS in Ada, why not RTEMS ? Nick Roberts 2002-04-30 8:49 ` Why not MaRTE was " Alfred Hilscher 1 sibling, 2 replies; 24+ messages in thread From: James Ross @ 2002-04-28 7:45 UTC (permalink / raw) On Fri, 26 Apr 2002 15:58:15 -0500, sk <noname@myob.com> wrote: >A brief look at the RTEMS specs ... Their README for the current version erroneously states: "There are two implementations of RTEMS in this source tree in Ada and in C". There is no current Ada tree. RTEMS is written in C and implements the POSIX API. OAR provides the means, by a patched GNAT, to create real-time apps for it in Ada. >I am wondering why the contributors to the said >threads do not regard RTEMS as a suitable OS to >adopt as a platform for playing with ? However, I did take another look at it and found out that at one time it was written in Ada ( I'm pretty sure Ada83 ). File dates are from 1995. That was version 3.2.1 and even though it is no longer maintained you can still download it! Now, as for taking this and hacking away at it, hmmm maybe, I don't know? (It appears the License would not preclude one from doing so). Perhaps MarteOS might be a better platform to "borrow" a code base? I have been pondering / tinkering and researching the different possibilities / problems / dilemmas of such a project (OS in Ada). Here are some of my personal observations on the subject: - As for the ultimate goal of an OS written in Ada -- I agree with the AdaOS folks; To end up with a "complete OS". Just to have a real-time kernel written in Ada, even though might be appealing to the embedded programmers, is by itself of little use to me personally. However, I agree if there was one, it might generate enough interest to turn into more than just that. - I can't help from constantly thinking that any work from scratch on a project of this scope is an exercise of re-inventing the wheel. - To begin with the boot process and progress through all the stages of OS design starting with absolutely nothing is a monumental task! Hence I believe the reason there has been no *apparent* progress on the AdaOS project. - Then there is the GNAT raw binary executable images / linker problems / issues. Even though not insurmountable, it's a pretty big obstacle. Perhaps the GNAT Professional product has direct support for creating raw binary executables that support the run-time and all the Ada constructs without any dependence on an OS (I.e. an embedded RT target). But this does not seem to be the case with the free GNAT version. It seems to use free GNAT, you would need to support either ELF, or PE right of the bat in your new OS and be willing to do some hacking on the GNAT run time sources as well. I have come full circle in my thinking and believe it would be simpler to start with say either FreeBSD or Linux and gradually "craft" it into an "Ada OS". You would not need to hack the free GNAT toolset. Of the many advantages to this approach, one of them would be that even if the goal is never reached, you might end up with some really cool add-ons and/or extensions to an existing OS. Isn't this basically what Apple has done with OS X? At this point, I have about decided to chose a different project to learn Ada 95 on. To build an OS from scratch might be just a bit over my head :) JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 7:45 ` James Ross @ 2002-04-28 11:18 ` sk 2002-04-28 21:48 ` James Ross 2002-04-28 21:13 ` An OS in Ada, why not RTEMS ? Nick Roberts 1 sibling, 1 reply; 24+ messages in thread From: sk @ 2002-04-28 11:18 UTC (permalink / raw) Hi, >... OAR provides the means, by a patched GNAT, to >create real-time apps for it in Ada. That could be problematic. This would suggest that one has to keep several versions of Gnat current would it not ? >However, I did take another look at it and found out that at >one time it was written in Ada ( I'm pretty sure Ada83 ). >File dates are from ... Ok, but still not sure why that would preclude RTEMS as a starting hack point ... Your other issues noted. On the whole, it would be more fun to keep hacking away at EduOS-Ada, but why, as you say, re-invent the wheel ? On, your final thought ... >At this point, I have about decided to chose a different >project to learn Ada 95 on. To build an OS from scratch >might be just a bit over my head :) >JR I know you have looked at EduOS-Ada, so is your main interest in just getting a boot into a "Hello World" type Ada main without all the other stuff ? If so, I have a stripped EduOs-Ada which boots from "init.asm" still, but does nothing but throw bytes at the video addresses to produce a text splash screen. If this would help you to keep going, let me know. -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 11:18 ` sk @ 2002-04-28 21:48 ` James Ross 2002-04-28 23:12 ` Nick Roberts 2002-04-29 2:29 ` sk 0 siblings, 2 replies; 24+ messages in thread From: James Ross @ 2002-04-28 21:48 UTC (permalink / raw) On Sun, 28 Apr 2002 06:18:38 -0500, sk <noname@myob.com> wrote: >>... OAR provides the means, by a patched GNAT, to >>create real-time apps for it in Ada. > >That could be problematic. This would suggest that one >has to keep several versions of Gnat current would it not ? I agree! >>However, I did take another look at it and found out that at >>one time it was written in Ada ( I'm pretty sure Ada83 ). >>File dates are from ... > >Ok, but still not sure why that would preclude RTEMS as a >starting hack point ... You are right and I didn't mean to imply otherwise. It might be very worthwhile to see what could be done with this code on the current version of GNAT. However, all the files contain this copyright ... --- COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. On-Line Applications Research Corporation (OAR). All rights assigned to U.S. Government, 1994. This material may be reproduced by or for the U.S. Government pursuant to the copyright license under the clause at DFARS 252.227-7013. This notice must appear in all copies of this file and its derivatives. --- The LICENSE file in the 3.2.1 root folder reads like a BSD like license to me (but I am not an expert on these issues by a long shot). However, I think it would be worthwhile to contact OAR to see what they say about taking this code and using it as a base in an OS in Ada project. >I know you have looked at EduOS-Ada, so is your main >interest in just getting a boot into a "Hello World" >type Ada main without all the other stuff ? >If so, I have a stripped EduOs-Ada which boots from >"init.asm" still, but does nothing but throw bytes at >the video addresses to produce a text splash screen. >If this would help you to keep going, let me know. Ahhh, trying to convince me to work on it some more! I have discovered a few things I believe to be true, but I am not 100% certain. - GNAT (or GCC) compiles to a logically flat memory model. That means it should not matter where you put the different segments in physical memory as long as they all start with the same address. Therefore it should be possible to compile a program in Ada such as: --- with System; use System; with System.Storage_Elements; use System.Storage_Elements; procedure Hello is Char : Character; for Char'Address use To_Address (16#B8000#); begin Char := 'H'; end Hello; --- This makes no use of any OS call nor does it use any dynamic memory. It should be possible to type a few magical switches on the command line and end up with a binary image file that includes all the code that the above needs to execute starting from byte position 0 of the file. And not include anything it doesn't need. (I am specifically referring to GNAT for Windows, but if it is only possible to do under GNAT for Linux I would not mind seeing it) But I can not figure out HOW to do this! Actually the other thing I need is a crash course in 32bit segmentation, descriptors, protected mode, etc � from the ground up. A 101 in Intel OS design as Intel meant it to be on their processors if you will. The problem is this is a steep learning curve on it's own without adding all the other obstacles plus learning high level OS design, all the while using a language that I am not quite up to speed on yet! Wew� that's a bad mix! :) JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 21:48 ` James Ross @ 2002-04-28 23:12 ` Nick Roberts 2002-04-29 2:29 ` sk 1 sibling, 0 replies; 24+ messages in thread From: Nick Roberts @ 2002-04-28 23:12 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 2371 bytes --] On Sun, 28 Apr 2002 21:48:15 GMT, James Ross <rem.jr@rem.webross.com> strongly typed: >...Therefore it >should be possible to compile a program in Ada such as: >--- >with System; use System; >with System.Storage_Elements; use System.Storage_Elements; >procedure Hello is > Char : Character; > for Char'Address use To_Address (16#B8000#); >begin > Char := 'H'; >end Hello; >--- >This makes no use of any OS call nor does it use any dynamic memory. [Coughs] Well I do not know how GNAT works internally, but I do know that any 'normal' Ada program, even a 'tiny' one such as above, compiled with (as far as the compiler is concerned) the intention of being executed in a 'full OS' environment, could be compiled with all manner of calls to the OS, for all sorts of things. >It should be possible to type a few magical switches on the command >line and end up with a binary image file that includes all the code >that the above needs to execute starting from byte position 0 of the >file. And not include anything it doesn't need. (I am specifically >referring to GNAT for Windows, but if it is only possible to do under >GNAT for Linux I would not mind seeing it) > >But I can not figure out HOW to do this! I'm afraid this might be a bit much to ask for (but I'm not sure). >Actually the other thing I need is a crash course in 32bit >segmentation, descriptors, protected mode, etc � from the ground up. >A 101 in Intel OS design as Intel meant it to be on their processors >if you will. The problem is this is a steep learning curve on it's >own without adding all the other obstacles plus learning high level OS >design, all the while using a language that I am not quite up to speed >on yet! Wew� that's a bad mix! :) A good starting point is to go to: http://developer.intel.com/design/pentium/manuals/ and download the manuals. They are reasonably well written and authoritative. Remember when reading these that often, with chip features these days, the question is not "How do I use this feature?" but rather "Do I need to use this feature?". If the OS 'as Intel meant it to be' had come into existence, it would have been on a chipset called 432, and there would have been no 80386 and its successors. Sadly, of course, it didn't happen that way. But guess which language it would have been programmed in? Yes, really. -- Nick Roberts ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 21:48 ` James Ross 2002-04-28 23:12 ` Nick Roberts @ 2002-04-29 2:29 ` sk 2002-04-29 5:48 ` James Ross 2002-04-29 18:52 ` Bytes per character (was Re: An OS in Ada, why not RTEMS ?) Brian Catlin 1 sibling, 2 replies; 24+ messages in thread From: sk @ 2002-04-29 2:29 UTC (permalink / raw) Hi, >- GNAT (or GCC) compiles to a logically flat memory model. That > ... >--- >with System; use System; >with System.Storage_Elements; use System.Storage_Elements; >procedure Hello is > Char : Character; > for Char'Address use To_Address (16#B8000#); >begin > Char := 'H'; >end Hello; >--- > ... >GNAT Do you expect this to put the character 'H' on the screen ? I think of storage elements as bytes, with bytes and characters being synonymous. However, the PC VGA card "thinks" storage_elements are words; 8-bits are for color attributes, and 8-bits are for the character. It took me a while to solve the mystery of very strange and seemingly random colored characters popping up on the screen. o o | \_/ -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-29 2:29 ` sk @ 2002-04-29 5:48 ` James Ross 2002-04-29 12:09 ` Sergey Koshcheyev 2002-04-29 18:52 ` Bytes per character (was Re: An OS in Ada, why not RTEMS ?) Brian Catlin 1 sibling, 1 reply; 24+ messages in thread From: James Ross @ 2002-04-29 5:48 UTC (permalink / raw) On Sun, 28 Apr 2002 21:29:45 -0500, sk <noname@myob.com> wrote: >Do you expect this to put the character 'H' on the screen ? That was the general idea!! Upper left hand corner... You know... the old DOS text screen! By your remarks it seems I have forgotten that the attribute really comes first in each character cell. The byte order thingy bytes again! Well, at least it compiles without a problem in GNAT. The exercise is this: gcc -S Hello.adb as -o Hello.o -a=Hello.lst Hello.s We need those machine language bytes that are in the .lst file with the proper address of the _system__storage_elements__to_address subroutine along with the subroutine ml code itself in a .bin file. Not an ELF, not a PE, not a .o, not a .lst, But a raw binary file. CAN WE DO THAT? JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-29 5:48 ` James Ross @ 2002-04-29 12:09 ` Sergey Koshcheyev 2002-04-30 5:33 ` James Ross 0 siblings, 1 reply; 24+ messages in thread From: Sergey Koshcheyev @ 2002-04-29 12:09 UTC (permalink / raw) "James Ross" <rem.jr@rem.webross.com> wrote in message news:i1mpcuskfe8uf3qq7t379cqvbc890dpqlf@4ax.com... > We need those machine language bytes that are in the .lst file with > the proper address of the _system__storage_elements__to_address > subroutine along with the subroutine ml code itself in a .bin file. > Not an ELF, not a PE, not a .o, not a .lst, But a raw binary file. > > CAN WE DO THAT? Yes, we can, several people have done this already (me included). Actually, what's wrong with ELF? GRUB(http://www.gnu.org/software/grub/) can load it. But if you still want a .bin, I believe it is possible to get it using GNU binutils. However, the hard question seems to be "what now?" Sergey. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-29 12:09 ` Sergey Koshcheyev @ 2002-04-30 5:33 ` James Ross 2002-04-30 15:59 ` Sergey Koshcheyev 0 siblings, 1 reply; 24+ messages in thread From: James Ross @ 2002-04-30 5:33 UTC (permalink / raw) >> We need those machine language bytes that are in the .lst file with >> the proper address of the _system__storage_elements__to_address >> subroutine along with the subroutine ml code itself in a .bin file. >> Not an ELF, not a PE, not a .o, not a .lst, But a raw binary file. >> >> CAN WE DO THAT? > >Yes, we can, several people have done this already (me included). Actually, >what's wrong with ELF? GRUB(http://www.gnu.org/software/grub/) can load it. >But if you still want a .bin, I believe it is possible to get it using GNU >binutils. However, the hard question seems to be "what now?" My idea *was* to just support a raw binary executable image that not only the kernel would be in, but other programs that could be loaded and executed by the kernel. (Perhaps I needed more info on this issue, but I *was* certain it would be possible). If I were willing to dig into the details of ELF to support loading it right away, then I might as well chose PE ... since I prefer to use GNAT from (my main computer) Windows XP. (And of course GNAT on Windows cannot create ELFs.) I still don't use Linux as my main computer - but that is a whole other issue :) As for the initial boot process and the ELF issues -- understand that what I have been saying is how I *was* going to tackle the process if it were up to me. I have all but given up at this point. If I were to help someone else, then the design would be whatever basically exists and works for that person(s) ... I would be willing to work on a Linux box (I am not allergic to it!) and support whatever version of an Ada OS emerges ... JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-30 5:33 ` James Ross @ 2002-04-30 15:59 ` Sergey Koshcheyev 0 siblings, 0 replies; 24+ messages in thread From: Sergey Koshcheyev @ 2002-04-30 15:59 UTC (permalink / raw) "James Ross" <rem.jr@rem.webross.com> wrote in message news:su5scukancprperd00vheacibv6b80fa3n@4ax.com... > My idea *was* to just support a raw binary executable image that not > only the kernel would be in, but other programs that could be loaded > and executed by the kernel. (Perhaps I needed more info on this > issue, but I *was* certain it would be possible). If I were willing > to dig into the details of ELF to support loading it right away, then > I might as well chose PE ... since I prefer to use GNAT from (my main > computer) Windows XP. (And of course GNAT on Windows cannot create > ELFs.) I still don't use Linux as my main computer - but that is a > whole other issue :) Well, if you don't want ELF or PE, there's nothing complicated involved in getting a raw .bin. I think just using a --oformat switch for ld will do this. Or you can use objcopy. I started talking about ELF, because it is easier to load an ELF file using GRUB than it is to write your own bootloader for binary files. Other than that, it isn't said anywhere that OSes should use this or that format for their kernels :-) > As for the initial boot process and the ELF issues -- understand that > what I have been saying is how I *was* going to tackle the process if > it were up to me. I have all but given up at this point. If I were > to help someone else, then the design would be whatever basically > exists and works for that person(s) ... I would be willing to work on > a Linux box (I am not allergic to it!) and support whatever version of > an Ada OS emerges ... Uh, I was just replying to the specific question of whether it is possible to get a raw binary file using GNAT. It is. I have no idea myself about what I would put into an OS or how I would design it. Sergey. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Bytes per character (was Re: An OS in Ada, why not RTEMS ?) 2002-04-29 2:29 ` sk 2002-04-29 5:48 ` James Ross @ 2002-04-29 18:52 ` Brian Catlin 2002-04-29 22:15 ` sk 1 sibling, 1 reply; 24+ messages in thread From: Brian Catlin @ 2002-04-29 18:52 UTC (permalink / raw) "sk" <noname@myob.com> wrote in message news:mailman.1020051003.12089.comp.lang.ada@ada.eu.org... [...snip...] > > Do you expect this to put the character 'H' on the screen ? > > I think of storage elements as bytes, with bytes and characters > being synonymous. Seems sort of short-sighted to me; it works fine for ASCII/ANSI characters, but what about the rest of the world? Unicode uses 2-4 bytes per character, which makes dealing with it a little difficult in terms of dealing with strings, but at least you can represent just about any "character" in virtually any language. -Brian ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Bytes per character (was Re: An OS in Ada, why not RTEMS ?) 2002-04-29 18:52 ` Bytes per character (was Re: An OS in Ada, why not RTEMS ?) Brian Catlin @ 2002-04-29 22:15 ` sk 2002-04-29 23:28 ` chris.danx 0 siblings, 1 reply; 24+ messages in thread From: sk @ 2002-04-29 22:15 UTC (permalink / raw) Hi, > Seems sort of short-sighted to me; it works fine virtually any > > ... > > -Brian Which is exactly my point ! Which definition do you want for a storage element ? My 8-bit defintion, the VGA card's definition of 16-bits, or the MPU which likes doubles ? -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Bytes per character (was Re: An OS in Ada, why not RTEMS ?) 2002-04-29 22:15 ` sk @ 2002-04-29 23:28 ` chris.danx 2002-04-29 22:51 ` sk 0 siblings, 1 reply; 24+ messages in thread From: chris.danx @ 2002-04-29 23:28 UTC (permalink / raw) "sk" <noname@myob.com> wrote in message news:mailman.1020122162.2772.comp.lang.ada@ada.eu.org... > Hi, > > > Seems sort of short-sighted to me; it works fine virtually any > > > > ... > > > > -Brian > > Which is exactly my point ! Which definition do you want > for a storage element ? My 8-bit defintion, the VGA card's > definition of 16-bits, or the MPU which likes doubles ? The x86 vga card doesn't define a storage element as 16bits, it only defines that in textmode the screen is a set of (attribute, character) code pairs, each of 8bits. That's not the same as defining the storage element to be 16bits. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Bytes per character (was Re: An OS in Ada, why not RTEMS ?) 2002-04-29 23:28 ` chris.danx @ 2002-04-29 22:51 ` sk 0 siblings, 0 replies; 24+ messages in thread From: sk @ 2002-04-29 22:51 UTC (permalink / raw) Hi, >That's not the same as defining the storage element to >be 16bits. ... and doesn't that illustrate why using storage elements to write to VGA screens is probably inappropriate within the context of the original example ? >with System; use System; >with System.Storage_Elements; use System.Storage_Elements; >procedure Hello is > Char : Character; > for Char'Address use To_Address (16#B8000#); >begin > Char := 'H'; >end Hello; -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 7:45 ` James Ross 2002-04-28 11:18 ` sk @ 2002-04-28 21:13 ` Nick Roberts 2002-04-29 0:34 ` James Ross 1 sibling, 1 reply; 24+ messages in thread From: Nick Roberts @ 2002-04-28 21:13 UTC (permalink / raw) On Sun, 28 Apr 2002 07:45:49 GMT, James Ross <rem.jr@rem.webross.com> strongly typed: >- As for the ultimate goal of an OS written in Ada -- I agree with the >AdaOS folks; To end up with a "complete OS". Just to have a real-time >kernel written in Ada, even though might be appealing to the embedded >programmers, is by itself of little use to me personally. However, I >agree if there was one, it might generate enough interest to turn into >more than just that. > >- I can't help from constantly thinking that any work from scratch on >a project of this scope is an exercise of re-inventing the wheel. I am getting near to having a 'design document' for a microkernel ready (but still not complete) to post onto the AdaOS web site. You wouldn't believe the changes it has been through! It is not entirely an exercise in reinventing the wheel. It has certain features that I have not seen in any other microkernel (certain deadlock avoidance and locking features). I believe these features to be vital (for the purposes of a distributed general-purpose OS). RTEMS is only a real-time kernel (no doubt a very good one). But it has no security features, and misses many other features that (I believe) an AdaOS kernel must have. >- To begin with the boot process and progress through all the stages >of OS design starting with absolutely nothing is a monumental task! The boot process itself is nearly trivial. Even the microkernel is a relatively simple component. The 'upper' levels of the OS will not be so trivial, but I believe that when we get to those levels it will be possible to work 'in parallel' and so to achieve a much higher level of productivity. >Hence I believe the reason there has been no *apparent* progress on >the AdaOS project. That is correct. It is like a few ants beginning the process of building an anthill. At first, there is apparently nothing to see. >- Then there is the GNAT raw binary executable images / linker >problems / issues. Even though not insurmountable, it's a pretty big >obstacle. Perhaps the GNAT Professional product has direct support >for creating raw binary executables that support the run-time and all >the Ada constructs without any dependence on an OS (I.e. an embedded >RT target). But this does not seem to be the case with the free GNAT >version. It seems to use free GNAT, you would need to support either >ELF, or PE right of the bat in your new OS and be willing to do some >hacking on the GNAT run time sources as well. I would be delighted if someone were to take on the work of modifying GNAT and/or GCC enough to make it usable to build all the components of an OS in Ada. However, one of my key personal objectives in starting the AdaOS project was to create not just a new microkernel, but a new Ada compiler which would specifically target this microkernel. This is ambition enough, so I feel I cannot devote any time to modifying GNAT at this stage. >I have come full circle in my thinking and believe it would be simpler >to start with say either FreeBSD or Linux and gradually "craft" it >into an "Ada OS". You would not need to hack the free GNAT toolset. >Of the many advantages to this approach, one of them would be that >even if the goal is never reached, you might end up with some really >cool add-ons and/or extensions to an existing OS. Isn't this basically >what Apple has done with OS X? Maybe the AdaOS project should go this way, or some other alternative route. It would have to do so without me, but with a membership of nearly 50 now (I think), that surely wouldn't be a problem. I'm going to start discussing things like this with the membership soon. >At this point, I have about decided to chose a different project to >learn Ada 95 on. To build an OS from scratch might be just a bit over >my head :) Well there's no reason for you not to remain an AdaOS member, James. I've no doubt that at some point in the future you will be in a position to write code for us, and we will be in a position to ask for it. It might be a while away yet, though! -- Nick Roberts ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-28 21:13 ` An OS in Ada, why not RTEMS ? Nick Roberts @ 2002-04-29 0:34 ` James Ross 2002-04-29 5:19 ` Simon Wright 0 siblings, 1 reply; 24+ messages in thread From: James Ross @ 2002-04-29 0:34 UTC (permalink / raw) On Sun, 28 Apr 2002 21:13:12 GMT, nickroberts@ukf.net (Nick Roberts) wrote: >It is not entirely an exercise in reinventing the wheel. It has certain >features that I have not seen in any other microkernel (certain deadlock >avoidance and locking features). I believe these features to be vital (for >the purposes of a distributed general-purpose OS). >RTEMS is only a real-time kernel (no doubt a very good one). But it has no >security features, and misses many other features that (I believe) an AdaOS >kernel must have. As Marin has pointed out in a previous thread, AdaOS should distinguish itself from other OS's out there. This would keep the project from falling into the category of re-inventing the wheel. I agree on these features you are planning and it will be very interesting to see your design on it. >>It seems to use free GNAT, you would need to support either >>ELF, or PE right of the bat in your new OS and be willing to do some >>hacking on the GNAT run time sources as well. >I would be delighted if someone were to take on the work of modifying GNAT >and/or GCC enough to make it usable to build all the components of an OS in >Ada. Unless some GNAT guru steps in and proves otherwise, I don't think it will be possible to create an OS from scratch using the free GNAT unmodified. If this were not a hobby project, of course I would be willing to purchase the Professional GNAT version. Certainly it is possible to do it there :) >However, one of my key personal objectives in starting the AdaOS project >was to create not just a new microkernel, but a new Ada compiler which >would specifically target this microkernel. This is ambition enough, so I >feel I cannot devote any time to modifying GNAT at this stage. I am certain that the Ada community here will welcome another Ada compiler! I can sympathize with your decision to create a new Ada compiler. It does make a lot of sense, since you will be able to precisely control every aspect of the code generation and make it as efficient on the AdaOS platform as you want. >>I have come full circle in my thinking and believe it would be simpler >>to start with say either FreeBSD or Linux and gradually "craft" it >>into an "Ada OS". You would not need to hack the free GNAT toolset. >>Of the many advantages to this approach, one of them would be that >>even if the goal is never reached, you might end up with some really >>cool add-ons and/or extensions to an existing OS. Isn't this basically >>what Apple has done with OS X? > >Maybe the AdaOS project should go this way, or some other alternative >route. It would have to do so without me, but with a membership of nearly >50 now (I think), that surely wouldn't be a problem. I'm going to start >discussing things like this with the membership soon. Well, it is just an idea. And I don't mean to change the path the AdaOS project is on. Ultimately, I like the idea of from scratch best. But if that is not happening, then perhaps the course does need to be re-thought / re-planned. If I sit down and I am going to write an OS, I think "OK what do I need"� I need Keyboard, COM Ports, Network Cards, TCP/IP, Console, Floppy, IDE, UDMA, SCSI, Sound Blaster, Parallel Ports, Graphic Cards, USB, etc� etc� etc� that is what I mean about re-inventing the wheel. And that's just the hardware stuff / protocols / etc � how about all the GNU development stuff?. In some form, you need the tools represented there. If someone were to take all the ideas discussed of what an AdaOS could/should be and implement them under an AdaOS source tree (thunking and isolating the calls to the underlying OS so those portions can be replaced in the future) then any program written using it would be guaranteed to work on whatever future version of the kernel / OS would be. Anyway� it is just a thought! JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-29 0:34 ` James Ross @ 2002-04-29 5:19 ` Simon Wright 2002-04-30 6:53 ` James Ross 0 siblings, 1 reply; 24+ messages in thread From: Simon Wright @ 2002-04-29 5:19 UTC (permalink / raw) James Ross <rem.jr@rem.webross.com> writes: > Unless some GNAT guru steps in and proves otherwise, I don't think > it will be possible to create an OS from scratch using the free GNAT > unmodified. If this were not a hobby project, of course I would be > willing to purchase the Professional GNAT version. Certainly it is > possible to do it there :) What aspects of GNATpro (GNATPro?) did you have in mind? ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-29 5:19 ` Simon Wright @ 2002-04-30 6:53 ` James Ross 2002-04-30 16:03 ` Sergey Koshcheyev 2002-05-01 22:24 ` Simon Wright 0 siblings, 2 replies; 24+ messages in thread From: James Ross @ 2002-04-30 6:53 UTC (permalink / raw) On 29 Apr 2002 06:19:17 +0100, Simon Wright <simon@pushface.org> wrote: >> Unless some GNAT guru steps in and proves otherwise, I don't think >> it will be possible to create an OS from scratch using the free GNAT >> unmodified. If this were not a hobby project, of course I would be >> willing to purchase the Professional GNAT version. Certainly it is >> possible to do it there :) > >What aspects of GNATpro (GNATPro?) did you have in mind? I am specifically referring to the ability to output an executable that does not rely on any underlying OS. If put in embedded terms: To run a GNAT compiled program from EPROM and nothing else. No Disk, LAN, etc ... All I am saying is that *surely* this is possible on a PC platform and supported in the GNATPro version is it not? And, that I am pleased enough with the free GNAT version, that if this were a serious project, I would look into buying their pro product. JR ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-30 6:53 ` James Ross @ 2002-04-30 16:03 ` Sergey Koshcheyev 2002-05-01 22:24 ` Simon Wright 1 sibling, 0 replies; 24+ messages in thread From: Sergey Koshcheyev @ 2002-04-30 16:03 UTC (permalink / raw) "James Ross" <rem.jr@rem.webross.com> wrote in message news:tpescu0ge45hh99t2j9hrf4r298f2bd7tu@4ax.com... > On 29 Apr 2002 06:19:17 +0100, Simon Wright <simon@pushface.org> > wrote: > >What aspects of GNATpro (GNATPro?) did you have in mind? > > I am specifically referring to the ability to output an executable > that does not rely on any underlying OS. If put in embedded terms: To > run a GNAT compiled program from EPROM and nothing else. No Disk, LAN, > etc ... All I am saying is that *surely* this is possible on a PC > platform and supported in the GNATPro version is it not? And, that I > am pleased enough with the free GNAT version, that if this were a > serious project, I would look into buying their pro product. > JR It is possible to create a self-contained executable with the free GNAT version too. In fact, this is what those people who have created their own bootable kernels using GNAT did. Sergey. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: An OS in Ada, why not RTEMS ? 2002-04-30 6:53 ` James Ross 2002-04-30 16:03 ` Sergey Koshcheyev @ 2002-05-01 22:24 ` Simon Wright 1 sibling, 0 replies; 24+ messages in thread From: Simon Wright @ 2002-05-01 22:24 UTC (permalink / raw) James Ross <rem.jr@rem.webross.com> writes: > On 29 Apr 2002 06:19:17 +0100, Simon Wright <simon@pushface.org> > wrote: > >> Unless some GNAT guru steps in and proves otherwise, I don't think > >> it will be possible to create an OS from scratch using the free GNAT > >> unmodified. If this were not a hobby project, of course I would be > >> willing to purchase the Professional GNAT version. Certainly it is > >> possible to do it there :) > > > >What aspects of GNATpro (GNATPro?) did you have in mind? > > I am specifically referring to the ability to output an executable > that does not rely on any underlying OS. If put in embedded terms: > To run a GNAT compiled program from EPROM and nothing else. No Disk, > LAN, etc ... All I am saying is that *surely* this is possible on a > PC platform and supported in the GNATPro version is it not? And, > that I am pleased enough with the free GNAT version, that if this > were a serious project, I would look into buying their pro product. It sounds to me as though you think it _ought_ to be available. There is the high-reliability version (used to be called GNORT, has a new name now), and I see at www.gnat.com that there are bare-board solutions. They certainly aren't described there at all (contact sales ...) ^ permalink raw reply [flat|nested] 24+ messages in thread
* Why not MaRTE was Re: An OS in Ada, why not RTEMS ? 2002-04-26 20:58 An OS in Ada, why not RTEMS ? sk 2002-04-28 7:45 ` James Ross @ 2002-04-30 8:49 ` Alfred Hilscher 2002-04-30 14:08 ` sk 2002-05-07 2:22 ` Nick Roberts 1 sibling, 2 replies; 24+ messages in thread From: Alfred Hilscher @ 2002-04-30 8:49 UTC (permalink / raw) sk wrote: > > Hi, > > I have had time to "revisit" the EduOs-Ada project and > during much needed research run accross RTEMS. > > A brief look at the RTEMS specs would suggest that > RTEMS either meets most of the needs discussed in > 2 or 3 years (at least) of threads in cla or is > capable of supporting those needs. > > I am wondering why the contributors to the said > threads do not regard RTEMS as a suitable OS to > adopt as a platform for playing with ? > > Any insights appreciated, thanks. > > (RTEMS at => http://www.oarcorp.com/) http://marte.unican.es/ ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Why not MaRTE was Re: An OS in Ada, why not RTEMS ? 2002-04-30 8:49 ` Why not MaRTE was " Alfred Hilscher @ 2002-04-30 14:08 ` sk 2002-05-07 2:22 ` Nick Roberts 1 sibling, 0 replies; 24+ messages in thread From: sk @ 2002-04-30 14:08 UTC (permalink / raw) Hi, >Why not MaRTE was Re: An OS in Ada, why not RTEMS ? Indeed, why not ? Has anybody pulled an old PC out of the closet and "recycled" it to play with by putting RTEMS or MaRTE on to it ? The idea is to use the PC as a "controller" for hardware experiments/tinkering ... build a circuit, hang it from the parallel port and hope that nothing blows up for example ... If so, experiences ? -- My links to the Ada Train project have disappeared (http://www2.dynamite.com.au/aebrain/ADACASE.HTM) and the other one (http://www.stsc.hill.af.mil/crosstalk/2000/aug/mccormick.asp) suggests that I would need a VAX hiding in the garage before I went begging for software detail. -- ------------------------------------- -- Merge vertically for real address ------------------------------------- s n p @ t . o k i e k c c m ------------------------------------- ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Why not MaRTE was Re: An OS in Ada, why not RTEMS ? 2002-04-30 8:49 ` Why not MaRTE was " Alfred Hilscher 2002-04-30 14:08 ` sk @ 2002-05-07 2:22 ` Nick Roberts 2002-05-12 16:35 ` Freddy 1 sibling, 1 reply; 24+ messages in thread From: Nick Roberts @ 2002-05-07 2:22 UTC (permalink / raw) On Tue, 30 Apr 2002 10:49:52 +0200, Alfred Hilscher <Alfred.Hilscher@icn.siemens.de> wrote: > > I have had time to "revisit" the EduOs-Ada > > project and during much needed research run > > accross RTEMS. > > > > A brief look at the RTEMS specs would suggest > > that RTEMS either meets most of the needs > > discussed in 2 or 3 years (at least) of threads > > in cla or is capable of supporting those needs. > > > > I am wondering why the contributors to the said > > threads do not regard RTEMS as a suitable OS to > > adopt as a platform for playing with ? > > > > Any insights appreciated, thanks. Alfred, If you are talking about the requirements for AdaOS (and I'm not at all sure you are), then (to my mind) RTEMS falls short of far too many of our requirements. Chiefly, RTEMS has absoloutely no security provision. Following from that, it has no provision for (enforced) resource management, and all the many concomitant facilities. In my detailed evaluation of RTEMS, I didn't get much further than that. There did appear to be a number of other flaws and deficiencies. RTEMS may be excellent as a real-time OS/RTS, but I think for AdaOS purposes, it's a dead duck. There are some requirements of the AdaOS kernel which, it needs to be appreciated, all or most existing microkernels/RTOSes will not vaguely meet. For example, AdaOS will be distributed, supporting the arbitrary migration of most processes between workstations; that requires a very special set of kernel characteristics for a start. I repeat, all the foregoing applies ONLY IF Alfred was referring to AdaOS at all. -- Nick Roberts ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Why not MaRTE was Re: An OS in Ada, why not RTEMS ? 2002-05-07 2:22 ` Nick Roberts @ 2002-05-12 16:35 ` Freddy 0 siblings, 0 replies; 24+ messages in thread From: Freddy @ 2002-05-12 16:35 UTC (permalink / raw) Nick Roberts schrieb: > > Alfred, > > If you are talking about the requirements for AdaOS > (and I'm not at all sure you are), then (to my mind) > RTEMS falls short of far too many of our > requirements. Hi Nick, as far I understood, Alfred talkes about "MaRTE OS". I'm not sure whether it can fit the need for "AdaOS". ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2002-05-12 16:35 UTC | newest] Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2002-04-26 20:58 An OS in Ada, why not RTEMS ? sk 2002-04-28 7:45 ` James Ross 2002-04-28 11:18 ` sk 2002-04-28 21:48 ` James Ross 2002-04-28 23:12 ` Nick Roberts 2002-04-29 2:29 ` sk 2002-04-29 5:48 ` James Ross 2002-04-29 12:09 ` Sergey Koshcheyev 2002-04-30 5:33 ` James Ross 2002-04-30 15:59 ` Sergey Koshcheyev 2002-04-29 18:52 ` Bytes per character (was Re: An OS in Ada, why not RTEMS ?) Brian Catlin 2002-04-29 22:15 ` sk 2002-04-29 23:28 ` chris.danx 2002-04-29 22:51 ` sk 2002-04-28 21:13 ` An OS in Ada, why not RTEMS ? Nick Roberts 2002-04-29 0:34 ` James Ross 2002-04-29 5:19 ` Simon Wright 2002-04-30 6:53 ` James Ross 2002-04-30 16:03 ` Sergey Koshcheyev 2002-05-01 22:24 ` Simon Wright 2002-04-30 8:49 ` Why not MaRTE was " Alfred Hilscher 2002-04-30 14:08 ` sk 2002-05-07 2:22 ` Nick Roberts 2002-05-12 16:35 ` Freddy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox