메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

Linux 프로그래밍 및 Linux 시스템 관리 입문

Linux 프로그램 개발 방법과 Linux 시스템 관리 방법을 배우는 데 필요한 기본 정보

developerWorks의 최신 Linux 기사 및 튜토리얼 보기

developerWorks의 Linux 영역에는 개발자에게 Linux 프로그래밍 및 애플리케이션 개발뿐만 아니라 Linux 시스템 관리와 관련된 유용한 정보를 제공하는 수백 편의 기사, 튜토리얼 및 팁이 있다.

하지만 새로운 주제를 처음 시작하는 입문자에게는 이 모든 정보가 버거울 수 있을 것이다. 이 Linux 입문 페이지에서는 Linux에 대해 배우고 싶지만 어디서부터 시작해야 할지 모르는 독자를 위해 개요를 제공한다. 또한 컨텍스트에 따라 모든 Linux 기본 정보를 제공하는 동시에 더 자세히 알아볼 수 있도록 관련 developerWorks 기사, 튜토리얼 및 팁과 IBM 학습 서비스 교육, 워크샵 및 IBM 제품에 대한 정보도 제공한다.

그렇다면 Linux란 무엇인가?

간단히 말해서 Linux는 운영 체제이다. Linux는 University of Helsinki의 학생인 Linus Torvalds에 의해 1991년 10월에 개발되었다. (Linux는 Linus의 UNIX라는 의미이다.) Linux 자체는 실제로 커널이며, 멀티태스킹 및 다중 사용자 기능을 구현하고, 하드웨어를 관리하며, 메모리를 할당하고, 애플리케이션을 실행할 수 있도록 지원한다.

일반 사용자는 운영 체제에 대한 관심이 높지 않기 때문에 커널 내부와 같이 복잡한 사항에 대해 알고 싶어하지 않는다. 개인적인 삶이 없거나 이러한 종류의 작업에 빠져 있는 개발자처럼 진정으로 헌신적인 개발자만 이처럼 복잡한 사항까지도 살펴보려고 한다.

하지만 자신이 커널 해킹 정도의 깊은 수준까지 살펴본 적이 없다고 하더라도 손쉽게 전문 업체와 계약하여 이 작업을 수행할 수 있기는 하지만 전용 시스템에 대한 수정 작업을 위임하게 되면 더 많은 어려움이 따르고 비용도 많이 든다.

Linux 프로그래밍 입문자의 경우 커널과 관련하여 기억할 필요가 있는 가장 중요한 사항은 홀수로 끝나는 커널 버전(즉, 2.3, 2.5, 2.7)은 실험적인 개발 커널이라는 것이다. 안정적인 릴리스 커널에는 짝수 번호(즉, 2.4, 2.6, 2.8)가 지정된다.

일반적인 Linux 배포판에는 Linux 커널 뿐만 아니라 많은 애플리케이션 프로그램과 도구도 포함되어 있다. Linux 배포판에 있는 여러 가지 시스템 및 사용자 레벨 도구의 대부분은 Free Software Foundation의 GNU 프로젝트(GNU는 "GNU's Not UNIX"의 약자임)를 통해 개발되었다.

Linux 커널과 GNU 도구는 GNU General Public License 또는 GNU GPL에 따라 릴리스된다. GNU GPL에 대해 아직 잘 모르고 있다면 GNU GPL을 직접 읽어보는 것이 가장 효과적으로 이해할 수 있는 방법이다. 다른 중요한 부분도 많이 있지만 간단히 말해서 GNU GPL은 코드를 사용하는 개발자가 핵심 내용까지 다룰 수 있도록 컴퓨터 코드를 자유롭게 사용하도록 허용하는 한 방법이다.

UNIX와 Linux의 차이점은 무엇인가?

