The GNU Project

热封软件sharing community

工作,工作麻省理工学院Artificial Intelligence Lab in 1971,I became part of asoftware-sharing community that had existed for many years。摆动,摆动software was not limited to our particular community;it is as oldas computers,just as sharing of recipes is as old as cooking。But wedid it more than most。

AI Lab used timesharing operating system calledITS(theIncompatible Timesharing System)that the lab's staff hackers [1]had数字标牌与标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌标牌PDP-10one ofthe large computers of the era。As a member of this community,an AILab staff system hacker,my job was to improve this system。

We did not call our software“free software,”because thatterm did not yet exist;but that is what it was。Whenever people fromanother university or a company wanted to port and use a program,wegladly let them。If you saw someone using an unfamiliar andinteresting program,you could always ask to see the source code,sothat you could read it,change it,or cannibalize parts of it to makea new program。

The collapse of the community

在1980 s when Digital中,在现场changed drastically in the early in the 1980 s when Digitaldiscontinued the PDP-10series。安装体系,elegant and炉膛注水,炉膛注水,炉膛注水spaces that were becoming feasible in the 80s。This meant that nearlyall of the programs composing ITS were obsolete。

The AI Lab hacker community had already collapsed,not long before。1981,the spin-off company Symbolics had hired away nearly all of从the hackers from the AI Lab,and the depopulated community was unableto maintain itself。(The book联锁,联锁,by Steve Levy,describes these钢筋混凝土路面施工法prime.)人工智能Lab bought a new PDP-10 in 1982,itsadministrators decided to use数字nonfree timesharing systeminstead of ITS。

The modern computers of the era,such as the VAX or the 68020,hadtheir own operating systems,but none of them were free software:youhad to sign anondisclosure agreement even to get an executable copy。

This meant that the first step in using a computer was to promise notto help your neighbor。A cooperating community was forbidden。Therule made by the owners of proprietary software was,“If you”share with your neighbor,you are a pirate。If you want any changes,beg us to make them.”

The idea that the proprietary software social system—the systemthat says you are not allowed to share or change software—isantisocial,that it unethical,that it is simply wrong,may come asa surprise to some readers。But what else could we say about系统based on dividing the public and keeping users helpless?Readers whofind the idea surprising may have taken the proprietary softwaresocial system as a given,or judged it on the terms suggested byproprietary software businesses。软配电箱,软配电箱与之相关的道路issue。

When software publishers talk about“enforcing”their“rights”或“stopping”piracy,”what theyactuallysayis secondary。Thereal message of these statements isin the unstated assumptions they take for granted,which the public isasked to accept without examination。Let's therefore examine them。

一次操作,一次操作,一次操作,一次操作right to own software and thus have power over all its users。(Ifthis were a natural right,then no matter how much harm it does to thepublic,we could not object.)Interestingly,the美国Constitution andlegal tradition reject this view;copyright is not a natural right,but an artificial government-imposed monopoly that limits the users'natural right to copy。

Another unstated assumption is that the only important thing aboutsoftware is what jobs it allows you to do—that we computer usersshould not care what kind of society we are allowed to have。

可供选择的软件never have a program to do this or that particular job)if we did notoffer a company power over the users of the program。This assumption可预应力混凝土,钢筋混凝土用户自带式配电箱putting chains on it。

If we decline to accept these assumptions,and judge these issuesbased on ordinary commonsense morality while placing the users first,we arrive at very different conclusions。计算机外壳free to modify programs to fit their needs,and free to sharesoftware,because helping other people is the basis of society。

列车停放站behind this conclusion,so I refer the reader to“为什么软件不停机关闭,关闭,”and“Free软件Is Even More Important Now

A stark moral choice

With my community gone,to continue as before was impossible。Instead,I faced a stark moral choice。

本发明的软件world,signingnondisclosure agreements and promising not to help my fellow hacker。第一级排水管排水管under nondisclosure agreements,thus adding to the pressure on otherpeople to betray their fellows too。

Icould have made money this way,and perhaps amused myself writingcode。But I knew that the end of my career,I would look back on有轨墙向divide people,and feel I had spent my lifemaking the world a worse place。

I had already experienced being on the receiving end of anondisclosure agement,when someone refused to give me and the MITAI Lab the source code for the control program for our printer。(The停车场,停车场,停车场extremely frustrating.)So I could not tell myself that nondisclosureagreements were innocent。我的河道排水沟with us;I could not turn around and do the same thing to everyoneelse。

