솔직히 컴퓨터관련 학부를 나온 사람이라면, 누구나 한번쯤은 리눅스를 접해보았을 것이다.
난 리눅스를 접해볼 기회가 그렇게 많지 않았다. 그리고 일단 리눅스가 싫었다.
명령어를 입력해서 작업을 해야한다는 것이 윈도우에 익숙한 나에겐 정말 귀찮은 일이였기 때문에..;;;
(그 수많은 명령어를 어떻게 외우냐고~!? 무슨 개발자가 만제도 아니고~ 다시 DOS를 쓰는 듯한 기분..;;)
학교를 졸업하고 처음으로 들어간 회사에서 이게 무슨 날벼락인지 모르겠지만, 유닉스를 사용했다.
그때는 초년병이였기 때문에, 간단한 작업을 했다. (어려운 작업은 과장님이 해주셨다...휴~;;)
근데 나도이제 유닉스를 관리해야 할 시점이 점점 오고있다는 생각이 든다.
잡담은 그만하고.....ㅋㅋㅋ
오늘은 유닉스에 대한 기본적인 공부를 해보자.
유닉스 ??
1. 일반적 특징
1) 다중사용자 환경(Multiuser)
터미널로부터 컴퓨터와 직접 통신함으로써 시스템 자원을 억세스하는 사용자를 다수 허용한다. 이는 시스템 자원 이용도를 증가시키고, 시스템 비용을 줄여준다.
2) 다중작업 환경(Multitasking)
한싯점에 여러개의 작업을 실행하는 것을 허용한다. 사용자의 생산성과 효율성을 증대한다.
3) 호환성(Portability)
여기서 말하는 호환성은 한 종류의 컴퓨터에서 다른 종류의 컴퓨터로 이동하는 능력이 좋다는 뜻... 즉 운영체제의 대부분이 특정 하드웨어에 한정되지 않는 형식으로 작성되었기 때문에 가능 한다.
4) 강력한 개발도구들 (Powerful Development Tools)
수많은 명령어들을 서로 조합하여 새로운 명령어들을 생성할수 있다. 유닉스는 프로그래머에의해 설계 및 프로그래머를 위해 설계된 운영체제이다.
2. 구성요소
유닉스 시스템은 Kernel, Shell, Command라는 3개의 중요한 구성요소를 가지고 있다.
1) Kernel
시스템 부팅이 될때 메모리내에 위치(Load) 되어지는 프로그램이다. 메모리 관리, 프로세서 시간 할당, 입력 및 출력의 제어를 수행함으로 인해 운영체제의 관리자 또는 핵심이라 불리운다. 사용자가 직접적으로 제어를 할 수 없다.
2) Shell
Shell 프로그램은 로그인시에 각각의 사용자에 대해 개시되고, 명령어 실행을 초기화하고 번역함에 의해 커널과 사용자 사이의 인터페이스 역할을 수행한다. Shell은 시스쳄 관리자가 사용자를 시스템에 등록하였을때 사용자에 할당된다. 관리자는 언제든 사용자의 Shell을 변경할 수 있다. Shell은 어플리케이션을 설계하거나 새로운 명령어를 생성할 수 있는 프로그래밍 언어이다.
3) Command
명령어는 사용자 작업을 수행하는 프로그램이다. 명령어는 사용자가 시스템에 작업을 수행하기 위한 일종의 도구 역활을 수행한다. 유닉스는 새로운 명령어를 생성하기 위해 복합될수 있는 수백개의 명령어를 제공한다. MAPPER와 Oracle같은 어플리케이션 프로그램은 쉘을 통하여 억세스 될 수 있다.
3. 화일 시스템과 화일 구조
1) 화일 시스템
유닉스 화일 시스템은 화일의 집합 또는 정보를 저장하기 위한 장소들로 구성된다. 유닉스에는 디렉토리, 일반 화일, 특수 화일, 심볼릭 링크(Symbolic Link) 화일등 4가지 형태의 화일들이 있다. 이러한 화일들은 그들이 쉽게 억세스될수 있도록 하기 위하여 일정한 배치 구조속에 배치되게 된다.
* 유닉스 화일의 종류
- 디렉도리(directory)는 다른 화일과 디렉토리에 대한 화일명, 화일의 억세스 권한, 화일의 크기, 생성 날짜, 수정 날짜등의 정보를 유지 관리한다. 디렉토리는 서로 연관되는 화일들을 묶어서 관리하는데 유용하다. 또한 디렉토리는 데이타를 갖지 않으며, 다른 화일 또는 다른 디렉토리로의 포인터만을 저장하게 된다.
- 일반 화일(ordinary file)은 디스크와 같은 특정의 기억 장치상에 존재하는 문자들의 집합이다. 일반 화일들은 이후의 사용을 위해 저장된 정보, 문서, 프로그램 코드등을 포함할수 있다.
- 특수화일(special file)은 디렉토리처럼 데이타를 작고 있지 않다. 기본적으로 이 화일은 디스크 드라이브, 터미널, 프린터와 같은 각정의 하드웨어 장치로의 포인터들이 들어 있다. 각각의 하드웨어 장치들과 연관되는 특수 화일들은 /dev 디렉토리내에 위치된다.
- 심볼릭 링크(symbolic link)된 화일들은 유닉스 화일 시스템내의 다른 화일들을 가르키는 정보(포인터 또는 절대 경로)를 작고있는 화일이다.
2) 화일의 구조
유닉스 화일들은 회사의 조직 구성표와 유사한 계층적 구조 또는 단계 구조로 구성된다. 이 방식은 정보를 관리, 검색, 구성하는데 효율적인 방식을 제공한다.
계층적 구조상에서 가장 높은 단계인 root 디렉토리로 부터 서브 디렉토리들과 서브 화일들이 분기된다. 이 점에서 유닉스 화일구조는 꼭대기에 뿌리와 모든 가지들이 그로부터 밑으로 향해가는 거꾸로된 나무처럼 보여질수도 있다. 시스템상의 모든 다른 화일들과 디렉토리들은 '/' 로 표현되는 root 디렉토리에 연결된다.
서브 디렉토리는 다른 화일 또는 화일과 서브 디렉토리들을 갖고있는 서브 디렉토리들을 갖고 있을 수 있다. 디렉토리와 그에 종속되는 서브 화일, 서브 디렉토리들 사이에는 부모-자식 과계의 연관 관계가 존재한다. 각각의 부모 디렉토리는 바로 아래 단계의 화일과 디렉토리들에 대한 정보를 유지 관리한다. 사용자에게는 로그인시에 홈디렉토리라고 부르는 유일한, 초기의 디렉토리를 할당한다. 사용자가 화일 계층구조에서 위치를 변경할때에, 각 디렉토리 위치들은 위치가 다시 바뀔때까지 current directory 가 된다.
쓰고나니 좀 복잡 스럽지만, 이것을 구지 외울 필요는 없지 않을까?? 그냥 이해만 하고 넘어가도록 하자..!!
아직 높은 산들이 많기때문에...;;;;