258456 (02-26-2012), [MPGH]Hassan (02-26-2012), [MPGH]Hell_Demon (02-26-2012), Paul (05-16-2012), t7ancients (03-08-2012)
Don't shoot it down just yet, read the story first!
Just now I was in need of a very powerful debugger, but it turns out there's no -recent- such thing. All I could find was ollyice and it's kin, but those don't really suit my needs at the moment. Primarily because I and the creators of ollyice don't agree on what we mean by 'kernel/powerful debugger'. I need the ability to forge/fake kernel callbacks and sandbox/virtualize the various programs I'm working on. Sadly Google and the authors of ollyice seem to think that I want to 'debug' the kernel :-/ That's probably because a 'kernel debugger' in my sense of the word does not exists, there's no operating system purely focused on reversing and hacking.
Just then another thought crossed my mind, why not build such a thing? I've been writing (and deleting) operating systems for nearly 2 years now, and I've got the basics down straight. I've never actually gotten around to a full Aero GUI, but I did have a working CLI with a few options at the peaks of my operating system developer efforts. The main problem about writing an operating system is the sheer amount of technical knowledge you have to possess in order to even implement a bootloader not to mention a full fledged and functional kernel. The code itself can be written by someone with an intermediate skill level in C++/C and a few helpful macros.
From there my thoughts wandered back to the days where I tried to build operating systems but would fail every time. I did not fail because it was too hard or too complex or anything, quite the contrary. It became boring. Each time around I found myself pouring over old RFCs from the 90s that seem ancient but are still very much alive in osdev. I needed something to keep me focused on the task at hand. Because now I realize that if I had still been developing my first os I would have made an Aero gui by now, with a functional sound driver to boot.
So that's what I'm proposing here! Lets build an operating system together!
This is not yet a 'recruiting thread' just post if you are interested in such a project and what you'll be able to contribute. I've not yet given any thought as to how we are going to design the os, will it be linux-isch (easy-mode), appel-isch (hard mode) or windows-isch (god mode)? Will we write it in C/assembler(easier), C++(harder) or will we move from those as quickly as possible so that we can implement the kernel in java/.net/phyton(god mode) or another interpreted language?
Post what you think is a good architecture and why you think it'd do well for our operating system.
Next how are we going to distribute the code? Are we using Git? Or are we going for a cloud-based solution with something like drop-box?
Post your thoughts, what should we use and why.
How should we take decisions/communicate? Will we be communicating via IRC(oldschool), will we use skype(scary), teamspeak(confusing) or the forums(slow)?
Who is going to write the documentation? How will we document our code, what coding style are we adopting? What license are we taking?
It would be nice if we could decide on some of these things, if you guys are interested that isI think a project like this would really revive the programming section because there'll be something to do for the advanced members. If you know some people in the specialized game-hacking sections you can also point them to this thread also. As long as they are not the average coder (in those sections) who thinks coding is some kind of religion (you know which kinds of people I mean)
tl/dr: Come build an operating system, it's fun, cool and the ultimate coders challenge. It will revive the programmer section for advanced members
Post you thoughts!
-SCHiM
Last edited by .::SCHiM::.; 02-26-2012 at 12:58 PM.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
258456 (02-26-2012), [MPGH]Hassan (02-26-2012), [MPGH]Hell_Demon (02-26-2012), Paul (05-16-2012), t7ancients (03-08-2012)
It's way over my head. Plus, i would be afraid to install this because what if it causes issues. Or isn't compatible therefore causing issues. but a good idea nonetheless

236
I'll help out whenever I have time, which I don't think will be a whole lot in the upcoming few weeks >: Already got more work then I can handle at the moment
Ah we-a blaze the fyah, make it bun dem!
C+asm, IRC+wiki, git/svn, neither windows/linux/mac based.
I don't know if I'd help, but at the least I'd follow development. It might interest me later.
Languages: C, C++, x86 ASM, PHP, Lua
That's cool everyone, perhaps we could do something like passive development, where we only do a little work to the system before quitting? It doesn't have to be a very time consuming project or anything, just something casual.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
[MPGH]Hassan (02-27-2012)