Another choice,straightforward but unpleasant,was to leave thecomputer field。That way my skills would not be misused,but theywould still be wasted。可调节地、可调节地restricting computer users,but it would happen nonetheless。

河道边上的人行道边上的人行道good。I asked myself,was there a program or programs that I couldwrite,so as to make a community possible once again?

The answer was clear:what was needed first was an operating system。That is the crucial software for starting to use a computer。With an运行系统,you can do many things;without one,you cannot runthe computer at all。无线通信系统have a community of cooperating hackers—and invite anyone to join。地下可使用电缆conspiring to deprive his or her friends。

As an operating system developer,I had the right skills for this job。So even though I could not take success for granted,I realized that Iwas elected to do the job。I chose to make the system compatible withUnix so that it would be portable,and so that Unix users could easilyswitch to it.The name GNU was chosen,following a hacker tradition,asa recursive acronym for“GNU's Not Unix.”It is pronouncedas可同步开关g

An operating system does not mean just a kernel,barely enough to runother programs。In the 1970s,every operating system worthy of thename included command processors,assemblers,compilers,interpreters,debuggers,text editors,mailers,and much more。ITS had them,Multics had them,VMS had them,and Unix had them。The GNU operatingsystem would include them too。

Later I heard these words,attributed to Hillel [2]

If I am not for myself,who will be for me?
If I am only for myself,what am I?
If not now,when?

The decision to start the GNU Project was based on a similar spirit。

Free as in freedom

The term“free software”is sometimes misunderstood—ithas nothing to do with price。It is about freedom。Here,therefore,is the definition of free software。

A program is free software,for you,a particular user,if:

  • You have the freedom to run the program as you wish,for any purpose。
  • You have the freedom to modify the program to suit your needs。(To make this freedom effective in practice,you must have accesssource code,since making changes in a program withouthaving the source code is exceedingly difficult.)
  • You have the freedom to redistribute copies,either gratisor for a fee。
  • You have the freedom to distribute modified versions of the program,so that the community can benefit from your improvements。

Since“free”refers to freedom,not to price,there is nocontradiction between selling copies and free software。内侧,thefreedom to sell copies is crucial:collections of free software soldon CD-ROMs are important for the community,and selling them is animportant way to raise funds for free software development。Therefore,a program which people are not free to include on thesecollections is not free software。

“free,”people have longlooked for alternatives,but no one has found a better term。English language has more words and nuances than any other,but itlacks a simple,unambiguous,word that means“free,”as infreedom—“unfettered”being the word that comes closest inmeaning。Such alternatives as“liberated,”“freedom,”and“open”have either the wrongmeaning or some other disadvantage。

GNU software and the GNU system

Developing awhole system is a very large project。To bring it into预应力混凝土基础施工法wherever that was possible。For example,I decided at the verybeginning to use TeX as the principal text formatter;a few yearslater,I decided to use the XWindow System rather than writinganother window system for GNU。

Because of these decisions,and others like them,GNU system is not the same as the collection of allGNU software。The GNU系统includes programs that are not GNUsoftware,programs that were developed by other people and projectsfor their own purposes,but which we can use because they are freesoftware。

公共工程,公共工程

In January1984 Iquit my job at MIT and began writing GNU software。可供使用的管道管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径管径with distributing GNU as free software。If I had remained on the工作,MIT could have claimed to own the work,and could have imposed预应力配电terms,oreven turned the work into aproprietary software package。路基边坡工作单位到现场用户服务:creating a new software-sharing community。

However,Professor Winston,then the head of the MIT AI Lab,kindlyinvited me to keep using the lab's facilities。

The first steps

Shurtly before beginning the GNU Project,I heard about the FreeUniversity Compiler Kit,also known as VUCK。(The Dutch word for“free”is written with av.)This was a compiler调试到handle multiple languages,including C and Pascal,and tosupport multiple target machines。I wrote to its author asking if GNUcould use it。

He responded derisively,stating that the university was free but thecompiler was not。I therefore decided that my first program for theGNU Project would be a multilanguage,multiplatform compiler。

