Undergoing

[LINUX/UNIX] 왜 리눅스를 배워야 하는가 본문

~2012.05.01 Legacy

[LINUX/UNIX] 왜 리눅스를 배워야 하는가

Halkrine 2009. 10. 4. 17:08
쪼레벨의 프로그래밍 능력 + 학부생에 불과한 나에게는 언제나 이런 의문이 들었다.

'리눅스 유닉스 배워서 써먹을 곳이 있을까?'
'리눅스와 시스템 프로그래밍은 무슨 상관이 있을까?'

이 질문 자체로 나의 프로그래밍에 대한 무지가 완벽히 드러났다.


우리 나라는 MS의 입김이 강하게 작용하여 거의 대부분의 개인/기관이 MS 소프트웨어를 많이 사용한다. 윈도우나 도스는 알지만 유닉스 기반의 프로그램 등 일반인들이 다른 OS에 대해서 아는 사람은 생각보다 많지 않다. 그리고 우리 나라 웹 기반이 익스플로러에 최적화되어 있기 때문에 파이어폭스같은 다른 웹브라우저로 국내 사이트를 서핑하면 호환성이 안맞아서 불편한 곳이 한두 군데가 아니다(특히 은행 사이트).

윈도우, MS측에서 개발하는 소프트웨어들은 대부분 클로즈드 소스이기 때문에(소스 코드가 공개되지만 오픈 소스는 아니다). 일반인이 마음대로 변조할 수 없다. 따라서 프로그램의 질을 향상시키려면 항상 MS의 최신 업데이트 내역을 확인해야 하며, 변경 내용도 MS 표준을 따라야 한다.

이와 달리 리눅스는 완전 오픈 소스이다. 리눅스 배포판의 한 종류인 우분투는 진정한 다중 사용자, 다중 처리 시스템의 표본이며, 여러 프로그래머가 자신만의 소스 코드를 공개하여 프로그램 성능 향상에 기여한다. 그로 인해 집단 안에서 기밀을 유지하는 윈도우보다는 우분투나 레드햇이 업데이트 속도가 빠르고 프로그램 관리도 유동적이며, 다양한 배포판이 존재하여 사용자 입맛에 맞게 사용할 수 있다(9.04 버전을 기준으로 15기가를 설치하는 데에 15분도 걸리지 않고, 부팅 속도나 처리 속도가 윈도우 못지 않다.). 다만 우리 나라는 윈도우가 너무나도 널리 보급되어 리눅스 인지도가 생각보다 낮으며, 리눅스 입문부터 막히는 경우가 다반사다(이는 나도 마찬가지.). 게다가 호환성은 MS기반인 프로그램들이 많기 때문에 리눅스로 그 프로그램을 실행하려면 리눅스용을 따로 마련해야 한다.

시스템 프로그래밍은 컴퓨터 시스템의 동작 원리를 파악하기 위해 배운다. 지금은 프로그래밍 개발 환경이 옛날보다 많이 개선되었다. 그래서 내부 동작 환경을 모르고도 프로그래밍이 가능하지만 컴퓨터 전공자가 그래서는 안된다. 그런 이유로 시스템 프로그램을 해보면서 동작 원리와 시스템 변조 및 조작을 해보기 위해 배운다. 리눅스는 그러한 프로그래밍 공부를 하기 위한 요건이 잘 갖추어져 있다. 요즘 리눅스는 GUI를 채택한 X윈도우를 사용할 수 있지만 그 기반은 여전히 CUI이기 때문에 여러 명령어를 조합해보고 나만의 프로그램을 만들면서 동작 원리를 익힐 수 있기 때문이다.


프로그래밍 쪼렙을 탈출하기 위해 앞으로 이렇게 기초부터 포스팅하며 공부해 볼 생각이다.

P.s : 우분투 리눅스를 설치하는 데에 어려움을 겪으신다면 이 블로그를 방문해보시라.