James Molloy tutorial gone

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
xealblade
Posts: 5
Joined: Fri Dec 23, 2011 12:38 pm

James Molloy tutorial gone

Post by xealblade »

^ It's disappeared off the web. Does anyone have a copy of the full tutorial source? Even though his code is kinda buggy, this was the only tutorial that was really allowing me to make progress as a total OS Dev newb.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: James Molloy tutorial gone

Post by AJ »

Hi,

I've just PM'd James - the whole domain appears to be down. In the meantime, has Google cached the info you need?

Cheers,
Adam
User avatar
DavidCooper
Member
Member
Posts: 1150
Joined: Wed Oct 27, 2010 4:53 pm
Location: Scotland

Re: James Molloy tutorial gone

Post by DavidCooper »

Google has cached versions of a few of the pages:-

Index:-

http://webcache.googleusercontent.com/s ... index.html

1. Environment Setup.

Not available.

2. Genesis:-

http://webcache.googleusercontent.com/s ... nesis.html

3. The Screen:-

Not available.

4. The GDT and IDT:-

Not available.

5. IRQs and the PIT:-

Not available.

6. Paging:-

http://webcache.googleusercontent.com/s ... aging.html

7. The Heap:-

Not available.

8. The VFS and the initrd:-

Not available.

9. Multitasking:-

http://webcache.googleusercontent.com/s ... sking.html

10. User Mode:-

Not available.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c

MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
xealblade
Posts: 5
Joined: Fri Dec 23, 2011 12:38 pm

Re: James Molloy tutorial gone

Post by xealblade »

Wow, that was quick! Thanks, guys. :mrgreen:

What I really need is the actual source code for the tutorial parts themselves (or just the last one, since it has all of them), which didn't get cached by the crawlers. The tutorial pages are mostly just theory with snippets. But it's implementation details I get hung up on the most so it helps to see some actually-working code/generic implementation.