Linux는 UNIX와 매우 비슷하기는 하지만 UNIX가 아니다. 다른 많은 회사와 마찬가지로 IBM에도 Linux 및 UNIX 분야의 오퍼링이 모두 있다. AT&T Bell Labs에서 1969에 발명한 UNIX(이전 "Multics" 운영 체제에서 유래된 이름)는 강력하고 유연하며 개발자 친화적인 컴퓨팅 환경이다. 이 가장 유명한 다중 사용자 범용 운영 체제는 원래 PDP 마이크로컴퓨터의 DEC(Digital Equipment Corporation) 제품군을 위해 작성되었으며 모든 컴퓨팅 분야에서 큰 역할을 담당하고 있으며 메인프레임으로도 사용되고 있다.

다른 많은 회사와 마찬가지로 IBM에도 Linux 및 UNIX 분야의 오퍼링이 모두 있다.

20여 년의 시간이 흐르면서 일부 영역에서 Linux가 UNIX를 대체하는 모습이 나타나기 시작했다. Linux는 UNIX가 아니다. 단지 UNIX와 매우 비슷할 뿐이다. 일부 작업에서는 Linux를 원하겠지만 그렇지 않고 UNIX가 필요한 작업도 있다. UNIX와 Linux는 서로 잘 작동하며, 잘 작성된 프로그램의 경우에는 두 시스템 간에 매우 쉽게 이식할 수 있다. IBM의 UNIX에 대한 자세한 정보를 보려면 다음 사이트를 참조하기 바란다.

Linux가 중요한 이유는 무엇인가?

Linux는 GNU General Public License에 따라 라이센스가 부여된 무료 소프트웨어이기 때문에 프로그래머가 각각의 새 프로젝트를 사용하여 연산 계층을 재구성하지 않아도 된다. 비유해서 말하자면 GNU 도구 제품군은 독립적인 프로젝트를 빌드하는 데 사용할 수 있는 로열티 없는 벽돌과 회반죽을 제공한다. 무료 소프트웨어 비판론자들은 종종 무료 소프트웨어의 자유로운 사용과 낮은 비용이 컴퓨팅 분야에 경제적인 재난을 불러올 것이라고 걱정한다. 하지만 구텐베르크의 인쇄 기술이 문학계의 발전을 가져왔던 것처럼 무료 소프트웨어도 컴퓨팅계에 크게 이바지할 것이다.

Linux로 무엇을 할 수 있는가?

Linux 시스템을 사용하여 무엇을 할 것인가에 따라 필요한 Linux 시스템과 작업을 시작하기 전에 이해해야 하는 복잡도의 수준이 결정된다.

Linux는 Linux 프로그래밍, 커널 해킹 또는 UNIX 프로그래밍을 배우기에 적합한 훌륭한 플랫폼이다. 많은 도구와 애플리케이션을 사용하여 게임을 즐기거나 전자 출판 작업을 수행할 수 있을 뿐만 아니라 단순히 이메일을 주고 받거나 웹 검색을 수행할 수도 있다.

또한 매우 자유롭게 사용자 정의할 수 있기 때문에 개방형 및 폐쇄형 시스템 작업에도 훌륭한 플랫폼이다. Linux는 미들웨어부터 임베디드 컴퓨팅, 클러스터, 병렬 수퍼컴퓨터 및 가젯에 이르는 모든 분야에서 많이 사용되고 있는 플랫폼이다. IBM은 Linux에서 실행되는 금전 등록기뿐만 아니라 Linux 손목시계를 제조하는 프로젝트에 참여하고 있다. 다른 개발자는 휴대폰, Sony PlayStation, TiVo 및 Sharp Zaurus와 같은 장치에서 Linux를 사용하고 있다.

GNU General Public License에서는 코드를 사용하는 고객에게 변경된 코드를 제공하도록 요청하고 있지만 일반 대중에게 모든 변경된 코드를 제공하도록 요청하지는 않는다. (이 점은 무료 소프트웨어 비판론자가 이해하지 못한 핵심이다). 실제로 Linux 기반 금전 등록기의 경우 다수의 대중에게 코드를 공개하면 보안 위험이 발생하게 될 것이다. GNU GPL에서는 단지 코드를 사용하는 고객에게만 수정된 코드를 제공하도록 요청한다.

Linux를 시작하려면 어떻게 해야 하는가?

