http://wiki.commres.org/wiki.php/FreeSoftware?action=show&redirect=freesoftware
I saw that the world, the social system that encouraged people to cooperate was being replaced by one in which cooperation was called piracy, and I decided that all I could possibly get by participating in that was money, and that just money was not enough to live for. I had to aim for something more important than that. – From An interview with Stallman, David Bennahum. See http://memex.org/meme2-04.html
Free Software
70년대가 지나면서 80년대로 들어서자 컴퓨터가 점차 개인이 사용할 수 있는 환경이 되었다. 비록 현재처럼 일반인들이 일반적인 목적에서 컴퓨터를 사용하는 사회적 분위기는 아니었지만, 사용자 층이 늘어나면서 그 들 사이에서 독특한 문화가 존재하였다. 특히 이 문화는 인터넷의 Usenet, newsgroup을 통해서 확산되었다. 사용하고 있는 컴퓨터의 운영체제에서 제대로 돌아가는 프린터 드라이버가 문제가 생기면 자신이 개선하거나 새로 만들거나 할 수 있는 사용자들이 생기고 이런 프로그램들은 자연스럽게 서로에게 공유되는 분위기였다.
이런 분위기는 맑스가 이야기했던 것처럼 마치 자본주의가 개화하기 전의 사람들의 노동은 곧 자신의 생활과 같은 분위기였다. 컴퓨터 사용자들은 주로 대학교나 상업적인 회사의 연구원으로 연구생활을 하면서 부가적으로 혹은 필요에 의해서 소프트웨어를 만든다는 생각이 강하였다. 앞서 인터넷 역사에서 언급되었던 인물들에게 연구업적이란 “경제적인 성공”와 연결되는 것이 아닌, 원하는 테크놀로지의 구현과 실현, 그리고 완성되어 가는 기술에 동참하여 더 나은 기술을 만들어가는데 만족감을 느끼는 것과 같았다고 묘사하면 크게 틀린 것이 아니듯이 컴퓨터 사용자들은 초기에 자신들이 과학세계의 (scientific worlds) 일부이며, 자신들이 이루어 놓은 업적이 선행된 업적에 또 다른 하나를 더하는 가치있는 작업이라는 만족하는 경향이 있었다1). 즉, 소프트웨어는 곧 돈을 버는 수단이라는 생각은 극히 제한적이었다. 예를 들면, 초기의 Bell labs2)에서 개발된 Unix 운영체제는 초기에 비용이 지불되지 않는 상품이었다 3).
IBM4)이 bios를 공개하고, 이로써 IBM과 같은 기능을 하는 컴퓨터들이 확산되면서 5) 컴퓨터에 Personal이라는 단어가 붙기 시작할 무렵 이와 같은 생각이 소수화되기 시작하였다. IBM pc에 탑재되기 시작했던 Operating System인 Microsoft Dos의 확산과 이와 관련되니 프로그램의 개발이 상업적인 성공을 거두게 될 무렵 (WordPerfect를 기억하는가) 에는 이 경향이 심화되었다. 경영과 이익을 추구하는 프로그래머가 생기는 반면에, 자신을 과학자로 생각하는 프로그래머들이 생기게 되었다. 역사상 최고의 성공을 거둔 개인으로 평가되는 Bill Gates는, 1976년 2월 3일자로 해커들에게 보내진 그의 편지를 통해 두 그룹의 – 따라서 소프트웨어를 보는 철학의 분리를 선언하는 상징적인 인물로 평가된다. 이렇게 공유(sharing)하는 행위와 절도(stealing)하는 행위의 경계가 애매해지면서 소프트웨어는 이제 한 때 노동이 상품화되었던 것처럼 상품화(commodity)가 되어 간다 6). 아니, 보다 정확하게 이야기 하자면, 소프트웨어를 위한 노동이 연구와 생활의 일부였던 것이 점차 상품화 됨으로써 소프트웨어가 프로그래머로부터 타자화 (alienation) 되어 버린다 (<그림, Open Letter to Hobbyists> 참조).
1983년 MIT의 Stallman은 7) 8) 자신이 작성했던 프로그램 중 Symbolics사가 고친 부분은 살펴 볼 수 없다는 것, 그리고, Symbolics사가 자신과 주변의 소위 “hacker”라고 불리는 자유스러운 정신을 가진 프로그래머들에게 상업적인 굴레를 씌우는 것에 반대를 하면서 GNU manifesto를 (GNU 강령) 만든다. 이 강령은 소프트웨어는 “굴레로부터 자유롭게 사용되어야 한다9)는 뜻을 담고 있으며, copyright라는 상업적인 굴레가 좀 더 나은, 사회에 도움이 되는 software를 제작하거나 사용하는 환경을 (오히려) 해치고 있음을 주장한다. 그는 초안으로 작성된 GNU manifesto 10)를 더 가다듬어 GNU General Public License 를 만들고 free software를 위한 GNU project를 진행하는 한편, Free Software Foundation을 비영리단체로 설립한다.
In 1971 when I joined the staff of the MIT Artificial Intelligence lab, all of us who helped develop the operating system software, we called ourselves hackers. We were not breaking any laws, at least not in doing the hacking we were paid to do. We were developing software and we were having fun. Hacking refers to the spirit of fun in which we were developing software. The hacker ethic refers to the feelings of right and wrong, to the ethical ideas this community of people had -- that knowledge should be shared with other people who can benefit from it, and that important resources should be utilized rather than wasted. Back in those days computers were quite scarce, and one thing about our computer was it would execute about a third-of-a-million instructions every second, and it would do so whether there was any need to do so or not. If no one used these instructions, they would be wasted. So to have an administrator say, "well you people can use a computer and all the rest of you can't," means that if none of those officially authorized people wanted to use the machine that second, it would go to waste. For many hours every morning it would mostly go to waste. So we decided that was a shame. Anyone should be able to use it who could make use of it, rather than just throwing it away. In general we did not tolerate bureaucratic obstructionism. We felt, "this computer is here, it was bought by the public, it is here to advance human knowledge and do whatever is constructive and useful." So we felt it was better to let anyone at all use it -- to learn about programming, or do any other kind of work other than commercial activity. -- Stallman 인터뷰 at http://memex.org/meme2-04.html
이 정신을 기반으로 만들어지고, 세계의 프로그래머들이 동참하여 완성된 대표적인 소프트웨어가 “Linux”이다. 핀란드의 컴퓨터 사이언스 학부의 대학생이던 Linus Torvalds는 자신이 새로 구입한 PC의 운영체제가 만족스럽지 않아 새로운 OS를 구입하였는데 이것이 Minix였다. 그는 후에 모듈형 철학을 가지고 개발된 Minix의 단점으로 생각하고 모듈형을 피한 OS인 Linux를 제안하게 되는데, 이것이 Usenet에서 flaming을 부르게 된다. 11), 이를 보완하고자 학부시절 중 몰입하여 만들던 프로그램의 소스를 Usenet과 ftp를 사용하여 다른 소프트웨어 프로그래머들에게 소개한 것이 시작이었다. 이렇게 소개된 Linux라는 OS는 곧 세상의 프로그래머들이 동참하는 프로젝트가 되었으며, 현재 Linux에서 그가 작업한 량은 약 2%에 달한다고 한다. 이 2%는 작은 듯 하지만, 프로젝트에 동참한 프로그래머의 숫자를 생각해보면 그 누구보다다 많은 기여를 한 인물이다 12).
Linus Benedict Torvalds Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. -- August 26, 1991
위 인용문의 원문소스
Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all- nighters to get a nifty program working? Then this post might be just for you :-) As I mentioned a month(?) ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it. Sources for this pet project of mine can be found at nic.funet.fi (128.214.6.100) in the directory /pub/OS/Linux. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile "as-is" and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu. ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled (and gcc-1.40, possibly 1.37.1, haven't tested), and you need minix to set it up if you want to run it, so it is not yet a standalone system for those of you without minix. I'm working on it. You also need to be something of a hacker to set it up (?), so for those hoping for an alternative to minix-386, please ignore me. It is currently meant for hackers interested in operating systems and 386's with access to minix. The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If you are still interested, please ftp the README/RELNOTES, and/or mail me for additional info. I can (well, almost) hear you asking yourselves "why?". Hurd will be out in a year (or two, or next month, who knows), and I've already got minix. This is a program for hackers by a hacker. I've enjouyed doing it, and somebody might enjoy looking at it and even modifying it for their own needs. It is still small enough to understand, use and modify, and I'm looking forward to any comments you might have. I'm also interested in hearing from anybody who has written any of the utilities/library functions for minix. If your efforts are freely distributable (under copyright or even public domain), I'd like to hear from you, so I can add them to the system. I'm using Earl Chews estdio right now (thanks for a nice and working system Earl), and similar works will be very wellcome. Your (C)'s will of course be left intact. Drop me a line if you are willing to let me use your code. Linus PS. to PHIL NELSON! I'm unable to get through to you, and keep getting "forward error - strawberry unknown domain" or something. -- Oct 6, 1991
위 인용문의 원문소스
Linux 외에 GPL에 참여하여 만들어진, 그리고 널리 사용되는 소프트웨어를 들어보면:
- Operating systems: BSD; Darwin; !OpenSolaris
- Compiler: GCC compilers; GDB debugger; C libraries
- Relatonal database management systems: !MySQL; !PostgreSQL
- 서버: BIND name server; Sendmail mail transport; Apache web server; Samba file server.
- 오피스 형 어플리케이션: !OpenOffice
- 웹브라우저: Mozilla; Firefox
- Graphic: GIMP 그래픽에디터
- 출판 (typesetting): TEX, !LaTex
- R project
등등이 있다13). 이 글이 쓰여진 위키 또한 Moniwiki 또한 GNU General Public License (GPL)에 의거하여 만들어지고 배포된 프로그램이며, 이 시스템에는 LaTex와 gnuplot이라는 프로그램이 엠베디드되어 있어 수학공식과 그래프를 표현할 수 있도록 되어 있다. 이런 프로그램들은 사소한 것처럼 보이지만 도처의 프로그래머들이 자신의 필요에 의해서 (수식을 쓸 수 있는 환경, 그 수식에 의거한 그래프를 표현할 수 있는 환경) 직접 만들고 공공에 던진 산물이다.
$ \int_0^{2\pi}\sin\ x\ dx $
$ \Large A\ =\ \large\left( \begin{array}{c|ccc},1,2,3\\\hline1,a_{11},a_{12},a_{13}\\ 2,a_{21},a_{22},a_{23}\\3,a_{31},a_{32},a_{33}\end{array}\right) $
위의 공식은 웹페이지를 통해서 보면 그래픽파일처럼 보이지만 사실은 아래와 같은 내용을 직접 이 위키에 적어 넣은 것이다.
$ \int_0^{2\pi}\sin\ x\ dx $ $ \Large\overbrace{a,...,a}^{\text{k a^,s}}, \underbrace{b,...,b}_{\text{ l b^,s } }\hspace{10} \normalsize\underbrace{\overbrace{a...a}^{\text{k a^,s}}, \overbrace{b...b}^{\text{l b^,s } } }_{\text{k+l elements} } $ $ \Large A\ =\ \large\left( \begin{array}{c|ccc},1,2,3\\\hline1,a_{11},a_{12},a_{13}\\ 2,a_{21},a_{22},a_{23}\\3,a_{31},a_{32},a_{33}\end{array}\right) $ . . . .