I guess it might only be available from James himself. :(
wikiwolf
Posts: 13
Joined: Sun Apr 24, 2011 10:51 am

Re: James Molloy tutorial gone

Post by wikiwolf »

hi all!
well, it's only my second post but I think this can be helpful:
http://code.google.com/p/jamesm-tutoria ... e/checkout
xealblade
Posts: 5
Joined: Fri Dec 23, 2011 12:38 pm

Re: James Molloy tutorial gone

Post by xealblade »

That's quite helpful, wikiwolf. It's clearer than James's own code about memory management, in my opinion. The threads and locks and stuff are a nice addition as well. But it's still missing critical sections from the tutorial like the simple VFS/initrd and Usermode/Syscall stuff James had in his code.

I really want to avoid trying to decipher Linux or other enterprise-grade implementations. All that optimized, macro-heavy, and black-magic-performing code is definitely not beginner-friendly. Even something relatively simple-ish like FreeDOS is filled with tons of voodoo code in my eyes.

Does anyone know of any other simple but comprehensive source-available OS projects/tutorials in case James's code doesn't become available again?
User avatar
Love4Boobies
Member
Member
Posts: 2111
Joined: Fri Mar 07, 2008 5:36 pm
Location: Bucharest, Romania

Re: James Molloy tutorial gone

Post by Love4Boobies »

That is JamesM's code---he was working on a revised version of his tutorial. Either way, I for one hope it's gone forever because it does more harm than good. People mistake programming tutorials for sources of documentation when they are actually meant to be examples. Even more dangerous, they make people think they've learned something when they actually haven't.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
xealblade
Posts: 5
Joined: Fri Dec 23, 2011 12:38 pm

Re: James Molloy tutorial gone

Post by xealblade »

Some people learn better when you show them an engine working and let them tinker around with it a bit rather than just explaining from what pieces one could maybe be assembled. And usually one that's intentionally naive for the ease of learning.

Most of the concepts of OS programming are so abstract that someone might spend weeks reading about the details of what they potentially could entail and still have no idea how to implement them since the "documentation" is vague by its very nature. I'd love to see some concrete documentation that's completely clear on all the implementation details for something like a memory manager, virtual file system, or system call interface. James's tutorial code at least gets you through the front door on a lot of the basics. It's pretty much the only one I've been able to find that actually does more than show you how to do the things that do have concrete documentation like x86-specific descriptor table setup or VGA text mode manipulation and without blindsiding you with mind-bogglingly advanced concepts that require a lot of specific explanation behind the reasoning involved such as the Linux kernel source.

For hobbyists like myself that didn't have the luxury of learning systems programming in a classroom, such a simple and comprehensive tutorial/example while maybe not ideal is nonetheless indispensable in the absence (or ignorance) of better alternatives.
User avatar
VolTeK
Member
Member
Posts: 815
Joined: Sat Nov 15, 2008 2:37 pm
Location: The Fire Nation

Re: James Molloy tutorial gone

Post by VolTeK »

Love4Boobies wrote: Even more dangerous, they make people think they've learned something when they actually haven't.

Give them the blocks. Not the building.

They will create their own style of architecture'd houses.

Not the same house with a different mail box.
wikiwolf
Posts: 13
Joined: Sun Apr 24, 2011 10:51 am

Re: James Molloy tutorial gone

Post by wikiwolf »

Actually I use jamesm code for gdt, idt and interrupts/exceptions but before making a release I want to rewrite all the extraneous code in the system.
Since last year the project hasn't evolved so much, I'm still playing around with the pit, memory manager and exceptions: I mostly corrected bugs and studied the manuals... now I'm almost ready to rewrite and release.

Even if jamesm code is a little buggy, I think is a great starting point for newbies...
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Re: James Molloy tutorial gone

Post by JamesM »

Hi,

The site is not meant to be down. It looks like a problem with my DNS server - I've emailed my provider. Hopefully it'll be back up shortly, but who knows, it's Christmas season.

The Google Code project is indeed written by me as a rewrite of the tutorials on my site. It's almost complete, and I really should spend that bit extra time to properly finish the documentation. It's *so close*!
GhostXoPCorp wrote:
Love4Boobies wrote: Even more dangerous, they make people think they've learned something when they actually haven't.

Give them the blocks. Not the building.

They will create their own style of architecture'd houses.

Not the same house with a different mail box.
The point of this tutorial series was to show an example building. There are many resources that describe the "blocks", but there were none that showed how they fit together. Once you've seen how they fit together in a skeleton framework, it becomes easier to pull out a block and rewrite it. It also helps comprehension of the system as a whole for some people.

Cheers,

James
xealblade
Posts: 5
Joined: Fri Dec 23, 2011 12:38 pm

Re: James Molloy tutorial gone

Post by xealblade »

Excellent - It's back already.

Thank you, James and happy Christmas! :mrgreen:
User avatar
Love4Boobies
Member
Member
Posts: 2111
Joined: Fri Mar 07, 2008 5:36 pm
Location: Bucharest, Romania

Re: James Molloy tutorial gone

Post by Love4Boobies »

Heh, that's the answer I was expecting. Learning from examples is fine but no one can learn from examples alone---not because they are stupid but because examples contain very little information and because those examples work, it's easy to think they're enough. How would you like it if physicians and surgeons were educated by tutorials alone? Furthermore, "weeks" on studying theory, as you mention, are not nearly enough. I don't expect you to listen to me but I have a funny feeling you'll soon give up just like everyone else who thought they were special before you.

Of course, I mean no disrespect towards JamesM and his tutorial series. His intentions are obviously good; it's just that people are always looking for shortcuts and they never take anyone anywhere.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
User avatar
eryjus
Member
Member
Posts: 286
Joined: Fri Oct 21, 2011 9:47 pm
Libera.chat IRC: eryjus
Location: Tustin, CA USA

Re: James Molloy tutorial gone

Post by eryjus »

JamesM wrote:The point of this tutorial series was to show an example building. There are many resources that describe the "blocks", but there were none that showed how they fit together. Once you've seen how they fit together in a skeleton framework, it becomes easier to pull out a block and rewrite it. It also helps comprehension of the system as a whole for some people.
Thank you! Exactly how I have been approaching it and it HAS been helpful. Your effort for our collective benefit is appreciated.
Adam

The name is fitting: Century Hobby OS -- At this rate, it's gonna take me that long!
Read about my mistakes and missteps with this iteration: Journal

"Sometimes things just don't make sense until you figure them out." -- Phil Stahlheber
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: James Molloy tutorial gone

Post by gravaera »

wikiwolf wrote:Actually I use jamesm code for gdt, idt and interrupts/exceptions but before making a release I want to rewrite all the extraneous code in the system.
Since last year the project hasn't evolved so much, I'm still playing around with the pit, memory manager and exceptions: I mostly corrected bugs and studied the manuals... now I'm almost ready to rewrite and release.

Even if jamesm code is a little buggy, I think is a great starting point for newbies...
1. Why are you using somebody else's code?
2. How could your project be ready for release when it relies on known, flawed code?
3. Where exactly do you think you're going with this lack-luster effort?
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Post Reply