RE: Any tutorials needed? 08-31-2011, 02:33 AM
#21
Well if your read them properly, then you wouldn't react to something that I haven't actually said... And you did it just again in several cases... It's quite tiring, when you keep missing my point and react to something that hasn't been said >.<
-What? I didn't provide any definition at all, that part with "shell" is irrelevant to the later discussion about the OS. It was only my speculation about what darkmaster wanted.
Also that's not true, because shell doesn't fit the definition of the OS. According to regular definitions, operating system provides an abstraction above the hardware layer - allows interaction with the hardware and allocation of the hardware resources. Shell is something that doesn't do this on it's own, therefore it's not an OS by standard definitions. If you're going to make your own definitions, then any discussion is utterly pointless...
-I didn't say that you have to use Cosmos either, my point was, that it's a bad example, because even that has some assembly language hidden under the hood, so you can't do it just with the standard C# language (again, if you start using nonstandard stuff, then all rules go out of the window...), you'll always have to build some scaffolding to make it possible and that's my point (seriously, did you read what I wrote?)
-I know that very well, so DON'T patronize me like that (especially when I used same analogy when explaining this stuff to beginners), because I dislike it a lot. I've already written several compilers myself (not all are published yet), so I think I know how this stuff works and you again missed my point: of course, you can write even compiler that would allow you to write OS using XML or something... But first - you'll always have to go trough assembly, directly or indirectly if you want to do your own OS from the scratch, because the high level language is quite different from the processor itself, so you have to find a way to translate it into proper instructions, especially when doing low level stuff where you for example setup the processor and switch between contexts. You can either provide something that looks like a function call that will do that - but you have still have to use a bit of assembly (you don't even need to write a source in it) to translate this statement into proper instructions - this way it will be fixed and less flexible - you'll be limited by the translation created or, you allows some statements that directly correspond to specific instructions - this will add more flexibility, but you'll be basically using assembly, in another language, possibly with different syntax, you can see that Cosmos is doing something like this. The point is, you can't avoid some specific assembly code, direct or indirect when developing something like an OS in these languages, but same doesn't apply to regular applications - and that's my point.
About the CLR logical failure: You still don't get the point... It cannot be compared like that (did you read that example with hypothetical CLR compliant language? I thought it demonstrates quite clearly the logical paradox). The fact that the language is CLR doesn't automatically mean that it's capable of doing the same as another CLR language. Again: what you need to compare is the features of given language. Same goes for them being in same .NET platform: I can design language that will use .NET platform too, but it's features will be extremely limited, so it won't be capable of the same stuff as C# or VB.NET, yet it will still be part of .NET platform.
Of course, I also agree on the part that by using special tools and alternative compilers you can write the OS (as I said, theoretically you can write it even using XML or even written English (now that would be fun)), but my point was, that these languages that are not indented for this, need some additional scaffolding to be able to do that, so they're themselves, as they are, not capable of creating an OS.
-What? I didn't provide any definition at all, that part with "shell" is irrelevant to the later discussion about the OS. It was only my speculation about what darkmaster wanted.
Also that's not true, because shell doesn't fit the definition of the OS. According to regular definitions, operating system provides an abstraction above the hardware layer - allows interaction with the hardware and allocation of the hardware resources. Shell is something that doesn't do this on it's own, therefore it's not an OS by standard definitions. If you're going to make your own definitions, then any discussion is utterly pointless...
-I didn't say that you have to use Cosmos either, my point was, that it's a bad example, because even that has some assembly language hidden under the hood, so you can't do it just with the standard C# language (again, if you start using nonstandard stuff, then all rules go out of the window...), you'll always have to build some scaffolding to make it possible and that's my point (seriously, did you read what I wrote?)
-I know that very well, so DON'T patronize me like that (especially when I used same analogy when explaining this stuff to beginners), because I dislike it a lot. I've already written several compilers myself (not all are published yet), so I think I know how this stuff works and you again missed my point: of course, you can write even compiler that would allow you to write OS using XML or something... But first - you'll always have to go trough assembly, directly or indirectly if you want to do your own OS from the scratch, because the high level language is quite different from the processor itself, so you have to find a way to translate it into proper instructions, especially when doing low level stuff where you for example setup the processor and switch between contexts. You can either provide something that looks like a function call that will do that - but you have still have to use a bit of assembly (you don't even need to write a source in it) to translate this statement into proper instructions - this way it will be fixed and less flexible - you'll be limited by the translation created or, you allows some statements that directly correspond to specific instructions - this will add more flexibility, but you'll be basically using assembly, in another language, possibly with different syntax, you can see that Cosmos is doing something like this. The point is, you can't avoid some specific assembly code, direct or indirect when developing something like an OS in these languages, but same doesn't apply to regular applications - and that's my point.
About the CLR logical failure: You still don't get the point... It cannot be compared like that (did you read that example with hypothetical CLR compliant language? I thought it demonstrates quite clearly the logical paradox). The fact that the language is CLR doesn't automatically mean that it's capable of doing the same as another CLR language. Again: what you need to compare is the features of given language. Same goes for them being in same .NET platform: I can design language that will use .NET platform too, but it's features will be extremely limited, so it won't be capable of the same stuff as C# or VB.NET, yet it will still be part of .NET platform.
Of course, I also agree on the part that by using special tools and alternative compilers you can write the OS (as I said, theoretically you can write it even using XML or even written English (now that would be fun)), but my point was, that these languages that are not indented for this, need some additional scaffolding to be able to do that, so they're themselves, as they are, not capable of creating an OS.
I love creativity and creating, I love science and rational thought, I am an open atheist and avid self-learner.




![[+]](https://sinister.li/images/modern/collapse_collapsed.png)