system/level1

리눅스 기초(리눅스 구조)

powerprove 2017. 4. 4. 19:58

리눅스는 유닉스 계열의 운영체제를 의미 한다.


리눅스의 특징


1.  대부분의 플랫폼에서 사용이 가능 하다.


2. 뛰어난 안정성과 보안성을 지닌다.

=> 커널 소스 코드 및 모든 관련 자료가 공개 되어 있기 때문!


3. 성능이 낮은 컴퓨터에서도 작동된다.


4. 멀티유저와 멀티테스킹이 가능하다.


5. 대부분의 리눅스는 무료이다.


6. 다양한 네트워크 서비스를 제공한다.

=> 다양한 프로토콜을 제공

=> 인터넷 기반 어플리케이션 제공

=> 다양한 웹서버를 제공한다.


리눅스 구조





리눅스의 구조는 (대략적으로) 이렇게 되어있다.  우리들은 쉘에 명령어를 입력함 으로서 우리가 원하는 명령어를 실행한다.

필요할경우 커널을 통해서 하드웨어 까지 제어할 수 있다.




쉘은 유저와 직접 소통하며 유저의 명령을 수행한다.

처음 ubuntu를 깔때는 bash쉘이 기본으로 되어있다.

zsh, ash, sh 등 많은 쉘이 있지만 필자는 oh my zsh을 쓴다!

윈도우의 cmd도 하나의 쉘이라고 볼 수 있다. 

/etc/shells 파일을 보면 사용할수 있는 쉘 목록이 있다.



/etc/passwd를 보면 사용자가 로그인시 사용하는 쉘이 있다. echo $SHELL로도 확인이 가능.



쉘을 바꾸고 싶으면 chsh를 이용하면 된다.


커널


커널은 운영체제에 가장 필요한 핵심이다.

커널은 처음 부팅될 때 메모리에 올라간다.

시스템의 여러 부분을 제어한다.

멀티태스크 환경을 제공한다. 멀티태스크는 여러개의 프로세스를 동시에 실행하는것을 의미한다.

시스템콜(syscall)을 이용해서 응용프로그램과 상호작용한다.

/proc/sys에 있는 특수 파일을 사용해 실시간으로 커널의 옵션을 설정하고 확인할 수 있다.

커널에 대한 자세한 공부는 6,7 월달에 자세히 공부해야 겠다...