I have one problem with ReactOS
Moderator: Moderator Team
-
- Posts: 107
- Joined: Fri Nov 26, 2004 10:12 pm
- Location: España (perdido en el atlantico)
http://www.unt.edu/lpbr/subpages/reviews/band.htm
In Europe, the interoperability debate was settled decisively through the passage by the European Union of a Directive on the Legal Protection of Computer Programs in 1991. This Directive states that the ideas underlying any element of a computer program, including its interfaces, are exempted from copyright protection. It also specifically permits disassembly of computer programs in order to achieve interoperability. Band and Katoh describe the legislative history and content of the Directive, and carefully analyze its provisions. They review how the Directive has been implemented in member states, and compare it to the law in the U.S., other European countries, and Australia.
They then discuss subsequent cases, both in the U.S. and Canada, which used the procedure established in Computer Associates, including the background of Lotus v. Borland, which was pending as this book went to press.
The authors then turn to the debate over reverse engineering of software. This debate focused on the disassembly technique, specifically over whether disassembly was "fair use" of the original program, or if the readable version of the program created by disassembly was an unauthorized derivative work. Attempts to resolve this controversy through legislation were complicated by the involvement of the literary community, which had its own concerns about fair use unrelated to computer programs. Two cases involving video games, Sega v. Accolade and Atari v. Nintendo, established that disassembly was fair use if it was done for legitimate reasons and no other method of determining interface specifications was available.
GET INFORMED LOst[/b]
In Europe, the interoperability debate was settled decisively through the passage by the European Union of a Directive on the Legal Protection of Computer Programs in 1991. This Directive states that the ideas underlying any element of a computer program, including its interfaces, are exempted from copyright protection. It also specifically permits disassembly of computer programs in order to achieve interoperability. Band and Katoh describe the legislative history and content of the Directive, and carefully analyze its provisions. They review how the Directive has been implemented in member states, and compare it to the law in the U.S., other European countries, and Australia.
They then discuss subsequent cases, both in the U.S. and Canada, which used the procedure established in Computer Associates, including the background of Lotus v. Borland, which was pending as this book went to press.
The authors then turn to the debate over reverse engineering of software. This debate focused on the disassembly technique, specifically over whether disassembly was "fair use" of the original program, or if the readable version of the program created by disassembly was an unauthorized derivative work. Attempts to resolve this controversy through legislation were complicated by the involvement of the literary community, which had its own concerns about fair use unrelated to computer programs. Two cases involving video games, Sega v. Accolade and Atari v. Nintendo, established that disassembly was fair use if it was done for legitimate reasons and no other method of determining interface specifications was available.
GET INFORMED LOst[/b]
-
- Posts: 107
- Joined: Fri Nov 26, 2004 10:12 pm
- Location: España (perdido en el atlantico)
This is very long but interesting if you read it all:
http://www.eff.org/legal/cases/?f=sega_ ... ision.html
Section 107 lists the factors to be considered in determining whether a particular use is
a fair one. Those factors include:
(1) the purpose and character of the use, including whether such use is of a commercial
nature or is for nonprofit educational purposes;
(2) the nature of the copyrighted work;
(3) the amount and substantiality of the portion used in relation to the copyrighted work
as a whole; and
(4) the effect of the use upon the potential market for or value of the copyrighted work.
17 U.S.C. § 107. The statutory factors are not exclusive. Rather, the doctrine of fair use
is in essence "an equitable rule of reason." Harper & Row, Publishers, Inc. v. Nation
Enterprises, 471 U.S. 539, 560, 85 L. Ed. 2d 588, 105 S. Ct. 2218 (1985) (quoting H.R.
Rep. No. 1476, 94th Cong., 2d Sess. 65, reprinted in 1976 U.S.C.C.A.N. 5659,
5679). Fair use is a mixed question of law and fact. Id. "Where the district court has
found facts sufficient to evaluate each of the statutory factors," an appellate court may
resolve the fair use question as a matter of law. Id.
In determining that Accolade's disassembly of Sega's object code did not constitute a
fair use, the district court treated the first and fourth statutory factors as dispositive,
and ignored the second factor entirely. Given the nature and characteristics of
Accolade's direct use of the copied works, the ultimate use to which Accolade put the
functional information it obtained, and the nature of the market for home video
entertainment systems, we conclude that neither the first nor the fourth factor weighs in
Sega's favor. In fact, we conclude that both factors support Accolade's fair use
defense, as does the second factor, a factor which is important to the resolution of
cases such as the one before us.
(a)
With respect to the first statutory factor, we observe initially that the fact that copying
is for a commercial purpose weighs against a finding of fair use. Harper & Row, 471 U.S.
at 562. However, the presumption of unfairness that arises in such cases can be
rebutted by the characteristics of a particular commercial use. Hustler Magazine, Inc. v.
Moral Majority, Inc., 796 F.2d 1148, 1152 (9th Cir. 1986); see also Maxtone-Graham v.
Burtchaell, 803 F.2d 1253, 1262 (2d Cir. 1986), cert. denied, 481 U.S. 1059, 95 L. Ed. 2d
856, 107 S. Ct. 2201 (1987). Further "the commercial nature of a use is a matter of
degree, not an absolute . . . ." Maxtone-Graham, 803 F.2d at 1262.
Sega argues that because Accolade copied its object code in order to produce a
competing product, the Harper & Row presumption applies and precludes a finding of fair
use. That analysis is far too simple and ignores a number of important considerations.
We must consider other aspects of "the purpose and character of the use" as well. As we
have noted, the use at issue was an intermediate one only and thus any commercial
"exploitation" was indirect or derivative.
The declarations of Accolade's employees indicate, and the district court found, that
Accolade copied Sega's software solely in order to discover the functional
requirements for compatibility with the Genesis console - aspects of Sega's programs
that are not protected by copyright. 17 U.S.C. § 102(b). With respect to the video game
programs contained in Accolade's game cartridges, there is no evidence in the record
that Accolade sought to avoid performing its own creative work. Indeed, most of the
games that Accolade released for use with the Genesis console were originally
developed for other hardware systems. Moreover, with respect to the interface
procedures for the Genesis console, Accolade did not seek to avoid paying a customarily
charged fee for use of those procedures, nor did it simply copy Sega's code; rather, it
wrote its own procedures based on what it had learned through disassembly. Taken
together, these facts indicate that although Accolade's ultimate purpose was the
release of Genesis-compatible games for sale, its direct purpose in copying Sega's code,
and thus its direct use of the copyrighted material, was simply to study the functional
requirements for Genesis compatibility so that it could modify existing games and make
them usable with the Genesis console. Moreover, as we discuss below, no other
method of studying those requirements was available to Accolade. On these facts, we
conclude that Accolade copied Sega's code for a legitimate, essentially non-exploitative
purpose, and that the commercial aspect of its use can best be described as of minimal
significance.
We further note that we are free to consider the public benefit resulting from a particular
use notwithstanding the fact that the alleged infringer may gain commercially. See
Hustler, 796 F.2d at 1153 (quoting MCA, Inc. v. Wilson, 677 F.2d 180, 182 (2d Cir.
1981)). Public benefit need not be direct or tangible, but may arise because the
challenged use serves a public interest. Id. In the case before us, Accolade's
identification of the functional requirements for Genesis compatibility has led to an
increase in the number of independently designed video game programs offered for use
with the Genesis console. It is precisely this growth in creative expression, based on the
dissemination of other creative works and the unprotected ideas contained in those
works, that the Copyright Act was intended to promote. See Feist Publications,
Inc. v. Rural Tel. Serv. Co., ___ U.S. ___, 111 S. Ct. 1282, 1290 (1991) (citing Harper &
Row, 471 U.S. at 556-57). The fact that Genesis-compatible video games are not
scholarly works, but works offered for sale on the market, does not alter our judgment in
this regard. We conclude that given the purpose and character of Accolade's use of
Sega's video game programs, the presumption of unfairness has been overcome and the
first statutory factor weighs in favor of Accolade.
....
We therefore reject Sega's belated suggestion that Accolade's incorporation of the
code which "unlocks" the Genesis III console is not a fair use.
http://www.eff.org/legal/cases/?f=sega_ ... ision.html
Section 107 lists the factors to be considered in determining whether a particular use is
a fair one. Those factors include:
(1) the purpose and character of the use, including whether such use is of a commercial
nature or is for nonprofit educational purposes;
(2) the nature of the copyrighted work;
(3) the amount and substantiality of the portion used in relation to the copyrighted work
as a whole; and
(4) the effect of the use upon the potential market for or value of the copyrighted work.
17 U.S.C. § 107. The statutory factors are not exclusive. Rather, the doctrine of fair use
is in essence "an equitable rule of reason." Harper & Row, Publishers, Inc. v. Nation
Enterprises, 471 U.S. 539, 560, 85 L. Ed. 2d 588, 105 S. Ct. 2218 (1985) (quoting H.R.
Rep. No. 1476, 94th Cong., 2d Sess. 65, reprinted in 1976 U.S.C.C.A.N. 5659,
5679). Fair use is a mixed question of law and fact. Id. "Where the district court has
found facts sufficient to evaluate each of the statutory factors," an appellate court may
resolve the fair use question as a matter of law. Id.
In determining that Accolade's disassembly of Sega's object code did not constitute a
fair use, the district court treated the first and fourth statutory factors as dispositive,
and ignored the second factor entirely. Given the nature and characteristics of
Accolade's direct use of the copied works, the ultimate use to which Accolade put the
functional information it obtained, and the nature of the market for home video
entertainment systems, we conclude that neither the first nor the fourth factor weighs in
Sega's favor. In fact, we conclude that both factors support Accolade's fair use
defense, as does the second factor, a factor which is important to the resolution of
cases such as the one before us.
(a)
With respect to the first statutory factor, we observe initially that the fact that copying
is for a commercial purpose weighs against a finding of fair use. Harper & Row, 471 U.S.
at 562. However, the presumption of unfairness that arises in such cases can be
rebutted by the characteristics of a particular commercial use. Hustler Magazine, Inc. v.
Moral Majority, Inc., 796 F.2d 1148, 1152 (9th Cir. 1986); see also Maxtone-Graham v.
Burtchaell, 803 F.2d 1253, 1262 (2d Cir. 1986), cert. denied, 481 U.S. 1059, 95 L. Ed. 2d
856, 107 S. Ct. 2201 (1987). Further "the commercial nature of a use is a matter of
degree, not an absolute . . . ." Maxtone-Graham, 803 F.2d at 1262.
Sega argues that because Accolade copied its object code in order to produce a
competing product, the Harper & Row presumption applies and precludes a finding of fair
use. That analysis is far too simple and ignores a number of important considerations.
We must consider other aspects of "the purpose and character of the use" as well. As we
have noted, the use at issue was an intermediate one only and thus any commercial
"exploitation" was indirect or derivative.
The declarations of Accolade's employees indicate, and the district court found, that
Accolade copied Sega's software solely in order to discover the functional
requirements for compatibility with the Genesis console - aspects of Sega's programs
that are not protected by copyright. 17 U.S.C. § 102(b). With respect to the video game
programs contained in Accolade's game cartridges, there is no evidence in the record
that Accolade sought to avoid performing its own creative work. Indeed, most of the
games that Accolade released for use with the Genesis console were originally
developed for other hardware systems. Moreover, with respect to the interface
procedures for the Genesis console, Accolade did not seek to avoid paying a customarily
charged fee for use of those procedures, nor did it simply copy Sega's code; rather, it
wrote its own procedures based on what it had learned through disassembly. Taken
together, these facts indicate that although Accolade's ultimate purpose was the
release of Genesis-compatible games for sale, its direct purpose in copying Sega's code,
and thus its direct use of the copyrighted material, was simply to study the functional
requirements for Genesis compatibility so that it could modify existing games and make
them usable with the Genesis console. Moreover, as we discuss below, no other
method of studying those requirements was available to Accolade. On these facts, we
conclude that Accolade copied Sega's code for a legitimate, essentially non-exploitative
purpose, and that the commercial aspect of its use can best be described as of minimal
significance.
We further note that we are free to consider the public benefit resulting from a particular
use notwithstanding the fact that the alleged infringer may gain commercially. See
Hustler, 796 F.2d at 1153 (quoting MCA, Inc. v. Wilson, 677 F.2d 180, 182 (2d Cir.
1981)). Public benefit need not be direct or tangible, but may arise because the
challenged use serves a public interest. Id. In the case before us, Accolade's
identification of the functional requirements for Genesis compatibility has led to an
increase in the number of independently designed video game programs offered for use
with the Genesis console. It is precisely this growth in creative expression, based on the
dissemination of other creative works and the unprotected ideas contained in those
works, that the Copyright Act was intended to promote. See Feist Publications,
Inc. v. Rural Tel. Serv. Co., ___ U.S. ___, 111 S. Ct. 1282, 1290 (1991) (citing Harper &
Row, 471 U.S. at 556-57). The fact that Genesis-compatible video games are not
scholarly works, but works offered for sale on the market, does not alter our judgment in
this regard. We conclude that given the purpose and character of Accolade's use of
Sega's video game programs, the presumption of unfairness has been overcome and the
first statutory factor weighs in favor of Accolade.
....
We therefore reject Sega's belated suggestion that Accolade's incorporation of the
code which "unlocks" the Genesis III console is not a fair use.
ntoskrnl source tree
Directories have the same names, because Russinovich published a document about NT source code tree, a few years ago (now updated to XP): http://www.sysinternals.com/ntw2k/info/xpsrctree.shtmlLOst wrote:The funny thing is. All the folders in the source directory of NTOSKRNL are the same as the original Windows NT source.
I call it the the black box with a peek hole. Also all these Rtl APIs and Ki APIs are so well done, the one guy who made it much be able to see more than just a black box.
As Russinovisch says, there is no source code there.
-
- Posts: 115
- Joined: Wed Jan 05, 2005 10:53 pm
- Location: a thousand miles from Hinterland
- Contact:
One thing that caught my attention when reading through this thread was the word 'disassembly'.
Anybody who thinks ros is a disassembled version of windows is simply out of their mind.
Have you ever actually tried to reverse engineer code before? Probably not. What amazes me is that most people think you can just run a program through a reverse engineering prog, and get your fresh C++ code, complete with comments and informative variable names.
Reverse engineering (RE) is HARD. I once tried to RE a C program that was just 20 lines long and it took me two days. And even then, I had to do about 80% of it completely by intuition and knowing what the code was intended to do. Suffice to say it is fairly impossible to RE a program that you don't even know what it does. Ever heard of getting pig from sausage?
I find it difficult to believe that even a small portion (perhaps even just one file) of ros is reverse engineered. I don't think that it's really possible. Even so, if it were, then i'd enthusiastically applaud ros devs, because reverse engineering code is a royal pain in the a**.
What i'm trying to say is that its just simpler and easier to rewrite it from scratch than trying to reverse engineer it. That's what every programmer I know agrees on.
Anybody who thinks ros is a disassembled version of windows is simply out of their mind.
Have you ever actually tried to reverse engineer code before? Probably not. What amazes me is that most people think you can just run a program through a reverse engineering prog, and get your fresh C++ code, complete with comments and informative variable names.

