Linux2012. 8. 31. 09:49

★운영체제의 로딩 과정

 -컴퓨터가 전원을 공급한다.

 -부트 로더가 하드디스크의 첫번째 섹터에 해당하는 MBR에 있는 부팅 관련 프로그램을 실행한다.

 -부팅관련프로그램은 MBR의 정보를 바탕으로 운영체제의 부트섹터로 제어권을 넘긴다.

 -부트 섹터는 운영체제를 메모리로 로드시키기 위해 부트 프로그램을 실행한다.

 

※MBR(Master Boot Record) 의 정보

  >파티션의 시작과 끝을 나타내는 주소 : 파티션의 크기와 위치 정보

  >부팅 가능한 파티션인지에 관한 정보

  >파티션 타입 : 두자리수 ID로 표현하며, 파티션의 용도를 파악.

 

★리눅스의 부팅과정

-LILO(Linux Loader) 리눅스 로더, 리로를 사용하고 있다.

  > 커널을 메모리에 적재

  >커널 이미지의 위치를 알고 있어 스스로 커널 이미지를 찾을 수 있다.

 

-커널 부팅

  >메모리에 로드된 커널을 부팅

  >커널 자신에게 포함되어 있는 기능들을 점검하고 설치되어 있는 하드웨어를 점검한다.

  >압축된 커널 이미지는 메모리에 적재된 다음 스스로 푼다.

  >root파티션을 마운트 하며, 대부분 Read-Only로 마운트 한다.

  >디스크 검사를 수행하고 검사를 마치면 Read-Write모드로 Remount한다.

  >/sbin/init을 수행한다.
 

-init

  >커널이 제일 먼저 실행시키는 프로세스이며 PID 1번을 갖는다.

    ※PID 프로세서 아이디

       UID 유저 아이디

       GID 그룹아이디

  >커널은 모든 제어권을 init에게 넘기고 프로그램이 특정 기능을 요청하면 처리한다.

 

  >init Script 작업 진행

init Script 관련 파일 및 해당 위치  || 파일 설명

/etc/inittab                                   init의 설정파일

/etc/rc.d/rc.sysinit                       init Script에서 제일 먼저 실행되는 파일

/etc/rc.d/rc.local                          init Script에서 제일 마지막에 실행되는 파일

