Page 1 of 2

BOOK's

Posted: Thu Nov 30, 2006 9:20 am
by key
I need some book's or sites to learn how to write some function to ReacOS...Why ? Becouse that's not an application like paint :D, many code are writed on low level :? ( as i thinkt i'm right)...

Where i can find enough lectures to learn for your help, and i need to know what system and environment havu u using for build, my computer is:
Athlon64x2 3.8+
1024DDR geil
2x80hdd raid
gfx 7600gs
asus m2n-e
That's enough for this project, i need more info about enviroment which u have and which distro for compatibility... i will work on vmware machine for compatibility.

I want to help build ROS but need time for studing a code ... after that i guest to u my person for help as coder...

If somebody can help me or has any info about book and system please answer for this...

meybe iso of yours system on which u have build an react os will be much helpfull

Sorry for my english...
any further information please sent to my mail :)

Posted: Thu Nov 30, 2006 10:14 pm
by Thcrw8383
What is your programming language? You need one to develop ReactOS,try C++,its the bomb!

Posted: Fri Dec 01, 2006 7:42 am
by mvent2
Thcrw8383 wrote:What is your programming language? You need one to develop ReactOS,try C++,its the bomb!
No! Most of ROS is written in normal C, with some of the kernel in Assembler. If you want to be a huge help to ROS, C is a must.
So 1st is to find a book that will teach you C. Second is to find something which can teach you the fundamentals of Windows NT. You should look at the docs at MSDN ( http://msdn.microsoft.com/library/defau ... erence.asp ) to see what API's Windows has, what they do and what they need to return etc.

There's also a Wiki page answering your exact question! :D
http://www.reactos.org/wiki/index.php/Suggested_Reading

Posted: Fri Dec 01, 2006 9:02 am
by key
hehe... i 'm programming in C [most in linux], C++ [ vc <=2005,borland 5,6,2006 ]...

no i knew that C++ isn't right for building many code [it's to slow and need much power of cpu].
After i finish my program for my university ( this will be at 29 december ) i will start for studing a code of ROS...

for now i had installed my own distro all of binaries are 64bit+lib32(work kompilation with flag $CC -m32 (flags)...but i wish to work on virtual 32bit machine for compatibility isue. Yesterday i've try compiling ROS on my host but there is many errors for my host... after 1 month i will try do that at virtual if that's start good i will start for studing... or i will buy a new (old) computer (as your host is (next) for compatibility).

so i will go now for finishing my project therefore i start reading api and wiki...
Sorry for my eng

Posted: Fri Jun 01, 2007 9:10 am
by bastetfurry
What about Freebasic?
Its more or less GCC in Basic, there is even a discusion on the FB board to create a ToyOS in FB...

Posted: Fri Jun 01, 2007 6:06 pm
by Z98
ReactOS will only accept C and assembly for the OS proper, and maybe C++ for certain applications. No exceptions.

Posted: Sat Aug 18, 2007 7:45 am
by nodtveidt
Z98 wrote:ReactOS will only accept C and assembly for the OS proper, and maybe C++ for certain applications. No exceptions.
This thread is a little old, but I felt it was very important to comment on this particular post.

The "no exceptions" policy is extremely foolish. While it is fine to code the OS itself in assembly and C, it is absolutely ridiculous to deny the usage of other compilers for useful or essential applications that can be included with the base install. It not only limits the options of the developer, but kills the legitimacy of the project as a whole by effectively saying "if you don't know C, you're useless and we don't want you". This policy needs to be thrown out completely, as it's not only counterproductive, it's also elitist.

Posted: Sat Aug 18, 2007 12:23 pm
by Ged
you obviously have no idea what you're talking about.

Posted: Sat Aug 18, 2007 1:42 pm
by bastetfurry
nodtveidt wrote:"if you don't know C, you're useless and we don't want you". This policy needs to be thrown out completely, as it's not only counterproductive, it's also elitist.
Its not a that far step from Basic to C.
If you know how to programm, that is.

Sure, you could build most tools with some Visual* Tool, but for someone who wants to compile ROS from source the one would need said Visual* Tool.
And thats not an option, the whole project has to be build able with GCC.

I think in some years, when Victor (the dev of FB) managed to make FB a GCC front end so that it can compile for whatever GCC can compile for, the ROS devs could be talked in allowing FB for simple apps like games and the like.
But not now.

(And no, my C skill is not high enough for something above the realms of games utilizing SDL 8) )

Posted: Sat Aug 18, 2007 6:42 pm
by Z98
nodtveidt wrote: This thread is a little old, but I felt it was very important to comment on this particular post.

The "no exceptions" policy is extremely foolish. While it is fine to code the OS itself in assembly and C, it is absolutely ridiculous to deny the usage of other compilers for useful or essential applications that can be included with the base install. It not only limits the options of the developer, but kills the legitimacy of the project as a whole by effectively saying "if you don't know C, you're useless and we don't want you". This policy needs to be thrown out completely, as it's not only counterproductive, it's also elitist.
So what language would you use? Java? JRE doesn't install on ROS so we wouldn't be able to run it anyways. C#? Disregarding the fact you legally aren't allowed to install the .NET runtime on ROS, we also don't know if it'll work. VB6? We still don't fully support that yet, and quite frankly, VB6 has some major weaknesses from both an implementation and conception standpoint that make it unfit for use for the few apps we would include in ROS. Perl, Python, Ruby, etc? Again, we don't even know if those will run on ROS.