Reverse engineering (RE) is HARD. I once tried to RE a C program that was just 20 lines long and it took me two days. And even then, I had to do about 80% of it completely by intuition and knowing what the code was intended to do. Suffice to say it is fairly impossible to RE a program that you don't even know what it does. Ever heard of getting pig from sausage?
I find it difficult to believe that even a small portion (perhaps even just one file) of ros is reverse engineered. I don't think that it's really possible. Even so, if it were, then i'd enthusiastically applaud ros devs, because reverse engineering code is a royal pain in the a**.
What i'm trying to say is that its just simpler and easier to rewrite it from scratch than trying to reverse engineer it. That's what every programmer I know agrees on.
caveman LIKES chocolate.
we shall reinvent the wheel until it turns properly.
we shall reinvent the wheel until it turns properly.
To your knowledge, Windows 95 up to Windows 98 SE has the exact power off code as the one in ReactOS, and it is not ACPI. It's called APM and was first only working on laptops. Then the ATX mainboards included it as standard.To my little knowledge, Win 98 does not have ACPI control, so Poweroff.asm can not be a dissasembly of Win.com
The ACPI code for turning off the computer is used in Windows Millennium and Windows 2000 and up. And that code is still not found. I'm working on it.
ACPI is (partitially) available in Win98SE tooLOst wrote:The ACPI code for turning off the computer is used in Windows Millennium and Windows 2000 and up. And that code is still not found. I'm working on it.