/etc/rc.d/init.d/*                          데몬을 실행시키기 위한 스크립트들

 

/etc/rc.d/rc[0-6].d/*                    각 런레벨(Runlevel)에 정의 된 데몬들을 실행시키기 위한 파일

/etc/rc.d/rc                                  각 런레벨에 해당되는 스크립트를 실행 시키는 스크립트

/var/lock/subsys/*                       현재 실행되고 있는 데몬들의 Lock 파일

/var/run/*.pid                               현재 실행되고 있는 데몬들의 PID가 적힌 파일

 

 

★ init의 설정을 변경하여 xwindow부팅 모드에서  콘솔 모드 부팅으로 바꾸기

 

-VMware Workstation 으로 Red Hat Linux9를 실행시킨다.

  리눅스가 start 된다.

 

사용자 삽입 이미지

 

-Xwindow 모드로 시작되게 되어 있다.

ID : root

Passward : 123456


 

사용자 삽입 이미지

 

 

-새로운 터미널을 한개 연다음 ,vi /etc/inittab

 inittab파일을 열어준다. 다음은 init파일의 내용을 일부 수정한다

  >Default runlevel, The runlevels used by RHS are: 부분을 살펴보자

    런레벨에 대한 설정이 나와있고.

 

    아랫부분에                          id:5:initdefault:            라는 부분이 있다.  이 부분을

                                             id:3:initdefault:            라고 고쳐주자.


 

사용자 삽입 이미지

 

- 고친 다음reboot라고 명령해 주면 , 다음번 부팅 부터는 콘솔 모드로 부팅된다.

  아래에 설명이 다시 한번 있을것이다.

 

※ 간단하게startx라고 치면 x윈도우 화면으로 들어갈수 있다.

    콘솔모드로 되돌아가는것은Ctrl + Alt + backspase

 


★init과 runlevel

 -가정먼저 init은/etc/inittab설정 파일을 읽음

 -Runlevel의 종류

 

Runlevel  |          설                           명

    0          시스템 종료

 

    1          싱글 유저(Single User)부트 : LILO프롬프트에서 linux single이라고 입력하면 런레벨 1에서 리눅스가 시작된다.

                이 경우 디폴트인 root로 로그인되며, 대다수의 중요한 데몬들은 실행되지 않게 설정되어 있다.

 

    2          NFS를 지원하지 않는 다중 사용자 모드

 

    3          모든 네트워크 기능을 지원하는 다중 사용자 모드

 

    4          특별한 의미가 정해지지 않았으며 나름대로 정의해서 쓸 수 있는 런레벨이다.

                필요에 따라서 실행시키기 원하는 데몬이나 서비스를 /etc/rc.d/rc4.d 디렉토리 밑에 설정하여 각자의 특성을 갖는

                고유의 런레벨을 정의 할 수 있다.

 

    5          X-window 모드에서의 로그인

 

    6          시스템의 재부팅

  

★아래는 콘솔 모드의 런레벨 rc3과 시스템 재부팅의 rc6

사용자 삽입 이미지

사용자 삽입 이미지

 

 

★시스템의 shutdown 과정

 -init에 의하여 runlevel 0이 실행되고 커널이 동작을 멈추게 됨

 

 -Runlevel 0의 두가지 동작

  >실행 중인 모든 프로세스를 죽이게 됨

  >작업하던 내용을 종료시킬 수 있도록 TERM, QUIT, KILL 순서로 시그널을 보냄

 

-현재 작업중인 것을 모두 저장

-모든 프로세스가 종료되었으면 마운트 된 디스크들을 언마운트

-만약 시행중인 프로세스가 있으면 디스크는 언마운트 되지 않는다.

 

-리눅스 시스템을 종료하는 명령어 shtdown 그자체가 명령어로, 이걸 사용하면 예약 종료도 가능하다

 shutdown -h now        지금 바로 종료

 shutdown -h 1             1시간 뒤에 자동으로 꺼지게 된다.

 

 

 

★시스템의 시작

-Root 계정

  >시스템 관리자에게 부여되는 모든 권한을 가질 수 있다.

  >Super User라고 한다.

  >시스템 관리 및 사용자 추가 및 삭제, 시스템 내의 모든 작업에 관한 제어 권한

  >평소 일반 사용자 계정으로 사용하는 것이 바람직하다.

  >프롬프트의 모양이 #

 

-일반 사용자 계정

  >Root가 부여해준 권한으로 시스템을 사용

  >프롬프트의 모양이 $

  >일반적으로 /home 안에 자신의 계정에 따른 디렉토리를 부여받는다.

  

 

★시스템의 종료

-halt

  >아직 정해지지 않은 디스크의 운영상태를 완성

  >/var/log/wtmp에 로그인과 로그아웃에 관한 내용을 저장하고 안전하게 종료

  >Shutdown -h now와 같은 명령이다.

 

  # /sbin/halt

 

-Ctrl + Alt + Del

  >/etc/inittab 파일 가운데

 

 ca::ctrlaltdel:/sbin/shutdown -t3 -r now

 

  >위의 항목을 추가하면 재부팅을 시킬 수 있다.

 

-shutdown

  >멀티유저를 위한 특성에 맞도록 시스템 종료에 대처할 수 있는 시간적 여유와 메시지 전달 기능을 지원

  >root 사용자만 수행 가능

 

# /sbin/shutdown [-krhfc] [-t sec] time [경고 메시지]

 

옵션                     옵 션    내 용

-t sec               다른 런레벨로 바뀌기 전에 경고를 내보내는 프로세스와 kill시그널 사이의 기다리는 시간(단위/초)

-k                    시스템에 접속된 모든 사용자들에게 경고 메시지만 전달

-r                     셧다운 후 재부팅

-h                    셧다운 후 시스템 정지

-f                     재부팅 과정에서 fsck를 실행하지 않음

-c                    실행중인 셧다운 취소

 

-init

  ># init 0  (시스템 종료)

  ># init 6  (시스템 재 부팅)

 

-X 윈도우 모드에서 시스템 종료

  >일반적으로 로그아웃 메뉴 항목이나 로그아웃 버튼을 이용하여 시스템을 종료

 

-접속종료

  >시스템 사용후 더 이상 사용하지 않고 시스템을 빠져나오는것

  >logout 또는 exit 명령 또는 Ctrl + D 키를 동시에 누름으로써 실행
 

 

★시스템 부팅시 뜨는 환경 설정 "issue"와 issue의 내용에 따른 부팅 모습

사용자 삽입 이미지


사용자 삽입 이미지
 
 
 
 
 
★리눅스 명령어의 특징
 
-대수문자의 구분
 
-여러 명령의 동시 수행 가능
 
-파일 사용의 권한 부여
 
-내부 명령과 외부 명령
  >대부분의 명령들이 따로 파일 형태로 존재
  >파일 명 뒤에 특별한 확장자가 없음
 
-명령어 사용형식
  ># 명령어 [옵션] [인수]와 같은 형식으로 사용
  >다양한 옵션을 지원
 
Posted by iWithJoy