Even with C/C++, we restrict applications to those that use the win32 API. We know Qt based apps don't work, as the failure of Opera and Adobe Reader testifies to, and we also have no built in support for MFC applications. We also don't have the libraries needed to compile those applications built into our build environment to begin with, and we certainly don't have the support to compile stuff written in other languages.

We are not stopping you from writing an application in some other language, but we reserve the right to decide whether we want it in the base OS. Also, it is not our intention to reinvent the wheel from an application standpoint. We include the few apps one would expect on Windows and leave the user to install the rest themselves. We make ROS knowing full well people will install proprietary or open source software written in god knows what. We expect people to install the programs they want themselves. You do not need an app to be signed off and included by the ROS devs to get it to run on ROS. So long as it works on Windows, it should eventually work on ROS. It is then up to your job to get people to use your app, not ours.

Posted: Sat Aug 18, 2007 8:50 pm
by ThePhysicist
When I first found out about reactos (~2.5 years ago), I couldn't write a single line of C. I even disliked C / C++. I knew Pascal, VB, assembly. But I was interested in the project, so I started reading the code and later commited some patches. Afaik, Alex Ionescu the former kernel lead programmer also didn't code in C before joining the reactos project. Learning C isn't that hard. It's more about knowing how to program and knowing some basics on how things work in an OS / in Windows. IMO learning C is much easier than learning C++ or C#.
And let's say out taskmgr was written in ada or some fancy basic variant and the developer just doesn't have anymore time for it. Who is going to fix the bugs if the other devs are not familiar with that language?
Saying the requirement for knowing C to become a ros developer is elitist is like saying the requirement for speaking English to become a steward/ess or the requirement for knowing math to become a physicist is elitist.

Posted: Mon Aug 20, 2007 10:52 am
by techpro
Ged wrote:you obviously have no idea what you're talking about.
I think he makes a very good point. While it may not be desirable to have programs in a mixture of languages making up a project, the decision to develop in C is surely not going to help the situation of a limited number of developers with limited time trying to complete a complex project.

No commercial developer develops complex software in C these days, and few colleges now even teach it. Most of Windows I believe nowadays is written in C++. It is simply more productive. In the commercial world the reason is money, but for this project I would have thought time, and the need to make the most of limited development resources, would be a powerful reason for using RAD tools wherever you could.

Posted: Mon Aug 20, 2007 2:23 pm
by Ged
Everything you say is actually wrong.

Seriously, if you don't understand / know something, it's better not to comment and pretend that you do.
No commercial developer develops complex software in C these days...
In retrospect, you'll actually find that most complex software is developed in C, especially operating systems. Windows, linux, osx, bsd, solaris, gnome, Wine, the vast majority of your Windows drivers are written in C, I could go on and on ....
C is far from dead, it's still one of the most widely used languages of today.
Most of Windows I believe nowadays is written in C++. It is simply more productive....
Again, this isn't true. Some high level parts of Windows use C++, like explorer, however most of the operating system (kernel, subsystems, dlls) are written in C and there are good reasons for this.
In the commercial world the reason is money, but for this project I would have thought time...
Contrary to what you think, C is the most productive language to use for this. It's a small language which every programmer worth his salt should know. It's was actually designed for writing operating systems, which aren't meant to be scribbled on the back of a fag packet and thrown together in a 1 month deadline.
You can't compare writing an operating system to developing a web client.
the need to make the most of limited development resources, would be a powerful reason for using RAD tools wherever you could....
RAD tools are all well and good for what they are designed for, I fail to see how this would help. We aren't developing some all singing all dancing GUI application, this is an operating system.

Really, there are a loads of reasons why C is the right language and why everything else isn't. However, I'm not prepared to write a 10 page document on why, if you don't have an understanding of why you'll just have to trust us.


You tell me 1 area of ReactOS which should be developed in a language other than C, and I'll give you the reason(s) why it isn't.

Posted: Mon Aug 20, 2007 3:44 pm
by GreatLord
Hi
Ged Good saying

and it is bad idea having more compilers we already have.
We using nasm and gcc as compiler in reactos, everthing
are building with thuse two. under allot diffent os, and envorment
we can build reactos on Linux, Windows, Mac OS X, ReactOS, all part
to adding another compiler should make the building system hell.


Now to C is Dead
C are still alive, if we looking at embeded market all software in the phone/tabetpc/embeded OS are writen in C, See Symbia OS that
are devloped for nokia phone and embeded device in frist place,
it is pure C. All windows driver need be in C see ms ddk/wdk for
driver example u will not found a drop of C++ code their.

See on some of the bigest compiler are writen in, it is C
See gcc, watcom, ms vs (their crt libary) and allot other things as well
See Linux kernel it is writen in C
See mirnada it is writen in C
See gimp writen in C
See vlc writen in C
See on crystalspace 3d engine writen in C and C++
See on doom3 engine writen in C and C++

we can make the list long
of software that are wirten in C or mix with C and C++

Posted: Mon Aug 20, 2007 5:45 pm
by Z98
The use of win32 C also discourages people from trying to get small, non-essential programs into the ROS base. It's not our objective to include every little program. We expect users to install the ones they want.