I can poweroff the system and even use suspend-to-ram (the board has no apm support!) with it.
So tell me, how does ACPI work? Is it easy to turn of the computer?gasmann wrote:ACPI is (partitially) available in Win98SE tooLOst wrote:The ACPI code for turning off the computer is used in Windows Millennium and Windows 2000 and up. And that code is still not found. I'm working on it.![]()
I can poweroff the system and even use suspend-to-ram (the board has no apm support!) with it.
GvG wrote:Ok, you've managed to completely confuse me. What ReactOS code are you talking about? Which source file?LOst wrote:To your knowledge, Windows 95 up to Windows 98 SE has the exact power off code as the one in ReactOS
Code: Select all
src\hal\halx86\generic\pwroff.c
Still not that legal to have it included in the source.GvG wrote:That's dead code, it is not even compiled.
But I will stop complaining! All I wanted to know is how far I can go for using code. And by now i know i can use any code as long as nothing can be traced back to Microsoft.
I still am very interested how to power off the computer like Millennium Edition and Windows 2000/XP do.
I don't know, sorryLOst wrote:So tell me, how does ACPI work? Is it easy to turn of the computer?gasmann wrote:ACPI is (partitially) available in Win98SE tooLOst wrote:The ACPI code for turning off the computer is used in Windows Millennium and Windows 2000 and up. And that code is still not found. I'm working on it.![]()
I can poweroff the system and even use suspend-to-ram (the board has no apm support!) with it.

