xref: /OK3568_Linux_fs/kernel/fs/reiserfs/README (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun[LICENSING]
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunReiserFS is hereby licensed under the GNU General
4*4882a593SmuzhiyunPublic License version 2.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSource code files that contain the phrase "licensing governed by
7*4882a593Smuzhiyunreiserfs/README" are "governed files" throughout this file.  Governed
8*4882a593Smuzhiyunfiles are licensed under the GPL.  The portions of them owned by Hans
9*4882a593SmuzhiyunReiser, or authorized to be licensed by him, have been in the past,
10*4882a593Smuzhiyunand likely will be in the future, licensed to other parties under
11*4882a593Smuzhiyunother licenses.  If you add your code to governed files, and don't
12*4882a593Smuzhiyunwant it to be owned by Hans Reiser, put your copyright label on that
13*4882a593Smuzhiyuncode so the poor blight and his customers can keep things straight.
14*4882a593SmuzhiyunAll portions of governed files not labeled otherwise are owned by Hans
15*4882a593SmuzhiyunReiser, and by adding your code to it, widely distributing it to
16*4882a593Smuzhiyunothers or sending us a patch, and leaving the sentence in stating that
17*4882a593Smuzhiyunlicensing is governed by the statement in this file, you accept this.
18*4882a593SmuzhiyunIt will be a kindness if you identify whether Hans Reiser is allowed
19*4882a593Smuzhiyunto license code labeled as owned by you on your behalf other than
20*4882a593Smuzhiyununder the GPL, because he wants to know if it is okay to do so and put
21*4882a593Smuzhiyuna check in the mail to you (for non-trivial improvements) when he
22*4882a593Smuzhiyunmakes his next sale.  He makes no guarantees as to the amount if any,
23*4882a593Smuzhiyunthough he feels motivated to motivate contributors, and you can surely
24*4882a593Smuzhiyundiscuss this with him before or after contributing.  You have the
25*4882a593Smuzhiyunright to decline to allow him to license your code contribution other
26*4882a593Smuzhiyunthan under the GPL.
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunFurther licensing options are available for commercial and/or other
29*4882a593Smuzhiyuninterests directly from Hans Reiser: hans@reiser.to.  If you interpret
30*4882a593Smuzhiyunthe GPL as not allowing those additional licensing options, you read
31*4882a593Smuzhiyunit wrongly, and Richard Stallman agrees with me, when carefully read
32*4882a593Smuzhiyunyou can see that those restrictions on additional terms do not apply
33*4882a593Smuzhiyunto the owner of the copyright, and my interpretation of this shall
34*4882a593Smuzhiyungovern for this license.
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunFinally, nothing in this license shall be interpreted to allow you to
37*4882a593Smuzhiyunfail to fairly credit me, or to remove my credits, without my
38*4882a593Smuzhiyunpermission, unless you are an end user not redistributing to others.
39*4882a593SmuzhiyunIf you have doubts about how to properly do that, or about what is
40*4882a593Smuzhiyunfair, ask.  (Last I spoke with him Richard was contemplating how best
41*4882a593Smuzhiyunto address the fair crediting issue in the next GPL version.)
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun[END LICENSING]
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunReiserfs is a file system based on balanced tree algorithms, which is
46*4882a593Smuzhiyundescribed at https://reiser4.wiki.kernel.org/index.php/Main_Page
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunStop reading here.  Go there, then return.
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunSend bug reports to yura@namesys.botik.ru.
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunmkreiserfs and other utilities are in reiserfs/utils, or wherever your
53*4882a593SmuzhiyunLinux provider put them.  There is some disagreement about how useful
54*4882a593Smuzhiyunit is for users to get their fsck and mkreiserfs out of sync with the
55*4882a593Smuzhiyunversion of reiserfs that is in their kernel, with many important
56*4882a593Smuzhiyundistributors wanting them out of sync.:-) Please try to remember to
57*4882a593Smuzhiyunrecompile and reinstall fsck and mkreiserfs with every update of
58*4882a593Smuzhiyunreiserfs, this is a common source of confusion.  Note that some of the
59*4882a593Smuzhiyunutilities cannot be compiled without accessing the balancing code
60*4882a593Smuzhiyunwhich is in the kernel code, and relocating the utilities may require
61*4882a593Smuzhiyunyou to specify where that code can be found.
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunYes, if you update your reiserfs kernel module you do have to
64*4882a593Smuzhiyunrecompile your kernel, most of the time.  The errors you get will be
65*4882a593Smuzhiyunquite cryptic if your forget to do so.
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunReal users, as opposed to folks who want to hack and then understand
68*4882a593Smuzhiyunwhat went wrong, will want REISERFS_CHECK off.
69*4882a593Smuzhiyun
70*4882a593SmuzhiyunHideous Commercial Pitch: Spread your development costs across other OS
71*4882a593Smuzhiyunvendors.  Select from the best in the world, not the best in your
72*4882a593Smuzhiyunbuilding, by buying from third party OS component suppliers.  Leverage
73*4882a593Smuzhiyunthe software component development power of the internet.  Be the most
74*4882a593Smuzhiyunaggressive in taking advantage of the commercial possibilities of
75*4882a593Smuzhiyundecentralized internet development, and add value through your branded
76*4882a593Smuzhiyunintegration that you sell as an operating system.  Let your competitors
77*4882a593Smuzhiyunbe the ones to compete against the entire internet by themselves.  Be
78*4882a593Smuzhiyunhip, get with the new economic trend, before your competitors do.  Send
79*4882a593Smuzhiyunemail to hans@reiser.to.
80*4882a593Smuzhiyun
81*4882a593SmuzhiyunTo understand the code, after reading the website, start reading the
82*4882a593Smuzhiyuncode by reading reiserfs_fs.h first.
83*4882a593Smuzhiyun
84*4882a593SmuzhiyunHans Reiser was the project initiator, primary architect, source of all
85*4882a593Smuzhiyunfunding for the first 5.5 years, and one of the programmers.  He owns
86*4882a593Smuzhiyunthe copyright.
87*4882a593Smuzhiyun
88*4882a593SmuzhiyunVladimir Saveljev was one of the programmers, and he worked long hours
89*4882a593Smuzhiyunwriting the cleanest code.  He always made the effort to be the best he
90*4882a593Smuzhiyuncould be, and to make his code the best that it could be.  What resulted
91*4882a593Smuzhiyunwas quite remarkable. I don't think that money can ever motivate someone
92*4882a593Smuzhiyunto work the way he did, he is one of the most selfless men I know.
93*4882a593Smuzhiyun
94*4882a593SmuzhiyunYura helps with benchmarking, coding hashes, and block pre-allocation
95*4882a593Smuzhiyuncode.
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunAnatoly Pinchuk is a former member of our team who worked closely with
98*4882a593SmuzhiyunVladimir throughout the project's development.  He wrote a quite
99*4882a593Smuzhiyunsubstantial portion of the total code.  He realized that there was a
100*4882a593Smuzhiyunspace problem with packing tails of files for files larger than a node
101*4882a593Smuzhiyunthat start on a node aligned boundary (there are reasons to want to node
102*4882a593Smuzhiyunalign files), and he invented and implemented indirect items and
103*4882a593Smuzhiyununformatted nodes as the solution.
104*4882a593Smuzhiyun
105*4882a593SmuzhiyunKonstantin Shvachko, with the help of the Russian version of a VC,
106*4882a593Smuzhiyuntried to put me in a position where I was forced into giving control
107*4882a593Smuzhiyunof the project to him.  (Fortunately, as the person paying the money
108*4882a593Smuzhiyunfor all salaries from my dayjob I owned all copyrights, and you can't
109*4882a593Smuzhiyunreally force takeovers of sole proprietorships.)  This was something
110*4882a593Smuzhiyuncurious, because he never really understood the value of our project,
111*4882a593Smuzhiyunwhy we should do what we do, or why innovation was possible in
112*4882a593Smuzhiyungeneral, but he was sure that he ought to be controlling it.  Every
113*4882a593Smuzhiyuninnovation had to be forced past him while he was with us.  He added
114*4882a593Smuzhiyuntwo years to the time required to complete reiserfs, and was a net
115*4882a593Smuzhiyunloss for me.  Mikhail Gilula was a brilliant innovator who also left
116*4882a593Smuzhiyunin a destructive way that erased the value of his contributions, and
117*4882a593Smuzhiyunthat he was shown much generosity just makes it more painful.
118*4882a593Smuzhiyun
119*4882a593SmuzhiyunGrigory Zaigralin was an extremely effective system administrator for
120*4882a593Smuzhiyunour group.
121*4882a593Smuzhiyun
122*4882a593SmuzhiyunIgor Krasheninnikov was wonderful at hardware procurement, repair, and
123*4882a593Smuzhiyunnetwork installation.
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunJeremy Fitzhardinge wrote the teahash.c code, and he gives credit to a
126*4882a593Smuzhiyuntextbook he got the algorithm from in the code.  Note that his analysis
127*4882a593Smuzhiyunof how we could use the hashing code in making 32 bit NFS cookies work
128*4882a593Smuzhiyunwas probably more important than the actual algorithm.  Colin Plumb also
129*4882a593Smuzhiyuncontributed to it.
130*4882a593Smuzhiyun
131*4882a593SmuzhiyunChris Mason dived right into our code, and in just a few months produced
132*4882a593Smuzhiyunthe journaling code that dramatically increased the value of ReiserFS.
133*4882a593SmuzhiyunHe is just an amazing programmer.
134*4882a593Smuzhiyun
135*4882a593SmuzhiyunIgor Zagorovsky is writing much of the new item handler and extent code
136*4882a593Smuzhiyunfor our next major release.
137*4882a593Smuzhiyun
138*4882a593SmuzhiyunAlexander Zarochentcev (sometimes known as zam, or sasha), wrote the
139*4882a593Smuzhiyunresizer, and is hard at work on implementing allocate on flush.  SGI
140*4882a593Smuzhiyunimplemented allocate on flush before us for XFS, and generously took
141*4882a593Smuzhiyunthe time to convince me we should do it also.  They are great people,
142*4882a593Smuzhiyunand a great company.
143*4882a593Smuzhiyun
144*4882a593SmuzhiyunYuri Shevchuk and Nikita Danilov are doing squid cache optimization.
145*4882a593Smuzhiyun
146*4882a593SmuzhiyunVitaly Fertman is doing fsck.
147*4882a593Smuzhiyun
148*4882a593SmuzhiyunJeff Mahoney, of SuSE, contributed a few cleanup fixes, most notably
149*4882a593Smuzhiyunthe endian safe patches which allow ReiserFS to run on any platform
150*4882a593Smuzhiyunsupported by the Linux kernel.
151*4882a593Smuzhiyun
152*4882a593SmuzhiyunSuSE, IntegratedLinux.com, Ecila, MP3.com, bigstorage.com, and the
153*4882a593SmuzhiyunAlpha PC Company made it possible for me to not have a day job
154*4882a593Smuzhiyunanymore, and to dramatically increase our staffing.  Ecila funded
155*4882a593Smuzhiyunhypertext feature development, MP3.com funded journaling, SuSE funded
156*4882a593Smuzhiyuncore development, IntegratedLinux.com funded squid web cache
157*4882a593Smuzhiyunappliances, bigstorage.com funded HSM, and the alpha PC company funded
158*4882a593Smuzhiyunthe alpha port.  Many of these tasks were helped by sponsors other
159*4882a593Smuzhiyunthan the ones just named.  SuSE has helped in much more than just
160*4882a593Smuzhiyunfunding....
161*4882a593Smuzhiyun
162