C & C++/C in Linux

[C in Linux] Linux 와 C

  • -
728x90

1. Linux 와 C

최초에 C는 시스템프로그래밍을 위한 언어로 개발되었으며, 상업적 및 학습적인 용도로 성공한 최초의 운영체제라 할 수 있는 Unix운영체제를 만드는 데에 사용되었다. 한마디로 Unix와 C는 뗄레야 뗄 수 없는 관계인 것이다. 이견이 있을 수 있지만 운영체제의 선조격인 Unix를 이해하는 것은 컴퓨팅환경을 이해하는 가장 좋은 방법이며, Unix를 이해하는 가장 좋은 방법은 C를 이해하는 것이라 할 수 있다.

Linux운영체제가 Unix와 전혀 다른 운영체제라고는 하지만 Unix의 모든 철학과 구현을 그대로 포함하고 있으며, 사실상 또다른 Unix운영체제의 한 종류라고 할 수 있다. Unix의 또다른 운영체제라는데 거부감을 가진 리눅서들도 있겠지만 프로그래머의 입장에서 보자면 Linux와 Unix는 동일하다.

굳이 Linux환경에서 C언어를 공부하려는 이유가 여기에 있다. Linux를 이해한다는 것은 Unix를 이해한다는 것이며, 이는 컴퓨팅환경을 이해한다는 의미가 되기 때문이다.  

 

  

2. C언어

컴퓨터와 대화하기 위해서는 컴퓨터가 이해할 수 있는 언어인 기계어를 사용해야 한다. 많은 컴퓨터과학자들이 기계어만을 사용하는 단순무식한 방법이 아닌 좀더 쉬운 방법으로 컴퓨터와 대화하기 위한 방법을 찾기 위해서 노력했었고, 그래서 만들어진게 Assembly(:12) 이다. Assembly는 0 1된 명령을 좀더 인간이 이해하기 쉽게끔 문자화 했다.  

 

.section .data

data_items:                         # 숫자 데이터들
    .long 3,67,34,222,45,75,54,34,44,33,22,11,66,0 
    .section .text
    .globl _start

_start:
    movl $0, %edi                   # move 0 into the index register
    movl data_items(,%edi,4), %eax  # load the first byte of data
    movl %eax, %ebx                 # since this is the first item, %eax is
                                    # the biggest

start_loop:                         # start loop
    cmpl $0, %eax                   # check to see if we ve hit the end
    je loop_exit
    incl %edi                       # load next value
    movl data_items(,%edi,4), %eax
    cmpl %ebx, %eax                 # compare values
    jle start_loop                  # jump to loop beginning if the new
                                    # one isn t bigger
    movl %eax, %ebx                 # move the value as the largest
    jmp start_loop                  # jump to loop beginning
loop_exit:                          # %ebx is the return value,
                                    # and it already has the number

    movl $1, %eax                   #1 is the exit() syscall
    int $0x80

0과 1로만 이루어진 기계어보다는 읽기 편해졌지만, 여전히 알아보기 어렵다.  

 

그래서 좀더 인간적인, 좀더 인간이 사용하기 쉬운 또다른 대안을 찾게 되었고, 그러한 노력의 결과 만들어진게 C언어이다. C 프로그래밍 언어 (이하 C)는 1970년에 Unix(:12)운영체제에서 사용하기 위한 목적으로 Dennis:::Ritchie(:12)에 만들어 졌으며, 강력함과 편리함으로 거의 모든 컴퓨터와 운영체제에서 사용하는 가장 성공적인 프로그래밍 언어가 되었다.이후에 만들어진 C++, Java(:12), Perl, PHP(:12), Python 등의 언어들도 직간접적으로 C의 영향을 받았다. 최근들어 이들 최신의 언어가 많은 인기를 끌고 있기는 하지만, 여전히 C는 가장 많은 개발자진을 확보 하고 있으며, 많은 수의 프로그램이 여전히 C로 만들어지고 있다.

728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.