I have one problem with ReactOS

Here you can discuss ReactOS related topics.

Moderator: Moderator Team

Lucio Diaz
Posts: 107
Joined: Fri Nov 26, 2004 10:12 pm
Location: España (perdido en el atlantico)

Post by Lucio Diaz »

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]
Lucio Diaz
Posts: 107
Joined: Fri Nov 26, 2004 10:12 pm
Location: España (perdido en el atlantico)

Post by Lucio Diaz »

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.
ea
Developer
Posts: 31
Joined: Sat Nov 27, 2004 11:54 am
Location: Italy, EU

ntoskrnl source tree

Post by ea »

LOst 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.
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.shtml

As Russinovisch says, there is no source code there.
Elledan
Posts: 363
Joined: Sat Jan 01, 2005 3:18 pm
Location: Netherlands
Contact:

Post by Elledan »

Thank you for looking up those links, Lucio Diaz :)
AcetoliNe
Posts: 115
Joined: Wed Jan 05, 2005 10:53 pm
Location: a thousand miles from Hinterland
Contact:

Post by AcetoliNe »

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. :roll:

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.
LOst
Posts: 27
Joined: Sat Feb 12, 2005 9:33 pm

Post by LOst »

To my little knowledge, Win 98 does not have ACPI control, so Poweroff.asm can not be a dissasembly of Win.com
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.

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.
GvG
Posts: 499
Joined: Mon Nov 22, 2004 10:50 pm
Location: The Netherlands

Post by GvG »

LOst wrote:To your knowledge, Windows 95 up to Windows 98 SE has the exact power off code as the one in ReactOS
Ok, you've managed to completely confuse me. What ReactOS code are you talking about? Which source file?
Gasmann
Posts: 283
Joined: Fri Nov 26, 2004 6:53 pm
Location: Germany
Contact:

Post by Gasmann »

LOst 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.
ACPI is (partitially) available in Win98SE too :wink:
I can poweroff the system and even use suspend-to-ram (the board has no apm support!) with it.
LOst
Posts: 27
Joined: Sat Feb 12, 2005 9:33 pm

Post by LOst »

gasmann wrote:
LOst 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.
ACPI is (partitially) available in Win98SE too :wink:
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?
LOst
Posts: 27
Joined: Sat Feb 12, 2005 9:33 pm

Post by LOst »

GvG wrote:
LOst wrote:To your knowledge, Windows 95 up to Windows 98 SE has the exact power off code as the one in ReactOS
Ok, you've managed to completely confuse me. What ReactOS code are you talking about? Which source file?

Code: Select all

src\hal\halx86\generic\pwroff.c
GvG
Posts: 499
Joined: Mon Nov 22, 2004 10:50 pm
Location: The Netherlands

Post by GvG »

That's dead code, it is not even compiled.
LOst
Posts: 27
Joined: Sat Feb 12, 2005 9:33 pm

Post by LOst »

GvG wrote:That's dead code, it is not even compiled.
Still not that legal to have it included in the source.

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.
Gasmann
Posts: 283
Joined: Fri Nov 26, 2004 6:53 pm
Location: Germany
Contact:

Post by Gasmann »

LOst wrote:
gasmann wrote:
LOst 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.
ACPI is (partitially) available in Win98SE too :wink:
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?
I don't know, sorry :roll:
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 :wink:
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 :roll:
Morin
Posts: 1
Joined: Mon Feb 28, 2005 1:43 am

Post by Morin »

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?
w3seek
Developer
Posts: 144
Joined: Tue Nov 23, 2004 12:12 am

Post by w3seek »

LOst wrote:Still not that legal to have it included in the source.
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...
one could obfuscate the code of course...

P.S. i don't have a copy of win 9x so i can't verify.
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 3 guests