jwalsh@bigpond.net.au wrote:
Who uses assembler for serious anything these days?
<snip>
If anybody from ros is really in need of assembler then something is sus.
Considering you can't build ROS without an assembler, something must be sus. If you look at the ReactOS kernel, you will find many asm files. My point was that the vast majority is written in C and is generally preferred.
Ged.
************************************************************************ The information contained in this message or any of its attachments is confidential and is intended for the exclusive use of the addressee. The information may also be legally privileged. The views expressed may not be company policy, but the personal views of the originator. If you are not the addressee, any disclosure, reproduction, distribution or other dissemination or use of this communication is strictly prohibited. If you have received this message in error, please contact postmaster@exideuk.co.uk mailto:postmaster@exideuk.co.uk and then delete this message.
Exide Technologies is an industrial and transportation battery producer and recycler with operations in 89 countries. Further information can be found at www.exide.com
Yeah, okay, but . . . With C being a 'higher level' language than assembler it will always be easier for a group of humans to work on a project in. You could take this further and use something like Java, though not for an op-system kernel as Java programs need something below them to run the run-time virtual machine. C is a good language for writing an op system in because that is why it was designed (by Kerningham and Ritchie - their book on C is still the best work of its kind). It was created to write the Unix op system in and the combination of high and low-level features will always make it ideal for such a task. In terms of generating nice tight machine code when compiled, C is probably the best high-level language in this respect. Modern computers are so enormously powerful that most projects feel that it is unnecessary to use assembler for the extreme efficiency it offers - C is more than 'good enough'. But, when projects ARE written for modern machines using assembler we then start to see just how fast things can go. We might feel that the 'average' PC is plenty fast enough performing day-to-day tasks with an op system written in C and applications in Java or VB, and it probably is, but give it a chance to run software written in good assembler and you can get quite a surprise. Even if we think we can spare it, those high-level language programs (incl op system) can perform nothing like the blistering performance you can get from really good assembler code. You also find that because assembler programming is so 'direct' then the resulting machine code tends to be far more compact than that generated from other languages. Smaller programs (op systems included) use less room on disk, load faster into a smaller memory space and tend to have shorter execution paths. It is all fine and dandy that ReactOS will be a working 'clone' of Windows but Windows is often criticised for being large and slow. What if ReactOS could achieve full Windows compatibility while being much smaller and faster ? Kevin.
-----Original Message----- From: ros-general-bounces@reactos.org [mailto:ros-general-bounces@reactos.org]On Behalf Of Murphy, Ged (Bolton) Sent: 18 October 2005 08:13 To: 'ReactOS General List' Subject: RE: [ros-general] New to ReactOS
jwalsh@bigpond.net.au wrote:
Who uses assembler for serious anything these days?
<snip> > If anybody from ros is really in need of assembler then something is sus.
Considering you can't build ROS without an assembler, something must be sus. If you look at the ReactOS kernel, you will find many asm files. My point was that the vast majority is written in C and is generally preferred.
Ged.
The information contained in this message or any of its attachments is confidential and is intended for the exclusive use of the addressee. The information may also be legally privileged. The views expressed may not be company policy, but the personal views of the originator. If you are not the addressee, any disclosure, reproduction, distribution or other dissemination or use of this communication is strictly prohibited. If you have received this message in error, please contact postmaster@exideuk.co.uk mailto:postmaster@exideuk.co.uk and then delete this message.
Exide Technologies is an industrial and transportation battery producer and recycler with operations in 89 countries. Further information can be found at www.exide.com
ros-general mailing list ros-general@reactos.org http://www.reactos.org/mailman/listinfo/ros-general
You have to know when to use it. I think we do okay in that area. We have assembler optimized versions of string functions which are often executed during operation, but we also have C versions of these functions to make ReactOS easier to port to new architectures. We have assembler code for very low-level code which would be impossible to do in C. I believe there should be a minimum of assembly used to increase maintainability/portability and when used, it should be because there is a major speed difference during _normal operation_ of the OS. If a function which is called only once during startup of the OS could be made 1ns faster using assembly, then it doesn't really make ReactOS feel faster to the user even though running the function 10000 times in a loop might show a 1000% average speed increase. If the function was run 1000 times a second during normal operation then the user might feel a difference. There are other ways to make ReactOS faster than resorting to assembly. You could use better algorithms for instance.
Casper
-----Original Message----- From: ros-general-bounces@reactos.org [mailto:ros-general-bounces@reactos.org] On Behalf Of Kevin Lawton Sent: 18. oktober 2005 10:30 To: ReactOS General List Subject: RE: [ros-general] New to ReactOS
Yeah, okay, but . . . With C being a 'higher level' language than assembler it will always be easier for a group of humans to work on a project in. You could take this further and use something like Java, though not for an op-system kernel as Java programs need something below them to run the run-time virtual machine. C is a good language for writing an op system in because that is why it was designed (by Kerningham and Ritchie - their book on C is still the best work of its kind). It was created to write the Unix op system in and the combination of high and low-level features will always make it ideal for such a task. In terms of generating nice tight machine code when compiled, C is probably the best high-level language in this respect. Modern computers are so enormously powerful that most projects feel that it is unnecessary to use assembler for the extreme efficiency it offers - C is more than 'good enough'. But, when projects ARE written for modern machines using assembler we then start to see just how fast things can go. We might feel that the 'average' PC is plenty fast enough performing day-to-day tasks with an op system written in C and applications in Java or VB, and it probably is, but give it a chance to run software written in good assembler and you can get quite a surprise. Even if we think we can spare it, those high-level language programs (incl op system) can perform nothing like the blistering performance you can get from really good assembler code. You also find that because assembler programming is so 'direct' then the resulting machine code tends to be far more compact than that generated from other languages. Smaller programs (op systems included) use less room on disk, load faster into a smaller memory space and tend to have shorter execution paths. It is all fine and dandy that ReactOS will be a working 'clone' of Windows but Windows is often criticised for being large and slow. What if ReactOS could achieve full Windows compatibility while being much smaller and faster ? Kevin.