445
You have all my support. I will do whatever I can. I have operating system course this semester and hopefully the professor would teach us some advanced stuff, so maybe that can be of some help. As for the OS, I know nothing about bootstrapping and all the technical stuff that boots up an operating system, so that's up-to you. But if you are going to implement the kernel in .NET (which would be cool), I would definitely be of some help. So, I am PM'ing you my hotmail ID. Add me and let me know what you think !
Would be fun, but i don't know if i am good enough though.
@Hassan
I'm reading about the possibility of a C# kernel right now, it seems to be one helluva pain to get it going. For starters there's the chicken and the egg problem (like C++ has)
C# needs a runtime environment, this environment is provided by the kernel, obvious problem is obvious
But that is assuming we can run it at all, we either need AOT-compilation(easier) or JIT-compilation(harder) to run the kernel in C# and for that we need a stable and sufficient C kernel to start with, and someone will have to go through coder hell of building ia32 compiler for C# ... and that person is not going to be me![]()
But I'm up for a challenge so why not?
@258456
You would not install the system on your real harddrive but on an emulator like bochs. You can 'simulate' a computer form the ground up, and our os wouldn't know the difference.
@Variant
Who knows, you could help develop the C library for our system, once the HAL is implemented in the kernel that's as easy as cake, just make a function that does exactly what the standards say it should.
For example from c99:Then you do:The remove function causes the file whose name is the string pointed to by filename
to be no longer accessible by that name. A subsequent attempt to open that file using that
name will fail, unless it is created anew. If the file is open, the behavior of the remove
function is implementation-defined
Basic support and things like this won't be hard to code.Code://spseudo implementation of the remove() function int remove(const char *filename){ HANDLE h_filesystem HAL_OPEN_FILESYSTEM( "FAT32" ); //" If the file is open, the behavior of the remove function is implementation-defined" if( ! h_filesystem ) return 0; else HAL_WRITE_FILESYSTEM( h_filesystem, filename, NULL); return 1; }
Ohh, and the boot loader is almost done:
Last edited by .::SCHiM::.; 02-28-2012 at 04:44 AM.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
[MPGH]Hassan (02-28-2012)


445
Hmmm...just tell me what I have to do (things you don't want to do) and I'll start reading on it. You should create a thorough outline of what needs to be done. Also, list the tools I must have on my PC. And nice job on loader :3
Lil status update here, the very first 512 bytes of the system are done!
Should I make a separate thread for them or...
@Hassan , ok I'll make a nice diagram with things that have to be done and stuff, I don't have msn/hotmail but we'll think of something
EDIT:
So, everyone up to the job, here's the concept: https://docs.google.com/document/pub...gQEKQLaAWRzG4o
If you like to join, my mail is at the bottom of that page. I'll update the page with status as things change.
Last edited by .::SCHiM::.; 02-28-2012 at 12:32 PM.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger
[MPGH]Hassan (02-28-2012)

28
I have some experience with C/C++ and C#, and I want to get into assembly. Maybe I could contribute somehow? I don't have much practical experience, and I've never had courses on it, but another monkey with a wrench might come in handy someday eh?
Edit: I know you're all much more experienced; I'm hoping I can learn a thing or two from you? >![]()
Last edited by t7ancients; 03-08-2012 at 04:36 AM.
I will be looking into this and hitting a few books, see if I can come up with anything.
We're working on the system at this moment, if you've any C#/.net experience you can probably work on it. We plan on having the C# kernel operational this weekend.
I'm SCHiM
Morals derive from the instinct to survive. Moral behavior is survival behavior above the individual level.
Polymorphic engine
Interprocess callback class
SIN
Infinite-precision arithmetic
Hooking dynamic linkage
(sloppy)Kernel mode Disassembler!!!
Semi debugger

1327
Sounds interesting although I probably won't be able to help with the Assembly and C/C++ part of it, just the C# part.
Handy Tools/Hacks:
Extreme Injector v2.1
A powerful and advanced injector in a simple GUI.
Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!
Minion Since: 13th January 2011
Moderator Since: 6th May 2011
Global Moderator Since: 29th April 2012
--My Art--
[Roxas - Pixel Art, WIP]
[Natsu - Drawn]
[Natsu - Coloured]
All drawings are coloured using Photoshop.
--Gifts--
[Kyle]