brunch

You can make anything
by writing

C.S.Lewis

by 고코더 Mar 10. 2022

그냥~ 재미로 만든, 리눅스(Linux)

재미로 만든 1만행짜리 소스코드, 리눅스

* 책으로 출간되었습니다.

해당 브런치에 남김 글은 초고입니다. 완성된 작품은 해당 "오늘부터 IT를 시작합니다."로 출간하였습니다!!

구매하여서 완성된 글을 종이책의 정감과 편안함으로 읽어보시길 바랍니다^^ 

감사합니다.!!

http://www.yes24.com/Product/Goods/111417594



오베이(OBEY)



기괴한 아저씨 얼굴의 '복종하라(OBEY)' 메시지가 담긴 스티커가 미국 캘리포니아의 뿌려지기 시작합니다. 이런 만행을 시작한 그 주인공은 바로 '셰퍼드 페어리(Shepard Fairey)'입니다. 그는 1989년 단순한 호기심이 생겨납니다. '끊임없이 반복된 하나의 이미지는 어떤 힘을 가질까?' 결국 그는 레슬러 '안드레 더 자이언트'의 얼굴을 스텐실 형식 얼굴을 스티커로 제작해 길거리 곳곳에 붙이고 다니기 시작합니다. 그런데 효과는 놀라왔습니다. 처음에는 스케이트 보더들에게 유명해졌고, 점점 퍼져 지금은 전 세계로 확장되어 2001년에 본격적인 오베이(OBEY)라는 브랜드가 탄생하게 됩니다. 


그런데 왜 이런 일을 했을까요? 이 해프닝을 벌인 셰퍼드는 페어리는 레슬러의 얼굴을 스티커로 만든 이유를 이렇게 밝힙니다. "신문에서 우연히 본 안드레 자이언트의 얼굴이 단순히 재밌어서 시작하였습니다." 그저 재미로 시작한 일이라고 합니다. 스트릿 브랜드로 유명하고 충성도 높은 고객을 대거 거느리고 있는 이 브랜드의 시작은 그저 단순히 '재미로' 시작되었습니다. 그런데 IT에서도 이렇게 단순한 재미에서부터 시작하여 우리의 일상에서 꼭 필요한 운영체제가 있습니다. 그것은 바로 리눅스 입니다. 



외할아버지의 유산 코딩 


"사랑하는 리누스야 이렇게 키보드를 누르면 코드가 입력된단다"


따뜻한 외할아버지의 음성은 '리누스 토르발스 (Linus Torvalds)'는 어릴 적부터 코딩을 시작할 수 있었습니다. 헬싱키 대학 통계학과 교수였던 외할아버지는 전자계산기에 불만이 많았습니다. 1981년 신형 컴퓨터 '코모도어 VIC20' 모델을 서재에 들여놓으면서 리누스의 인생은 급격한 변화를 맞습니다. 핀란드는 9월부터 4월까지 8개월에 이르는 겨울이 시작됩니다. 때문에 집 안에서 할 수 있는 놀이를 찾아야 했고. 리눅스가 찾은 놀이는 바로 프로그래밍이었습니다. 호기심 많은 10대 소년에게 코딩은 특별한 재미를 주는 놀이가 되었습니다. 그리고 몇 년 후 외할아버지가 세상을 떠나면서 이 컴퓨터는 자연스럽게 그의 것이 됩니다.


고등학생이 된 리누스는 할아버지의 유산 코모도어 컴퓨터보다 더 성능이 좋은 컴퓨터가 필요하게 됩니다. 가정 형편이 좋지 않은 리누스는 수학 천재 장학금과 일가친척들에게 받은 용돈을 모아 컴퓨터를 사게 됩니다. 드디어 1987년 '싱클레어 QL'을 구매하게 되었고, 32비트에 멀티태스킹을 지원하는 CPU가 장착된 컴퓨터였습니다. 이때부터 리누스는 폐인에 가까운 생활을 하게 됩니다. 책상과 침대의 거리는 겨우 60cm 일어나 코딩하고, 먹고, 자고 코딩만 하는 생활을 반복하게 됩니다. 리누스는 상용 게임을 모방한 유사 게임을 어셈블리어로 만드는 작업을 주로 했습니다.  