However, it can't be that hard since the Linux Kernel can do it since a very long time and the newest FDAPM for FreeDOS even makes it possible to poweroff your computer in DOS with ACPI

Also, poweroff is not the only thing ACPI does. It can also standby/suspend the system and make the APIC (Advanced Programmable Interrupt Controller), which gives you 25 IRQ's on modern systems, available.
And it can throttle cpu-speed if I remember right.
Sorry I don't know so much about it

To sum it up a bit...
You do NOT accept reverse engineered original code in the ROS source, right? Leaving aside for a moment whether that would be possible at all.
Do you accept and use specification of original code behaviour that was obtained from disassembling original code? Or do you only use data from "test runs" of original code?
Do you accept and use input data for important test runs, i.e. that test run and its output data give you important clues of the original code behaviour, even if the importance of that data/test run was seen by disassembling original code?
You do NOT accept reverse engineered original code in the ROS source, right? Leaving aside for a moment whether that would be possible at all.
Do you accept and use specification of original code behaviour that was obtained from disassembling original code? Or do you only use data from "test runs" of original code?
Do you accept and use input data for important test runs, i.e. that test run and its output data give you important clues of the original code behaviour, even if the importance of that data/test run was seen by disassembling original code?
There's not so many ways to do something efficiently. Some code might be exactly the same but it doesn't mean it is stolen. most of that code causes interrupts and if you read through the documentation there's not much freedom of how to pass parameters to them...LOst wrote:Still not that legal to have it included in the source.
one could obfuscate the code of course...
P.S. i don't have a copy of win 9x so i can't verify.
Who is online
Users browsing this forum: Bing [Bot] and 3 guests