초보 Linux 입문자이거나 Linux를 데스크탑 운영 체제로 사용하는 사용자라면 적어도 시스템 관리 및 보안에 대한 기본적인 사항을 배워야 한다. 그러한 작업을 자동화한 상업용 개인 운영 체제와는 달리 Linux는 일반 사용자에 대한 보호나 관리를 약속하지 않기 때문에 사용자가 스스로 시스템을 관리해야 한다. 다행히도 기본 유지보수 및 기본 보안은 매우 쉽다. 많은 면에서 오늘날 Linux 및 UNIX는 유명한 상업용 개인 운영 체제에 비해 투명성이 훨씬 더 높기 때문에 그 관리 작업도 한결 더 쉽다.

Linux에는 관리 작업을 수행할 수 있는 여러 가지 창 환경이 있지만 가장 수월하게 시스템을 제어하는 방법은 명령행을 사용하는 것이다. 명령행 환경의 구조에는 수십 개의 명령과 여러 텍스트 기반 도움말 시스템이 내장되어 있다.

웹을 비롯하여 우리 주변에 Linux를 시작하는 데 도움이 되는 매우 많은 자원이 있다. 이 주제와 관련된 웹 사이트, 기사 및 서적과 더불어 세계 각국의 여러 도시에 있는 Linux User Groups(LUG라고 함) 모임이 있으며, 이러한 모임은 입문 수준의 새로운 사용자에게도 매우 친절한 것으로 잘 알려져 있다.

Linux를 애플리케이션 개발에 사용하려면 어떻게 해야 하는가?

Linux는 프로그래밍 플랫폼으로서 훌륭한 선택이다. Linux는 GCC 호환 플랫폼이다. 이 말은 곧 GNU Project의 우수한 프로그래밍 및 디버깅 도구 스위트를 완전 무료로 GNU GPL에서 보장하는 자유와 함께 사용할 수 있음을 의미한다. 상업용 운영 체제와 같은 상업용 프로그래밍 패키지를 사용하려면 많은 비용이 들 수 있다. 실제로 프로젝트별로 비용이 들고 비용보다 높은 가치를 얻어낼 수도 있지만 입문자나 학습자에게 그리고 많은 전문가에게도 무료 소프트웨어는 반드시 필요하다. Linux를 개발 플랫폼으로 사용하고 있다면 관리와 보안에 대한 학습을 생략해서는 안 된다. 자신의 컴퓨터를 마스터하지 않는 프로그래머는 정말 어리석은 자이다.

Linux는 기본적으로 표준을 따른다. Linux 개발자는 하나의 규칙으로서 운영 계층과 이를 기반으로 하는 모든 프로그램을 개방적이고, 상호 운용적이며, 표준 친화적으로 유지하는 데 매우 높은 중요성을 두고 있다.

Linux에서 사용할 수 있는 프로그래밍 언어는 무엇인가?

Fortran 및 C/C++와 같이 많이 사용되는 언어 외에도 많은 스크립트 및 기타 컴퓨터 언어가 Linux에서 정상적으로 작동될 뿐만 아니라 최적으로 작동되도록 설계되어 있기도 하다. 가장 유명한 언어로는 Perl, Python, PHP 및 Tcl이 있다.

Java 기술 및 XML과 같이 역동적인 새로운 기술뿐만 아니라 Logo, Rebol 및 Smalltalk와 같이 잘 알려져 있지 않은 프로그래밍 언어도 Linux에서 자연스럽게 실행된다.

Linux 스킬을 지속적으로 향상시키려면 어떻게 해야 하는가?

Linux를 고급 애플리케이션 또는 애플리케이션 세트를 위한 플랫폼으로 사용하려면 커널 해킹, 다양한 파일 시스템의 차이점 및 기타 여러 가지 세부 사항과 같은 시스템의 여러 특성에 관심을 갖게 될 것이다.