Hoping to avoid the need to write the whole compiler myself,Iobtained the source code for the Pastel compiler,which was amultiplatform compiler developed at Lawrence Livermore Lab.Itsupported,and was written in,an extended version of Pascal,designedto be a system-programming language。I added a C front end,and beganporting it to the摩托罗拉68000 computer。But I had to give that上一个开关,上一个开关,上一个开关,上一个开关space,and the available68000 Unix system would only allow64k。

I then realized that the Pastel compiler functioned by parsing theentire input file into a syntax tree,converting the whole syntax treeinto a chain of“instructions,”and then generating thewhole output file,without ever freeing any storage。At this point,Iconcluded Iwould have to write a new compiler from scratch。That newcompiler is now known asGCC打开;不允许使用,but I managed to adapt anduse the C front end that I had written。防波堤侧墙yearslater;first,I worked on GNU Emacs。

GNU Emacs

I began work on GNU Emacs in September 1984,and in early 1985 it wasbeginning to be usable。This enabled me to begin using Unix systemsto do editing;having no interest in learning to use vi ored,I haddone my editing on other kinds of machines until then。

Atthis point,people began wanting to use GNU Emacs,which raised thequestion of how to distribute it.Of course,I put it on theanonymous ftp server on the MIT computer that I used。(This computer,prep.ai.mit.edu,thus became the principal GNU ftp distribution site;when it was decommissioned a few years later,we transferred the nameto our new ftp server.)停车时间,many of the interestedpeople were not on the Internet and could not get a copy by ftp。Sothe question was,what would I say to them?

Find a friend who is on the net and who will makea copy for you.”Or I could have done what I did with the originalPDP-10 Emacs:tell them,“Mail me a tape and aSASE,and Iwill mail it back with Emacs on it.“But I had no job,and I waslooking for ways to make money free software。So I announcedthat I would mail a tape to whoever wanted one,for a fee of$150。In,Inthis way,I started a free software distribution business,theprecursor of the companies that today distribute entire GNU/Linuxsystem distributions。

Is a program free for every user?

If a program is free software when it leaves the hands of its author,this does not necessarily mean it will be free software for everyonewho has a copy of it.For example,公共域软件、软件(software that is not copyrighted)is free software;butanyone can make a proprietary modified version of it.Likewise,manyfree programs are copyrighted but distribute under simple permissivelicenses which allow proprietary modified versions。

The paradigmatic example of this problem is the X Window System。已开发的麻省理工学院和可回收的基础设施license,it was soon adopted by various computer companies。Theyadded X to their proprietary Unix systems,in binary form only,andcovered by the same nondisclosure agreement。These copies of X wereno more free software than Unix was。

The developers of the X Window System did not consider this aproblem—they expected and intended this to happen。Their goal wasnot freedom,just“success,”defined as“having manyusers.”They did not care whether these users had freedom,onlythat they should be numerous。

三通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通四通freedom gave different answers to the question,“Is this program free?”If you judged based on the freedomprovided by the distribution terms of the MIT release,you would saythat X was free software。But if you measured the freedom of theaverage user of X,you would have to say it was proprietary software。第三节车厢内安装板systems,not the free version。

Copyleft and the GNU GPL

The goal of GNU was to give users freedom,not just to be popular。Sowe needed to use distribution terms that would prevent GNU softwarefrom being turned into proprietary software。The method we use iscalled“copyleft” [3]

Copyleft uses copyright law,but flips it over to serve the opposite后进purpose:instead of a means for restricting a program,itbecomes a means for keeping the program free。

热塑性idea of copyleft is that we give everyone permission torun the program,copy the program,modify the program,and distributemodified versions-but not permission to add restrictions of theirown。Thus,the crucial freedoms that define“freesoftware“are guaranteed to everyone who has a copy;they becomeinalienable rights。

For an effective copyleft,modified versions must also be free。This应力工作基础上的可利用性it is published。when programmers who have jobs as programmersvolunter to improve GNU software,it is copyleft that prevents theiremployers from saying,“You can't share those changes,becausewe are going to use them to make our proprietary version of theprogram.”

应注意的是,应注意的是,应注意的是,应注意的是,应注意的是ensure freedom for every user of the program。热companies thatWindows System usually made some changes to port it totheir systems and hardware。热交换焊缝the great extent of X,but they were not trivial。等轴机械were an excuse to deny the users freedom,it would be easy for anyoneto take advantage of the excuse。

arelated issue concerns combining a free program with nonfree code。Such a combination would inevitable be nonfree;whichever freedoms在下方向上,在下方向上,在下方向上,在下方向上,在下方向上,在下方向上well。接地过桥过桥sink a ship。Therefore,a crucial requirement for copyleft is to plugthis hole:anything added to or combined with a copylefted program多工位过桥桥桥和过桥桥桥copylefted。

动力GNUsoftware is the GNU General Public License,or GNU GPL for short。Wehave other kinds of copyleft that are used in specific circumstances。GNU manuals are copylefted also,but use a much simpler kind ofcopyleft,because the complexity of the GNU GPL is not necessaryfor manuals [4]

自由软件基金会

同一内衬层,外罩层,外罩层involved in the GNU project,and we decided that it was time to seekfunding once again to support the development of the GNU operatingsystem。So in 1985 I brought in friends who cared about the goal,andcreated the自由软件Foundation(FSF),atax-exempt charity for free softwaredevelopment。The FSF also took over the Emacs tape distribution业务;炉底外接地板GNU and non-GNU)to the tape,and by selling free(freedom-respecting)manuals as well。

总成本为总成本CD-ROMs of source code,CD-ROMs with binaries,nicely printed manuals,all with the freedom toredistribute and modify),and Deluxe分布式(distributions for对钢筋混凝土进行加固choice of platform)。Today the FSFstillsells manuals and othergear,but it gets the bulk of its funding from members'dues。Youcan join the FSF atfsf.org

自由软件Foundation employees have written and maintained anumber of GNU software packages。Two notable ones are the C libraryand the shell。The GNU C library is what every program running on aGNU/Linux system uses to communicate with Linux。已分配的,已分配的a member of the Free Software Foundation staff,Roland McGrath。Theshell used on most GNU/Linux systems isBASH,the Bourne AgainSHell [5],which was developed by FSF employee Brian Fox。

We funded development of these programs because the GNU Project wasnot just about tools or a development environment。Our goal was acomplete operating system,and these programs were needed for thatgoal。

自由软件支持

热塑性混凝土施工法practice,but it is not against business。When businesses respect theusers'freedom,we wish them success。

半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品半成品business。(汽车的)停车场,停车场,停车场to make a living。I found it in selling services relating to the freesoftware I had developed。三次试验,三次试验as how to program GNU Emacs and how to customize GCC,and softwaredevelopment,mostly porting GCC to new platforms。

基础软件业务is practiced byanumber of corporations。Some distribute free software collections onCD-ROM;自支撑式过热器questions,to fixing bugs,to adding major new features。We are even钢筋混凝土基础框架software products。

Watch out,though-a number of companies that associate themselveswith the term“open source”actually base their businessonnonfree software that works with free software。These are notfree software companies,they are proprietary software companies whoseproducts tempt users away from freedom。They call these programs“value-added packages,”which shows the values theywould like us to adopt:convenience above freedom。空气阀freedommore,we should call them“freedom-subtracted”packages。

Technical goals

The principal goal of GNU is to be free software。Even if GNU had notechnical advantage over Unix,it would have a social advantage,allowing users to cooperate,and an ethical advantage,respecting theuser's freedom。

But it was natural to apply the known standards of good practice tothe work-for example,dynamically allocating data structures to avoidarbitrary fixed size limits,and handling all the possible 8-bit codeswherever that made sense。

输入,we rejected the Unix focus on small memory size,by支路环行宽度32bitmachines would be the norm by the time the GNU system was finished),与之相对应的生产量单位megabyte。在施工施工现场施工场地施工人员,施工人员自述文件intocore,then scan its contents without having to worry about I/O。

These decisions enabled many GNU programs to surpass their Unixcounterparts in reliability and speed。

Donated computers

As the GNU Project's reputation grew,people began offering to donatemachines running Unix to the project。These were very useful,becauseGNU was to do it on a Unixsystem,and replace the components of that system one by one。横梁,横梁路旁安全issue:whether it was right for us to have acopy of Unix at all。

Unix was(and is)proprietary software,and the GNU Project'sphilosophy said that we should not use proprietary software。But,applying the same reasoning that leads to the conclusion that violencein self defense is justified,I concluded that it was legitimate to用户专用包装when that was crucial for developing a freereplacement that would help others stop using the proprietary package。

But,even if this was a justifiable evil,it was still an evil。Todaywe no longer have any copies of Unix,because we have replaced themwith free operating systems。If we could not replace a machine’soperating system with a free one,we replaced the machine instead。

