Читаем Free Software, Free Society: selected essays of Richard M. Stallman. 2nd edition. полностью

We believe you should decide what to do with the software you use; however, that is not what today’s law says. Current copyright law places us in the position of power over users of our code, whether we like it or not. The ethical response to this situation is to proclaim freedom for each user, just as the Bill of Rights was supposed to exercise government power by guaranteeing each citizen’s freedoms. That is what the GNU General Public License is for: it puts you in control of your usage of the software while protecting you from others who would like to take control of your decisions.

As more and more users realize that code is law, and come to feel that they too deserve freedom, they will see the importance of the freedoms we stand for, just as more and more users have come to appreciate the practical value of the free software we have developed.


Copyright c 2001, 2009 Bradley M. Kuhn and Richard Stallman

This essay was originally published on http://gnu.org, in 2001. This version is part of Free Software, Free Society: Selected Essays of Richard M. Stallman, 2nd ed. (Boston: GNU Press, 2010).


Verbatim copying and distribution of this entire chapter are permitted worldwide, without royalty, in any medium, provided this notice is preserved.

Appendix A: A Note on Software

Written by Richard E. Buckman and Joshua Gay.

This section is intended for people who have little or no knowledge of the technical aspects of computer science. It is not necessary to read this section to understand the essays and speeches presented in this book; however, it may be helpful to those readers not familiar with some of the jargon that comes with programming and computer science.

A computer programmer writes software, or computer programs. A program is more or less a recipe with commands to tell the computer what to do in order to carry out certain tasks. You are more than likely familiar with many different programs: your Web browser, your word processor, your email client, and the like.

A program usually starts out as source code. This higher-level set of commands is written in a programming language such as C or Java. After that, a tool known as a compiler translates this to a lower-level language known as assembly language. Another tool known as an assembler breaks the assembly code down to the final stage of machine language—the lowest level—which the computer understands natively.

For example, consider the “hello world” program, a common first program for people learning C, which (when compiled and executed) prints “Hello World!” on the screen.[1]

int main(){ printf("Hello World!"); return 0; }

In the Java programming language the same program would be written like this:

public class hello { public static void main(String args[]) { System.out.println("Hello World!"); } }

However, in machine language, a small section of it may look similar to this:

1100011110111010100101001001001010101110 0110101010011000001111001011010101111101 0100111111111110010110110000000010100100 0100100001100101011011000110110001101111 0010000001010111011011110111001001101100 0110010000100001010000100110111101101111

The above form of machine language is the most basic representation known as binary. All data in computers is made up of a series of 0-or-1 values, but a person would have much difficulty understanding the data. To make a simple change to the binary, one would have to have an intimate knowledge of how a particular computer interprets the machine language. This could be feasible for small programs like the above examples, but any interesting program would involve an exhausting effort to make simple changes.

As an example, imagine that we wanted to make a change to our “Hello World” program written in C so that instead of printing “Hello World” in English it prints it in French. The change would be simple; here is the new program:

int main() { printf("Bonjour, monde!"); return 0; }
Перейти на страницу:

Похожие книги

Африканский дневник
Африканский дневник

«Цель этой книги дать несколько картинок из жизни и быта огромного африканского континента, которого жизнь я подслушивал из всего двух-трех пунктов; и, как мне кажется, – все же подслушал я кое-что. Пребывание в тихой арабской деревне, в Радесе мне было огромнейшим откровением, расширяющим горизонты; отсюда я мысленно путешествовал в недра Африки, в глубь столетий, слагавших ее современную жизнь; эту жизнь мы уже чувствуем, тысячи нитей связуют нас с Африкой. Будучи в 1911 году с женою в Тунисии и Египте, все время мы посвящали уразуменью картин, встававших перед нами; и, собственно говоря, эта книга не может быть названа «Путевыми заметками». Это – скорее «Африканский дневник». Вместе с тем эта книга естественно связана с другой моей книгою, изданной в России под названием «Офейра» и изданной в Берлине под названием «Путевые заметки». И тем не менее эта книга самостоятельна: тему «Африка» берет она шире, нежели «Путевые заметки». Как таковую самостоятельную книгу я предлагаю ее вниманию читателя…»

Андрей Белый , Николай Степанович Гумилев

Публицистика / Классическая проза ХX века