하이엔드 애플리케이션(또는 게임)에 필요한 또 다른 스킬 세트는 최적의 성능을 얻기 위해 Linux 시스템, 클러스터 또는 네트워크를 미세 조정하는 것이다. 이를 위해서는 멀티프로세싱, 스레드, 클러스터 및 까다로우면서도 정교한 기타 시스템 관리 작업에 대한 전문성이 필요하다. Linux의 이러한 특성은 실제 커널 해킹보다는 쉽게 이해할 수 있지만 그럼에도 불구하고 상당히 어려울 수 있다.

IBM Learning Services에서는 기초부터 시작해서 개발, 전문 스킬 및 인증(이에 대해서는 나중에 자세히 설명함)에 이르는 모든 과정을 다루는 강의를 제공한다. IBM Developer 솔루션에서는 IBM 제품에 대한 기사 및 사용법을 제공하며 우수한 IBM 웹 사이트에서는 많은 자원을 제공한다. 그리고 이러한 자원 중에서 대부분은 아니더라도 많은 자원이 Linux에서 실행된다. IBM developerWorks에서는 Linux뿐만 아니라 XML, 무선, 웹 서비스, Java 기술 및 그리드 컴퓨팅을 포함한 다른 여러 오픈 또는 무료 기술에 대한 기사, 튜토리얼 및 자원을 제공한다.

자신의 Linux 스킬을 증명하려면 어떻게 해야 하는가?

Linux 인증 프로그램에는 컨소시엄 프로그램뿐만 아니라 개별 스킬 테스트 및 회사에서 후원하는 인증이 포함되어 있다. IBM developerWorks 및 IBM Training에서는 Linux 전문성 향상을 위한 인증 트랙을 제공한다.

Linux에서 사용할 수 있는 IBM 도구는 무엇인가?

Linux는 워드 프로세서 및 스프레드시트와 같은 사무용 애플리케이션부터 데이터베이스 시스템과 웹 출판 및 지원 환경에 이르는 다양한 표준 애플리케이션을 실행할 수 있는 우수한 운영 체제이다. DB2, Lotus, Tivoli 및 WebSphere와 같은 IBM 제품은 모두 Linux에서 실행된다. 그렇다고 해서 IBM이 Linux를 훌륭한 미들웨어 플랫폼으로 인식한 유일한 업계 리더는 아니다. 비록 진가를 인정받지 못하고 있지만 적어도 스스로 디지털 전문가라고 일컫는 사람들 사이에서는 무엇보다도 미들웨어가 컴퓨터를 사용하는 핵심(그리고 많은 컴퓨터 사용자의 경우 바로 그 핵심) 이유이다. Linux의 개방성으로 인해 미들웨어 벤더는 폐쇄적 시스템에서는 허용되지 않는 방법으로 솔루션을 미세 조정하여 사용자의 요구를 충족할 수 있다.

Linux에 대한 전망은 어떠한가?

개방성과 유연성이 뛰어난 Linux는 연구실과 기타 연구 기관에서 수행하는 혁신적인 첨단 기술 연구에 활용되고 있다. IBM에서는 물리학과 인지 과학부터 첨단 애플리케이션 연구 등에 이르는 모든 정보 기술 분야를 연구하고 있다. 하지만 IBM의 연구원들은 순수 과학에도 많이 참여하고 있다. IBM에서는 Linux가 이러한 환경에서 자주 사용되고 있다.

Linux는 기초 실험, 프로토타입, 시뮬레이션 또는 테스트를 위해 쉽게 클러스터링하거나 사용자 정의할 수 있으며, Linux에서 작동할 수 있도록 개발된 수많은 무료 소프트웨어 도구도 동일하게 창조적인 방법으로 사용할 수 있다. 오늘날 그리드 컴퓨팅, 무선 음성 애플리케이션, 인공 지능 및 양자 컴퓨팅을 비롯한 흥미로운 신기술이 다양하게 개발되기는 했지만 우리가 살고 있는 컴퓨팅 시대의 가능성과 전망은 아직까지도 활짝 열려 있다. Linux의 강력한 개방적 유연성은 시간이 흘러도 Linux가 개발 개척 시대의 선봉에 남아 있을 것임을 의미한다.