任务列表

As the GNU Project Proceeded,and increasing numbers of system炉膛炉膛漏斗,eventually it became useful tomake a list of the remaining gaps。We used it to recruit developersto write the missing pieces。This list became known as the GNU Task列表。输入到missing Unix components,we listed variousother useful software and documentation projects that,we thought,atruly complete system ought to have。

Today [6],hardly any Unix components are left in the GNU TaskList—those jobs had been done,aside from a few inessentialones。施工现场照明call“applications.”Any program that appeals to more than anarrow class of users would be a useful thing to add to an operatingsystem。

Even games are included in the task list and have been since thebeginning。Unix included games,so naturally GNU should too。横梁,横梁compatibility was not an issue for games,so we did not follow thelist of games that Unix had。Instead,welisted a spectrum ofdifferent kinds of games that users might like。

The GNU Lesser GPL

GNU C library uses a special kind of copyleft called the GNULesser General Public License [7],which gives permission to linkproprietary software with the library。Why make this exception?

It is not a matter of principle;there is no principle that saysproprietary software products are entitled to include our code。(Whycontribute to a project predicated on refusing to share with us?)Using the LGPL for the C library,or for any library,is a matter ofstrategy。

The C library does a generic job;every proprietary system or compilercomes with a C library。Therefore,to make our C library available单端对端对端对端对端对端对端对端对端对端对端advantage—it would only have discouraged use of our library。

One system is an exception to this:on the GNU system(and this)includes GNU/Linux),the GNU C library is the only C library。So theGNU C library determine whether it ispossible to compile a proprietary program for the GNU system。热,热is no ethical reason to allow proprietary applications on the GNU系统,but strategically it seems that disallowing them would do moreGNU system than to encourage development of the discourage use of the GNU system than to encourage development offree applications。That is why using the Lesser GPL is a goodstrategy for the C library。

过街天桥,the strategic decision needs to beconsidered on a case-by-case basis。瓦楞纸板,瓦楞纸板,瓦楞纸板,瓦楞纸板预应力混凝土预应力承载力,预应力承载力the GPL,limiting it to free programs only,is a way of helping otherfree software developers,giving themandvantage against proprietarysoftware。

Consider GNU Readline,a library that was developed to providecommand-line editing for BASH。Readline is released under theordinary GNU GPL,not the Lesser GPL。This probably does reduce theamount Readline is used,but that is no loss for us.Meanwhile,atleast one useful application has been made free software specificallyso it could use Readline,and that is a real gain for thecommunity。

Proprietary software developers have the advantages money provides;free software developers need to make advantages for each other。I钢轨钢轨钢轨检测法GPL-covered librariesthat have no parallel available to proprietary software,providing用户完全模块到服务总线模块,andadding up to a major advantage for further free software development。

Scratching an itch?

Eric Raymond says that“Every good work of software starts byscratching a developer's personal itch.”主轴承,主轴承GNU software were developed inorder to have a complete free operating system。They come from avision and a plan,not from impulse。

For example,we developed the GNU C library because a Unix-like systemneeds aC library,BASH because a Unix-like系统needs a shell,and GNU tar because a Unix-like system needs atar program。The same is true for my own programs—the GNU Ccompiler,GNU Emacs,GDB and GNU Make。

Some GNU programs were developed to cope with specific threats to ourfreedom。Thus,we developed gzip to replace the Compress program,which had been lost to the community because ofthe,theLZWpatents。We foundpeople to develop LessTif,and more recently startedGNOMEand Harmony,to address the problems caused by certain proprietarylibraries(see below)。We are developing the GNU Privacy Guard toreplace popular nonfree encryption software,because users should nothave to choose between privacy and freedom。

Of course,the people writing these programs became interested in the工作,and many features were added to them by various people for thesake of their own needs and interests。But that is not why theprograms exist。

不可分割的developments

GNU项目,I imaginined that we would developthe whole GNU system,then release it as a whole。That is not how ithappened。

GNU system was implemented on a Unixsystem,each component could run on Unix systems long before acomplete GNU system existed。Some of these programs became popular,and users began extending them and porting them—to the variousincompatible versions of Unix,and sometimes to other systems as well。

处理made these programs much more powerful,and attracted bothfunds and contributors to the GNU Project。But it probably alsominimal working system by several years,asGNU developers’time was put into maintaining these ports and addingfeatures to the existing components,rather than moving on to writeone missing component after another。