재미로 만든 1만행짜리 소스코드, 리눅스의 탄생



대학에 입학하고 군대를 제대한 리누스는 1991년 은행에서 빌린 학자금과 크리스마스 용돈을 모아 386 컴퓨터를 구매합니다. 그리고 운영체제를 미닉스(Minix)라는 교육용 유닉스를 인스톨합니다. 네덜란드의 교수 앤드류 타넨바움이 개발한 미닉스 주로 교육용으로 활용되었는데, 불만스러운 터미널 에뮬레이션 부문을 독자적으로 개발할 것을 결심합니다. 이를 계기로 그는 미닉스를 참고한 새로운 운영체제를 개발, 1991년 8월에 이를 자신이 활동하던 유즈넷의 뉴스 그룹 네트워크에 처음 공개했고, 리눅스의 역사가 시작된 순간이었습니다. 


리누스 토발즈가 처음 공개한 첫 번째 버전(0.01) 리눅스 커널은 약 1만행 정도의 소스 코드로 구성되어 있었습니다. 하지만 흥미를 느낀 개발자들이 모여 이 프로젝트에 힘을 보태기 시작했고 1년 만에 0.96 버전이 탄생했고 4만행 정도로 규모가 커지게 되었습니다. 1994년 3월, 마침내 첫 번째 완성 버전인 리눅스 커널 1.0.0이 공개되었습니다. 그렇게 탄생한 리눅스의 개발 동기는 리누스는 자신의 자서전에서 이렇게 밝힙니다. 


"Just for fun(그냥 재미로)"



배부른 펭귄


리눅스 마스코트는 바로 이 펭귄 '턱스'입니다. 1996년에 탄생한 펭귄에 들어간 로고는 리누스 토발즈의 의견을 반영해 '래리 유잉'이라는 사람이 디자인했다고 전해집니다. 그가 요청한 로고의 요청사항은 이렇습니다. "맛있는 청어를 배불리 먹고 방금 트림을 한 살찐 펭귄이어야 할 것. 배가 너무 불러서 일어나지 못하고 앉아 있는 사랑스러운 펭귄이어야 할 것" 리누스는 유닉스 모임에서 리눅스에 대해 말하려 가던 중에 엄청나게 작은 푸른펭귄한테 물리게 되었고, 그 일로 인해 토르발스가 펭귄을 좋아하게 되고 리눅스의 로고로 떠올리게 되었다고 합니다. 



리눅스? 일반인은 사용할 일 있을까?

일론 머스크의 SpaceX는 NASA의 우주 비행사를 태운 최초의 유인 우주선을 '국제 우주 정거장(ISS, International Space Station)'으로 쏘아 올렸습니다. SpaceX의 Falcon 9는 Linux 운영 체제에 의해 구동됩니다. 그리고 국제 우주 정거장의 존재하는 140대의 노트북의 운영체제도 윈도 XP  에서 리눅스 기반 데비안 시스템(Debian 6) 변경되었습니다. 우리 머리 위에 떠 있는 인간이 쏘아 올린 가능 큰 구조물도 리눅스를 사용 중입니다.


우주에 있는 리눅스는 조금 와닿지 않는다고요. 그럼 이제 주머니에서 스마트폰을 꺼내봅니다. 제가 사용하는 핸드폰은 삼성 갤럭시입니다. 운영체제는 구글의 안드로이드(Android)입니다. 리눅스 커널을 기반으로 만든 가장 많이 사용하는 스마트폰 속 운영체제입니다. 물론 화면의 구성요소를 표시하는 프로그램은 차이가 있지만 안드로이드는 리눅스의 밑바탕을 둔 스마트폰 환경입니다. 우린 안드로이드로 구성된 스마트폰으로 매일 메시지를 보내고 있었습니다. 리눅스는 이미 일상생활에 저 깊숙하게 들어와 있습니다. 그것도 바로 손위에서 말이죠. 



리눅스 서버를 쓰는 이유


리눅스가 가장 많이 활용되는 분야는 역서 '서버(server)'입니다. 제가 현재 근무했던 모든 회사의 서버는 전부 리눅스였습니다. 그렇다면 왜 그렇게 서버에서는 유독 리눅스가 선택받는 것일까요? 


