I actually can perfectly well understand why somebody would have that opinion (in fact, I know quite a few people that do). Since we're offtopic I won't go into the details of why I happen to disagree.anon19287473 wrote:Property is theft... in capitalism it is possible for someone to make money simply by manipulating their resources and not contributing anything.
Your first attempt to make a OS
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
- stevenup7002
- Member
- Posts: 60
- Joined: Tue Sep 20, 2005 11:00 pm
- Location: Ireland
- Contact:
The origin of such an idea, I believe, is with the idea that everybody should be equal. The problem then, if you start with equality, is that if somebody does a good job (in whatever sense) and hence earns more, those that didn't manage so well are no longer equal.Alboin wrote:Property is theft?
There are only two ways out of this then:
(1) you accept that equality is a nice idea, but unworkable in reality, because it implies that the less you do, the more you receive in relation to what you contribute (in other words, in purely equal society, there is logical incentive not to do anything, so everything relies on people's goodwill).
(2) you start making theories about how property is theft, in order to get rid of easy means of demonstrating that in an equal society, those that spend least time working, will always earn the most per hour.
Ofcourse in reality some amount of equality is workable, as long enough inequality is maintained to keep sufficient incentive for people to actually bother with something. But it's a delicate balance.
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
-
- Member
- Posts: 97
- Joined: Thu Mar 15, 2007 2:27 pm
economy
In an Anarchist economy, man power is currency (http://en.wikipedia.org/wiki/Anarchist_economics) , which is true equalitymystran wrote:The origin of such an idea, I believe, is with the idea that everybody should be equal. The problem then, if you start with equality, is that if somebody does a good job (in whatever sense) and hence earns more, those that didn't manage so well are no longer equal.Alboin wrote:Property is theft?
There are only two ways out of this then:
(1) you accept that equality is a nice idea, but unworkable in reality, because it implies that the less you do, the more you receive in relation to what you contribute (in other words, in purely equal society, there is logical incentive not to do anything, so everything relies on people's goodwill).
(2) you start making theories about how property is theft, in order to get rid of easy means of demonstrating that in an equal society, those that spend least time working, will always earn the most per hour.
Ofcourse in reality some amount of equality is workable, as long enough inequality is maintained to keep sufficient incentive for people to actually bother with something. But it's a delicate balance.
There is one, it's called WindowsI'm really enjoying reading all these replies about their first os experience. All of the OSes seem to be communist, so why not just make a capatilist OS instead?
For some time I agreed with this, however, every so-often he breaks character, and, oh say promotes (lobbies for) outsourcing to india (legislature to make it easier w/ visa's), which would save M$ lots of $$$ in salaries.Regardless of what GNU thinks Bill Gates is a brilliant business man who was able to manipulate his wealth to form a multi billion dollar cooperation employing millions (?) of people. He has given millions away through his fund, and done more than most people in history. I think he deserves his billions.
And malware authors produce millions of jobs for anti-virus companies (services etc. like macafee) ... Bill Gates isn't the only one to produce millions of jobs with bad softwareemploying millions (?) of people
So it will beWhy drop it? Why not go on?anon19287473 wrote:
I'd really rather not start a flamewar, and it seems this has gotten a tad of topic, so lets drop it.
My first attempt at writing an Operating System was fun!
A friend and I had spent a good few hours playing Quake (We used to have a "Geekend", a weekend full of LAN Gaming and Code, ah... good times).
Anywho, We were joking about MSDOS and wondered how difficult it would actually be to create a basic parody, that could boot and seem like MSDOS.
Epic, huh?
~zeii
A friend and I had spent a good few hours playing Quake (We used to have a "Geekend", a weekend full of LAN Gaming and Code, ah... good times).
Anywho, We were joking about MSDOS and wondered how difficult it would actually be to create a basic parody, that could boot and seem like MSDOS.
Epic, huh?
~zeii
I'm really enjoying reading all these replies about their first os experience. All of the OSes seem to be communist, so why not just make a capatilist OS instead?
"Because Microsoft is for Capitalists running DOS."
See? We DO have a capitalist OS
This topic was not designed for flamewars. I think the communism replies should belong to topic "What's your political affilation?", we're off topic.
Any more former OS attempts?
inflater
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English )
Derrick operating system: http://derrick.xf.cz (Slovak and English )
- mathematician
- Member
- Posts: 437
- Joined: Fri Dec 15, 2006 5:26 pm
- Location: Church Stretton Uk
I suppose the closest I have previously come to writing an OS was a memory resident debugger, back in the days of MS-DOS. Amongst other things it was meant to allow the debugging of device drivers in situ. For perhaps obvious reasons it would have crashed (single tasking) MS-DOS if it had made any system calls, and so it effectively had to implement its own operating system; in real mode of course.
Right... call me dense, but how does can RPC make a microkernel. Is that not a networking protocol? How exactly does that connect the kernel components?Crazed123 wrote:My first OS was a monolithic kernel. Then I eventually moved to an RPC-based microkernel with capability security. Now I've thrown the scheduler and timer driver out of my kernel and designed a new security model, so it's pretty much the 3rd generation.
RPC = Remote Procedure Call
"Remote" does not imply networked, it simply means the call is not done directly, but rather through some kind of messaging system
anyways, my first "real" OS was a microkernel with horribly messy and slow message-passing and some userspace drivers including keyboard, console, floppies, ext2 (read only) and a very simple shell
still working on that same project, but i've replaced pretty much everything by now
"Remote" does not imply networked, it simply means the call is not done directly, but rather through some kind of messaging system
anyways, my first "real" OS was a microkernel with horribly messy and slow message-passing and some userspace drivers including keyboard, console, floppies, ext2 (read only) and a very simple shell
still working on that same project, but i've replaced pretty much everything by now
I did not use the term "imply"... RPC is a networking protocol... fact... a messaging system would be named with the umbrella term IPC, though i feel that naming the communication would be like naming the process of function calling under some protocol. So i ask again, what does RPC have todo with IPC?Aali wrote:RPC = Remote Procedure Call
"Remote" does not imply networked, it simply means the call is not done directly, but rather through some kind of messaging system
You have misunderstood something. IPC is a general term for Inter-Process Communication, and says nothing about whether the processes are on same host or another. Similarly, RPC is a general term for Remote-Procedure Call, which is a particular type of IPC, specifically it is a name for any mechanism which tries to make IPC look like LPC (local procedure call).Tyler wrote: I did not use the term "imply"... RPC is a networking protocol... fact... a messaging system would be named with the umbrella term IPC, though i feel that naming the communication would be like naming the process of function calling under some protocol. So i ask again, what does RPC have todo with IPC?
A procedure call is normally understood local, if the caller and callee are within the same protection domain (where protection domain is normally known as process). That is, a procedure call is local, if it doesn't involve IPC. Any procedure call that is not local, is remote. Whether network is involved is irrelevant and there is no protocol known as RPC, since RPC is a general term. RPC itself always implies IPC, since otherwise the call would be local.
If you disagree, I suggest you go read the relevant literature where those terms originated.
edit: and if you need pointers, I can search some relevant material for you, but you'll probably need access to IEEExplore and/or ACM to access it. Your local university library is likely to have a subscription.
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
Clearly you are mistaken... for one i clearly stated in post and continue to stand by the fact that IPC is a blanket term but RPC is a specific technology.
Even if we were to ignore this given, your explanation that RPC is making IPC look like LPC was quite clearly a rushed explanation that has gone slightly wrong. Assuming you mean to say it is a process of LPC (assumed to be a function call on the local machine and nothing todo with microkernel connectivity) for use between "remote" computers, then i still do not see what RPC has todo with microkernels. No practical use could come from implementing the seperate parts of a microkernel structure on seperate machines.
Though of course, one could choose to implement microkernel communication on numerous different machines and use a remote protocol of some sort to communicate, the impracticaliy is not an impossibility. In this case though, i am still confused as to why he would use the term RPC, when this is a single protocol of Remote IPC and has absolutely nothing todo with the implementation of a microkernel?
The description given was paramount to labelling your microokernel a round robin based-microkernel. A perfectly logical descriptiuon that shows the microkernel has round robin cabability, but a foolish description given it ignores all other features and leads one to believe it relates in someway directly to the microkernel mechanism.
Even if we were to ignore this given, your explanation that RPC is making IPC look like LPC was quite clearly a rushed explanation that has gone slightly wrong. Assuming you mean to say it is a process of LPC (assumed to be a function call on the local machine and nothing todo with microkernel connectivity) for use between "remote" computers, then i still do not see what RPC has todo with microkernels. No practical use could come from implementing the seperate parts of a microkernel structure on seperate machines.
Though of course, one could choose to implement microkernel communication on numerous different machines and use a remote protocol of some sort to communicate, the impracticaliy is not an impossibility. In this case though, i am still confused as to why he would use the term RPC, when this is a single protocol of Remote IPC and has absolutely nothing todo with the implementation of a microkernel?
The description given was paramount to labelling your microokernel a round robin based-microkernel. A perfectly logical descriptiuon that shows the microkernel has round robin cabability, but a foolish description given it ignores all other features and leads one to believe it relates in someway directly to the microkernel mechanism.
As mystran said, remote procedure calling is a type of IPC. The only requirement to be "remote" is that it cross operating-system imposed protection boundaries or hardware-imposed machine boundaries.Aali wrote:RPC = Remote Procedure Call
"Remote" does not imply networked, it simply means the call is not done directly, but rather through some kind of messaging system
IPC != message passing. RPC does not always (though often does) run on top of message passing. Portals have been independently invented half a dozen times, dependently invented half a dozen more. The only reason you don't see more of them is that *everyone automatically defines RPC and IPC as involving message passing, thus ruling out portals by definition*.
Actually, it's your definition of RPC that is slightly wrong. Despite several proprietary networked-RPC protocols calling themselves "RPC", remote procedure calling is nothing more or less than using inter-process communication mechanisms to mimic the semantics of a function call within the local protection domain for services outside the local protection domain. The "outside" can run on the same machine or a different machine; it does not matter.Even if we were to ignore this given, your explanation that RPC is making IPC look like LPC was quite clearly a rushed explanation that has gone slightly wrong.
Since bare message passing is godawful to code real micro-kernel servers in (such as file-system servers, device drivers, and security servers), the creators of micro-kernel operating systems usually implement some kind of message-passing in the kernel and proceed to layer an RPC protocol on top of it, allowing application code to use function-calling semantics with the slight overhead of compiling IDL files down to IPC stub routines.
- Colonel Kernel
- Member
- Posts: 1437
- Joined: Tue Oct 17, 2006 6:06 pm
- Location: Vancouver, BC, Canada
- Contact:
Nope, RPC is also a blanket term. I hate to quote Wikipedia at you, but you're getting lost in the woods on this one:Tyler wrote:Clearly you are mistaken... for one i clearly stated in post and continue to stand by the fact that IPC is a blanket term but RPC is a specific technology.
http://en.wikipedia.org/wiki/Remote_procedure_call
As someone who has worked on commercial systems that use RPC (yes, I'm throwing the proverbial "book of the school of hard knocks" at you -- my apologies ), I can substantiate mystran & Crazed123's claims. Yes, RPC means "making communication to another domain (process or machine) look like a regular procedure call". It does not necessarily imply communication over a network.
Stop the snarking, please.
Top three reasons why my OS project died:
- Too much overtime at work
- Got married
- My brain got stuck in an infinite loop while trying to design the memory manager