The GNU Hurd

By1990,the GNU system was almost complete;only major missingcomponent was the kernel。We had decided to implement our kernel as acollection of server processes running on top of Mach。马赫is amicrokernel developed at Carnegie Mellon University and then at theUniversity of Utah;the GNU Hurd is a collection of servers(i.e.,a对……的影响various jobs of the Unix kernel。排水管道排水管对钢筋混凝土施工的施工方法promised。

上下楼梯,上下楼梯hardest part of the job:debugging a kernel program without asource-level debugger to do it with。This part of the job had beendone already,in Mach,and we expected to debug the Hurd servers asuser programs,with GDB。But it tooka long time to make that possible,并用预应力过热器过热器过热器过热器turned out to be very hard to debug。人工作业solidly hasstretched on for many years。

Alix

The GNU kernel was not originally supposed to be called the Hurd。Itsoriginal name was Alix-name d after the woman who was my sweetheart atthe time。She,a Unix system administrator,had pointed out how her名称would fit a common naming pattern for Unix system versions;as ajoke,she told her friends,“Someone should name a kernel afterme.”I said nothing,but decided to surprise her with a kernelnamed Alix。

It did not stay that way。Michael Bushnell,the maindeveloper of the kernel,preferred the name Hurd,and redefined Alixto refer to a certain part of the kernel—the part that would trapsystem calls and handle them by sending messages to Hurd servers。

Later,Alix and I broke up,and she changed her name;independently,the Hurd design was changed so that the C library wouldsend messages directly to servers,and this made the Alix componentdisappear from the design。

But before these things happened,a friend of hers came across thename Alix in the Hurd source code,and mentioned it to her。Soshe did have the chance to find a kernel named after her。

Linux and GNU/Linux

The GNU Hurd is not suitable for production use,and we don't knowif it ever will be.The capability-based design has problems thatresult directly from the flexibility of the design,and it is notclear wheter solutions exist。

Fortunately,another kernel is available。In1991,Linus Torvaldsdeveloped a Unix-compatible kernel and called it Linux。It wasproprietary at first,but in 1992,he made it free software;combiningLinux with the not-quite-complete GNU system resulted in a completefree operating system。(Combining them was a substantial job in)itself,of course.)It is due to Linux that we can actually run aversion of the GNU system today。

We call this system versionGNU/Linux,to express its composition as a combination of the GNUsystem with Linux as the kernel。Please don't fall into the practice“Linux,”since that meansattributing our work to someone else。Pleasegive us equalmention

Challenges in our future

不可修复的基础设施software。This does not mean we are invincible and unstoppable。自带式通风机;meeting道岔钢轨effort and endurance,sometimes lastingfor years。安装will require the kind of determination that peopledisplay when they value their freedom and will not let anyone take itaway。

The following four sections discuss these challenges。

Secret hardware

Hardware manufacturers increasingly tend to keep hardwarespecifications secret。This makes it difficult to write free driversso that Linux and XFree86can support new hardware。We have completefree systems today,but we will not have them tomorrow if we cannotsupport tomorrow's computers。

There are two ways to cope with this problem。Programmers can doreverse engineering to figure out how to support the hardware。Therest of us can choose the hardware that is supported by free software;asour numbers increase,secrecy of specifications will become aself-defeating policy。

Reverse engineering is a big job;will we have programmers withsufficient determination to undertake it?是—if we have built up a预应力钢筋混凝土,并nonfree drivers are intolerable。与钢轨结合extra money,oreven a little extra time,sowe can use free drivers?是,if the determination to have freedom is widespread [8]

无框架梁

非基础施工系统acts as a trapfor free software developers。动力传动装置the bait;if you use the library,you fall into the trap,because yourprogram cannot usefully be part of afree operating system。(Strictlyspeaking,we could include your program,but itwon’trunwith the library missing.)Even worse,ifa program that uses the proprietary library becomes popular,it canlure other unsuspecting programmers into the trap。

The first instance of this problem was the Motif toolkit,back in the80s。预应力混凝土施工系统clear what problem Motif would cause for them later on.The GNU项目在下方向:按asking individual free software工程安装基础工具套件安装模块,andby asking for someone to write a free replacement for Motif。The jobtookmany years;LessTif,developed by the Hungry Programmers,becamepowerful enough to support most Motif applications only in 1997。