첫 번째 이유는 바로 '가격'입니다. 유료 정책을 하고 있는 마이크로 소프트사의 윈도 서버와 비교하면 비용이 들지 않는다는 장점은 어느 개발회사도 싫어할 일 없는 이유입니다. 만약 100대의 서버를 운영한다면 리눅스를 사용할 시에 OS 가격은 무료이지만, 타 유료 OS를 설치해야 한다면 매우 비싼 금전적 대가를 치러야 합니다. 역시 공짜가 최고입니다. 


두 번째 이유는 '보안'입니다. 리눅스는 오픈소스 이기 때문에 많은 사람들 손에 소스코드가 공유되었고 이를 계속해서 수정해왔습니다. 예를 들면 MS사의 서버는 소스코드를 공개하지 않기 때문에 회사 내에서 패치를 하지 않는 이상 안전을 보장받을 수 없지만 리눅스의 소스는 누구나 접근하여서 보안 패치를 만들 수 있기 때문에 이를 반복적으로 이루어져서 견고한 소프트웨어로 발전하였습니다. 


세 번째 이유는 '개발 친화적'입니다. 엔지니어들이 실무에서 리눅스를 사용하는 이유를 들어보면 리눅스의 기본 터미널 기능이 매우 우수하고 모든 환경을 원하는 데로 수정할 수 있기 때문입니다. 예를 들면 필요한 프로그램을 설치할 때 간단하게 명령어를 입력하려 실행하고 윈도 서버처럼 사이트를 방문하여 다운로드하고 복잡한 절차를 거치지 않아도 되는 장점이 있습니다. 이런 특징 덕분에 엔지니어들은 리눅스 서버를 관리하는데 안정적인 느낌을 받습니다. 

 


그럼 지금 당장 리눅스를  배워야 할까요?


백엔드 시스템의 운영체제의 대부분은 리눅스입니다. 만약 백엔드 개발자가 되고 싶다면 검은 화면에 명령어만 입력해야 하는 리눅스를 먼저 배워야 할까요? 다행히 그건 아닙니다. 백엔드가 실행되는 서버의 운영체제가 리눅스라고 할지라도 개발자의 PC는 리눅스가 아니어도 상관이 없습니다. 윈도, 맥에서 개발을 진행하고 배포를 리눅스에서 하기 때문입니다. 예를 들면 자바를 개발한다면 컴파일된 war 파일만 서버에 배포하면 될 일입니다. 


이 글을 읽고 리누스 토발즈가 만든 리눅스를 체험하고 싶어서 개인 컴퓨터에 리눅스를 깔고 싶은 마음이 생겨 데스크톱 운영체제로도 사용할 수도 있지만 그렇게 권장하는 방법은 아닙니다. 익숙한 운영체제에 환경에서 충분히 개발하고 서버 작업을 위해서 리눅스에 접속해 원하는 명령어를 입력할 수 있다면 충분합니다. 물론 서버 운영을 하는 엔지니어라면 좀 더 자세히 알아야 할 것입니다.



인류 역사상 최대의 '공조 프로젝트'


핀란드의 대학생, 리누스 토발즈라는 한 사람의 힘으로 컴퓨터 운영체제를 위한 코드를 만들었습니다. 그리고 그 코드를 공개하여 다른 개발자들에게 자신이 만든 리눅스 코드 개선에 참여해줄 것을 요청했습니다. 리누스 토발즈는 리눅스를 만든 위대한 개발자라는 이름과 오픈 소스 소프트웨어 운동의 핵심 인물로 떠올랐습니다. 그리고 리눅스는 지금도 끊임없이 수많은 개발자들의 손을 거쳐가며 발전하는 인류 역사상 최대의 '공조 프로젝트'가 되었습니다. 



외할아버지 무릎 위에서 그저 재미로 시작한
 코딩 한 줄은 현재 현재 지금도 발전하고 있습니다. 






* 참조자료

- <리눅스 그냥 재미로>, 리누스 토발즈 



        

매거진의 이전글 프로그래밍 언어들의 공용어? JSON
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari