Your first attempt to make a OS

Programming, for all ages and all languages.
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

anon19287473 wrote:Property is theft... in capitalism it is possible for someone to make money simply by manipulating their resources and not contributing anything.
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.
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
User avatar
stevenup7002
Member
Member
Posts: 60
Joined: Tue Sep 20, 2005 11:00 pm
Location: Ireland
Contact:

Post by stevenup7002 »

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? :oops:
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

Alboin wrote:Property is theft?
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.

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.
anon19287473
Member
Member
Posts: 97
Joined: Thu Mar 15, 2007 2:27 pm

economy

Post by anon19287473 »

mystran wrote:
Alboin wrote:Property is theft?
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.

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.
In an Anarchist economy, man power is currency (http://en.wikipedia.org/wiki/Anarchist_economics) , which is true equality :)
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?
There is one, it's called Windows :lol:
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.
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.
employing millions (?) of people
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 software :)
anon19287473 wrote:
I'd really rather not start a flamewar, and it seems this has gotten a tad of topic, so lets drop it.
Why drop it? Why not go on?
So it will be :(
User avatar
elderK
Member
Member
Posts: 190
Joined: Mon Dec 11, 2006 10:54 am
Location: Dunedin, New Zealand
Contact:

Post by elderK »

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.

:P Epic, huh? :P
~zeii
User avatar
inflater
Member
Member
Posts: 1309
Joined: Thu Sep 28, 2006 10:32 am
Location: Slovakia
Contact:

Post by inflater »

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?
Image

"Because Microsoft is for Capitalists running DOS."

See? :P We DO have a capitalist OS :lol:

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 :P)
Crazed123
Member
Member
Posts: 248
Joined: Thu Oct 21, 2004 11:00 pm

Post by Crazed123 »

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.
User avatar
mathematician
Member
Member
Posts: 437
Joined: Fri Dec 15, 2006 5:26 pm
Location: Church Stretton Uk

Post by mathematician »

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.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

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.
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?
Aali
Member
Member
Posts: 58
Joined: Sat Apr 14, 2007 12:13 pm

Post by Aali »

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
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

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
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?
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

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?
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).

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.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

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.
Crazed123
Member
Member
Posts: 248
Joined: Thu Oct 21, 2004 11:00 pm

Post by Crazed123 »

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
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.

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*.
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.
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.

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.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Post by Colonel Kernel »

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.
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:

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 :wink:), 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:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
Post Reply