shell 이 해석한 결과물은?
글쓴이: ranio710 / 작성시간: 수, 2006/09/13 - 11:35오전
토론 중 결론이 나지 않아서 (리눅스 초보자들끼리의 토론이다 보니..;; ) 질문을 올립니다.
보통 shell을 명령어 해석기 라고 하는데 그렇다면 shell이 해석한 결과물은 기계어 입니까?
쉘이 쉘 프로그램( 쉘 스크립트 )를 해석해서 기계어로 바꾸어준 다음 커널에 전달해서
컴퓨터가 그것을 실행하는 것인가요??
만약 shell이 해석한 결과물이 기계어 이라면 사용하는 플랫폼마다 쉘이 달라야 하는게 아닌가요?
Forums:
shell 도 프로그램입니다.
대신 사용자와 직접 대면하는 것외에는 다를게 없습니다.
운영체제는 셀을 통해서 사용자와 interactive 혹은 batch 형태로 동작합니다.
사용자가 콘솔에서 접속하거나 네트웍을 통해 접속할때 가장 앞단에서 shell이 동작하는
것입니다.
일반적인 프로그램들은 대부분은 컴파일러가 만든 기계어 프로그램 그 자체이고요
자바 클래스 처럼 VM 해석기가 따로 필요한 형태도 있습니다. 또한 shell 차제가
해석하는 스크립트 파일 형태두 있구요.
shell 자체도 자신만의 프로그램밍 환경을 지원하고 그것을 셀 스크립트 언어라고
합니다. 이것들은 셀이 직접해서 자기가 거기에 맞는 함수나 외부 프로그램을
돌리겠지요. 컴파일러처럼 직접 기계어로 번역하지는 않습니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
제가 제대로 알고
제가 제대로 알고 있는지 모르겠지만,
for I in `seq -w 1 10` ; do echo $I ; done
위와 같은 예에서 for 루프의 로직은 셸이 직접 실행한다고 알고 있습니다.
"해석" 때문에
"해석" 때문에 오해하셨군요 :)
주어진 명령을 이해해서 실행시키는 것에 불과합니다. 스스로 다른 무언가를 만들지는 않습니다.
예를 들면 ls라고 치면 ls가 어디있는지 찾아서 exec로 실행시켜주는 것이지요.
또 앞서 다른 분이 말씀하셨듯, 나름 복잡한 스크립트를 사용할 수도 있습니다만, 그 것은 쉘보고 "이러저러하게 동작해라!"라고 말할 뿐입니다.
인터프리터.. 라고 볼 수 있겠군요.
댓글 달기