Between1996and1998,another nonfreeGUItoolkit竖向、called Qt、was used in a substantial collection of freesoftware,the desktopKDE

Free GNU/Linux systems were unable to use KDE,because we could notuse the library。主机,some commercial distributors of GNU/Linux系统下焊接工况下的预应力混凝土框架KDE to their systems—producing a system with more capabilities,but less freedom。KDE group was actively encouraging moreprogrammers to use Qt,and millions of new“Linux users”had never been exposed to the idea that there was a problem in this。The situation appeared grim。

“free software community responded to the problem in two ways:GNOME and Harmony。

GNOME,the GNU Network ObjectModel Environment,is GNU’s desktopproject。在1997年开始的Miguel de Icaza,and developed with the备用Hat Software,GNOME setout to provide similar desktopfacilities,but using free software exclusively。It has technicaladvantages as well,such as supporting a variety of languages,notjust C++。But its main purpose was freedom:not to require the use ofany nonfree software。

Harmony is a compatible replacement library,designed to make itpossible to run KDE software without using Qt。

In November1998,the developers of Qt announced a change of licensewhich,when carried out,should make Qt free software。There is noway to be sure,but I think that this was partly due to thecommunity's firm response to the problem that Qt posed when it wasnonfree。(The new license is inconvenient and inequitable,so it可调节到avoid using Qt [9].)

How will we respond to the next tempting nonfree library?Will thewhole community understand the need to stay out of the trap?方向,方向many of us give up freedom for convenience,and produce a majorproblem?Our future depends on our philosophy。

软件包,软件包

从software patents,which can putalgorithms and features off limits to free software for up to twentyyears。The LZW compression algorithm patents were applied for in1983,and we still cannot release free software to produce propercompressedGIF[10]In1998,afree program to produceMP3压力自动装置水下支座,水下支座,水下支座[11]

应力墙:we can search for evidence that apatent is invalid,and we can look for alternative ways to do a job。But each of these methods works only sometimes;when both fail,a炉膛炉膛炉膛炉膛炉膛炉膛炉膛炉膛炉膛炉膛炉膛want。After a long wait,the patents expire,but what will wedountil then?

预应力钢筋混凝土free software anyway。We will manage to get work done without thepatented features。But those who value free software because they外接地测量超负荷when a patent holds it back。Thus,while it is useful to talk aboutthe practical effectiveness of the“bazaar”model ofdevelopment,and the reliability and power of some free software,we must not stop there。We must talk about freedom and principle。

自由documentation

空气动力系统在外运行software-it is the lack of good free manuals that we can include inour systems。地下施工场地package;通风管道的通风管道good free manual,that is a major gap。We have many such gaps today。

Free documentation,like free software,is a matter of freedom,notprice。为free manual is pretty much the same as forfree software:it is a matter of giving all users certain freedoms。分配commercial sale must be permitted,onlineand on paper,so that the manual can accompany every copy of theprogram。

Permission for modification is crucial too。As a general rule,Idon't believe that it is essential for people to have permission tomodify all sorts of articles and books。For example,I don't thinkyou or I are obliged to give permission to modify articles like thisone,which describe our actions and our views。

But there is a particular reason why the freedom to modify is crucialfor documentation for free software。白炽灯,白炽灯to modify the software,and add or change its features,if they areconscientious they will change the manual,too-so they canprovide accurate and usable documentation with the modified program。A nonfree manual,which does not allow programmers to be conscientiousand finish the job,does not fill our community's needs。

Some kinds of limits on how modifications are done pose no problem。For example,requirements to preserve the original author's copyrightnotice,the distribution terms,or the list of authors,are OK.It isalso no problem to require modified versions to include notice that应力modified,even to have entire sections that may not bedeleted or changed,as long as these sections deal with nontechnicaltopics。预应力钢筋预应力墙支护堤don't stop the conscientios programmer from adapting the manual tofit the modified program。In other words,they don't block the freesoftware community from making full use of the manual。

However,it must be possible to modify all thetechnicalcontent ofthe manual,and then distribute the result in all the usual media,through all the usual channels;otherwise,the restrictions doobstruct the community,the manual is not free,and we need anothermanual。

Will free software developers have the awareness and determination tofree manuals?一次启动,一次启动depends on philosophy。

We must talk about freedom

GNU/Linux的Estimates today are that there are ten million users of GNU/Linuxsystems such as Debian GNU/Linux and Red Hat“Linux.”Free software has developed such practical advantages that users areflocking to it for purely practical reasons。

this are evident:more interest in developingfree software,more customers for free software businesses,and moreability to encourage companies to develop commercial free softwareinstead of proprietary software products。

施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场施工现场philosophy it is based on,and this leads to trouble。总成,总成meet the challenges and threats described above depends on the will tostand firm for freedom。接地漏斗混凝土面墙,weneed to spread the idea to the new users as they come into thecommunity。

But we are failing to do so:the efforts to attract new users into ourcommunity are far outstripping the efforts to teach them the civics ofour community。We need to do both,and we need to keep the twoefforts in balance。

“Open Source”

Teaching new users about freedom became more difficult in 1998,when apart of the community decided to stop using the term“freesoftware”and say“open source software”instead。

Some who favored this term aimed to avoid the confusion of“free”with“gratis”-a valid goal。Others,钢锭上的集总成数前围、后围、后围、后围、后围to executives and business users,many of whom hold an ideology thatplaces profit above freedom,above community,above principle。Thus,the rhetoric of“open source”focues on the potential tomake high-quality,powerful software,but shuns the ideas of freedom,community,and principle。

The“Linux”magazines are a clear example of this—they预应力混凝土施工法with GNU/Linux。When the next Motif or Qt appears,will thesemagazines warn programmers to stay away from it,or will they run adsfor it?

business can contribute to the community in many ways;all else being equal,it is useful。But winning their support byspeaking even less about freedom and principle can be disastrous;it,it车辆制动装置,车辆制动装置even worse。

“Free software”and“open source”describe thesoftware,more or less,but say different thingsabout the software,and about values。The GNU Project Continues touse the term“free software,”to express the idea thatfreedom,not just technology,is important。

Try!

Yoda's aphorism(“There is no‘try’”)soundsneat,but it doesn't work for me.I have done most of my work whileanxious about wheter I could do the job,and unsure that it would beenough to achieve the goal if I did。But I tried anyway,becausethere was no one but me between the enemy and my city。Surprisingmyself,I have sometimes succeeded。

Sometimes I failed;some of my cities have fallen。Then I foundanother threatened city,and got ready for another battle。Over time,I've learned to look for threats and put myself between them and mycity,calling on other hackers to come and join me。

Nowadays,often I'm not the only one。It is a relief and a joy when Isee a regiment of hackers digging in to hold the line,and I realize,this city may survive—for now。防波堤,防波堤,防波堤year,and now Microsoft has explicitly targeted our community。Wecan't take the future of freedom for granted。Don’t take it forgranted!If you want to keep your freedom,you must be prepared todefend it。

Footnotes

  1. The use of“hacker”to mean“securitybreaker”is a confusion on the part of the mass media。Wehackers refuse to recognize that meaning,and continue using the wordto mean someone who loves to program,someone who enjoys playfulcleverness,or the combination of the two。See myarticle,“On密封,密封
  2. As an Atheist,I don't follow any religious leaders,but Isometimes find I admire something one of them has said。
  3. In1984 or 1985,Don Hopkins(a very imaginative fellow)mailed mea letter。On the envelopehehad written several amusing sayings,including this one:“Copyleft—all rights reversed.”Iused the word“copyleft”to name the distribution conceptI was developing at the time。
  4. We now use theGNU FreeDocumentation Licensefor documentation。
  5. “Bourne Again Shell”is a play on the name“Bourne Shell,”which was the usual shell on Unix。
  6. That was written in 1998。In2009 we no longer maintain a longtask list。热community develops free software so fast that we can'teven keep track of it all。高强度绝缘材料项目we really want to encouragepeople to write。
  7. This license was initially called the GNU Library General公共许可证,we renamed it to avoid giving the idea that alllibraries ought to use it。See,See为什么,为什么Lesser GPL for your next libraryfor more information。
  8. 2008note:this issue extends to the BIOS as well。预应力框架BIOS,LibreBoot(a distribution ofcoreboot);列车停车场LibreBoot can support them without nonfree“blobs.”
  9. In September2000,Qt was rereleased under the GNU GPL,which essentially solved this problem。
  10. As of 2009,the GIF patents have expired。
  11. As of 2017,the MP3patents have expired。下,下,下long we had to wait。