[Kernel 2.6]인터럽트

Programming/Linux 2009. 11. 17. 10:22

Process 가 리눅스 커널의 기능을 호출 할 때는 시스템 콜을 이용
H/W 가 리눅스 커널의 기능을 호출 할 때는 Interrupt 구조를 이용.

리눅스에서는 Interrupt 의 레벨이 없고, 처리 자체를 응답성을 필요로 하는 부분과 필요로 하지 않는 부분으로 나눈다. 응답성이 필요한 부분은 가능한 한 실행 시간을 짧게하여 H/W Interrupt 로 실행. 응답성이 필요하지 않은 부분은 나중에 처리할 수 있도록 정리해 둔다. 이 처리를 Soft Interrupt 라고 한다. 예를 들면 이더넷 드라이버 처리( H/W Interrupt ), TCP/IP 프로토콜 처리( Soft Interrupt )

멀티프로세서에서의 인터럽트
- CPU에 관계없이 모든 Int Handler 를 처리 할 수 있고, 한 CPU가 H/W Int를 처리하는 중이면 가장 부하가 적은 다른 CPU에 Int를 발생시켜 Int Handler를 처리
- 같은 IRQ가 아닌 한 CPU 별로 각각의 H/W Int Handler 를 처리 할 수 있다.

인터럽트 종류
: 외부 장치 인터럽트, 타이머 인터럽트, 프로세서 간 인터럽트( 다른 CPU에 이벤트 통지 ), NMI( 마스크 불가 인터럽트 - 긴급 시 장해 대응 목적 ex - 메모리의 패리티 에러 발생 포착( Data검증 ), 워치독(watchdog : 자체적으로 Cnt를 증가하여 check하다가 어느 값이 되면 reset ), 디버거 강제 실행 등에 이용 )

예외 : 인터럽트와 비슷은 하지만, 인터럽트는 외적 요인에 의한 것이지만, 예외는 CPU의 동작 자체에 의해 일으켜진 이벤트를 뜻한다( 예 : 0으로 나누기, 페이지 접근 위반 등 )

하드웨어 인터럽트 처리 동작 예
1. 네트워크 카드에 패킷 도착시 인터럽트 요청
2. 커널은 인터럽트 핸들러를 실행.
3. 인터럽트 핸들러는 네트워크 카드로 부터 패킷 데이터를 가져와서 소프트 인터럽트 핸들러의 실행을 요청. 인터럽트 핸들러 수행은 마치고, 다음 인터럽트에 대비
4. 잠시 후 소프트 인터럽트 핸들러 실행하여 TCP/IP인 경우 그에 따른 소켓에 패킷을 전송.
5. 프로세스는 소켓으로 부터 데이터를 읽는다.

'Programming > Linux' 카테고리의 다른 글

  (0) 2009.10.26
X 윈도우  (0) 2009.10.26
리눅스 파티션 설정  (0) 2009.10.26
멀티부팅과 파티션  (0) 2009.10.09
시스템 정보 보기  (0) 2009.10.08

설정

트랙백

댓글

Programming/Linux 2009. 10. 26. 10:19
Shell 프롬프트
# echo SHELL
-> echo 는 뒤에 나오는 문자열 출력

# echo $SHELL
-> '$'는 뒷단어를 변수로 인식하고 변수내용 출력

메타문자
- Shell 이 해석하는 특수한 기능을 가진 문자 -> $
- 메타문자 해석 금지 -> \, "", ''
ex ) #echo \$SHELL -> $SHELL 로 출력

배시의 환경설정 파일
- .bash_logout, .bash_profile, .bashrc
- 원본파일 /etc/skel/ 디렉토리에 존재 ( 사용자 추가시 마다 이 원본 파일이 각 사용자의 홈 디렉토리에 복사 된다 - 위치 : /home/사용자명 )
- "." 으로 시작하는 파일은 숨김파일을 의미

모든사용자 공통의 환경설정 파일
- /etc/profile, /etc/bashrc

PATH 환경설정 ( 명령어를 쳤을 때, PATH 에 잡힌 곳에 있는 명령어이면 실행 된다. ) 파일 인식 순서
/etc/profile -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc
( ~/ : 각 사용자별 홈디렉토리 )

'Programming > Linux' 카테고리의 다른 글

[Kernel 2.6]인터럽트  (0) 2009.11.17
X 윈도우  (0) 2009.10.26
리눅스 파티션 설정  (0) 2009.10.26
멀티부팅과 파티션  (0) 2009.10.09
시스템 정보 보기  (0) 2009.10.08

설정

트랙백

댓글

X 윈도우

Programming/Linux 2009. 10. 26. 10:01
리눅스에서는 6개의 가상콘솔 을 제공해 준다.
즉, 6개의 다른 화면을 제공해 준다. 이는 1 ~ 6번이고, 7 번은 기본적으로 X윈도우를 바탕으로 한 화면이 있다. 
Ctrl + Alt + F1 ~ F6 : 텍스트 모드 
Ctrl + Alt + F7 : X윈도우 전환
X윈도우 -> 콘솔 : Ctrl + Alt + BackSpace ( x윈도우 종료 )

텍스트환경에서 X윈도우 구동 명령어
# startx
( 0번째 x윈도우 )
이미 X윈도우가 구동 중일 때
# startx --:1~6
( 7번 X윈도우 환경에서 x윈도우는 0 번째 이다. )

'Programming > Linux' 카테고리의 다른 글

[Kernel 2.6]인터럽트  (0) 2009.11.17
  (0) 2009.10.26
리눅스 파티션 설정  (0) 2009.10.26
멀티부팅과 파티션  (0) 2009.10.09
시스템 정보 보기  (0) 2009.10.08

설정

트랙백

댓글

리눅스 파티션 설정

Programming/Linux 2009. 10. 26. 07:22

리눅스에서 꼭 필요한 파티션
● 스왑파티션
● "/" 파티션( 루트 파티션 )


수동 파티션 설정
스왑(Swap) : 200MB 정도 -> 가상메모리 역할
루트(/) : 500MB 정도 -> 자동 설정시 모든 파일이 위치
/boot : 최대 80MB -> 부팅 관련 파일
/usr : 300MB ~ 2.5 GB -> 대부분 프로그램 설치 공간
/var : 200MB ~ 1.0 GB -> 임시공간
/home : 나머지 전체 공간 -> 사용자별 홈 디렉토리

'Programming > Linux' 카테고리의 다른 글

  (0) 2009.10.26
X 윈도우  (0) 2009.10.26
멀티부팅과 파티션  (0) 2009.10.09
시스템 정보 보기  (0) 2009.10.08
vi 사용( 명령어 )  (0) 2009.10.08

설정

트랙백

댓글

멀티부팅과 파티션

Programming/Linux 2009. 10. 9. 19:55



파티션을 주 파티션을 먼저 만든다. 그리고, 논리파티션을 만들기 위해 확장파티션을 만들고, 논리 파티션을 만든다.( 확장파티션 자체만으로는 아무 의미가 없다 ) 윈도우 9x 계열에서는 주 파티션이 하나만 만들수 있지만, 윈도우 NT 계열이나 리눅스 에서는 최대 4개 까지 만들수 있다. 이러한 파티션의 정보는 MBR영역에 포함되어 있다. ( 컴퓨터 부팅시 BIOS에서 MBR을 먼저 체크를 한다. )
윈도우를 먼저 C에 설치하고, 확장파티션에 리눅스를 설치한다.







파티션 : /dev/hda1 ( Linux )
                  /dev/hda2 ( Linux )
                  /dev/hda3 ( Linux )
                  /dev/hda4 ( Extended )

논리 파티션 : /dev/hda5 ( Linux )
                     /dev/hda6 ( Linux ) 
                     /dev/hda7 ( Linux LVM )

확장 파티션은 논리 파티션을 만들 목적
논리 파티션의 번호는 5번 부터 지정 가능

'Programming > Linux' 카테고리의 다른 글

X 윈도우  (0) 2009.10.26
리눅스 파티션 설정  (0) 2009.10.26
시스템 정보 보기  (0) 2009.10.08
vi 사용( 명령어 )  (0) 2009.10.08
파일의 링크  (0) 2009.10.08

설정

트랙백

댓글

시스템 정보 보기

Programming/Linux 2009. 10. 8. 11:26
CPU 정보 : uname
uname -p -> i686 은 펜티엄4를 의미

메모리 정보 : free
free -m : MB 단위
free -k : KB 단위

프로세스 정보 : ps, pstree
ps auxw | grep httpd : 웹서버 대문이 제대로 작동중인지 확인
pstree : 프로세스들의 종속성

프로세스별 CPU와 메모리 점유율 : top
프로세스 죽이기 : k
작업관리자 종료 : q

마운트한 파일 시스템의 정보 : df
마운트한 파일 시스템의 전체크기, 사용한 공간, 여유공간 등의 정보
df -u

디렉토리별 용량 : du
du --max-depth=1 -h /home : 사용자별 디스크 사용현황

'Programming > Linux' 카테고리의 다른 글

리눅스 파티션 설정  (0) 2009.10.26
멀티부팅과 파티션  (0) 2009.10.09
vi 사용( 명령어 )  (0) 2009.10.08
파일의 링크  (0) 2009.10.08
기본 명령어  (0) 2009.10.08

설정

트랙백

댓글

vi 사용( 명령어 )

Programming/Linux 2009. 10. 8. 11:19

입력 모드
w ( 저장 ), q ( 종료 ), wq ( 저장 및 종료 ), q! ( 저장하지 않고 종료 )

명령모드
x : 한글자 지우기
d : 커서 오른족 단어 삭제
dd : 한줄 삭제
ndd : 여러줄 삭제 ex ) 10dd
yy : 한줄 복사
nyy : 여러줄 복사 ex ) 10yy
p : 헌재 커서 아래로 붙여넣기
np : n번 붙여넣기
u : 복구하기
/검색어 : 아래방향 찾기
?검색어 : 위방향으로 찾기
n : 검색중에 다음 찾기
nG : 해당 줄로 이동 ex ) 100G - 100번째 줄로 이동

텍스트 검색 및 치환
/찾는 문자열

: 파일 내에서 찾는 문자열을 찾아 커서가 이동( 아래 방향으로 )

?찾는 문자열
: 파일 내에서 찾는 문자열을 찾아 커서가 이동( 위 방향으로 )

n
: "/찾는문자열"을 입력후 다음찾기할때( 아래방향 )

N
: "/찾는문자열"을 입력후 다음찾기할때( 위방향 )

s/찾는문자열/치환문자열
: 현재 커서가 놓여 있는 행에서 첫번째로 검색된 특정 문자열 바꾸기

1,10s/찾는문자열/치환문자열

: 1~10행에 있는 검색된 문자열 바꾸기

%s/찾는문자열/치환문자열
: 모든 행에 걸쳐 첫번째로 검색된 특정 문자열 바꾸기


실행모드
!명령어 : 외부명령어 실행

환경 설정
: /usr/share/vim/vim61/vimrc_example.vim 을 자신의 홈디렉토리에 .vimrc 로 복사하여 편집

입력모드에서 설정
set number : 행번호 표시
set autoindent : 자동 들여쓰기
set cindent : C 파일 자동 들여쓰기
set backup : 백업파일 자동 생성


저장하지 않고 종료했을 경우의 파일 복구
vi.a.txt 강제 종료시 a.txt.swap 파일 생성이 된다.

다시 편집시에 복구 메세지 출력되면
R : 해당화면에서 복구
E : 그냥 고치기

'Programming > Linux' 카테고리의 다른 글

멀티부팅과 파티션  (0) 2009.10.09
시스템 정보 보기  (0) 2009.10.08
파일의 링크  (0) 2009.10.08
기본 명령어  (0) 2009.10.08
리눅스란?  (0) 2009.10.08

설정

트랙백

댓글

파일의 링크

Programming/Linux 2009. 10. 8. 01:17

심볼릭 링크
: 새로운 inode의 원본파일포인터가 원본파일을 가리킨다.

- 바로가기 아이콘과 비슷
- 사용자가 많이 사용
- 긴 디렉토리명을 이동시 유용함 : /aa/bb/cc/dd 를 자주 이동 할 때 ln -s /aa/bb/cc/dd abcd 를 하게되면 cd abcd 를 하게되면 /aa/bb/cc/dd 로 이동 할 수 있다
- 윈본을 다른 곳으로 이동시키면 사용 못함
- 새로운 inode 를 생성
- 원본의 삭제시 링크가 끊긴다
- 파일시스템이 달라도 관계없다


하드 링크
: 링크 대상의 inode 와 같은 inode를 가리킨다.

- 동일한 inode 사용
- 원본 수정시 하드링크도 수정된다
- 원본 삭제시 살아 있다
- 원본의 이동이나 삭제시 남아 있음
- 동일한 파일시스템에만 적용됨
- 파일복사와 차이는 공간을 차지하지 않는다.


'Programming > Linux' 카테고리의 다른 글

시스템 정보 보기  (0) 2009.10.08
vi 사용( 명령어 )  (0) 2009.10.08
기본 명령어  (0) 2009.10.08
리눅스란?  (0) 2009.10.08
[Kernel 2.6]프로세스 스케쥴링  (0) 2009.09.22

설정

트랙백

댓글

기본 명령어

Programming/Linux 2009. 10. 8. 01:06
ls : 디렉토리에 있는 파일의 목록을 보여줌

ex )
ls : 현재 디렉토리의 파일 목록
ls /usr/bin : /usr/bin/ 디렉토리의 목록 - 절대 경로기 때문에 어디서 해든 관계없다.
ls -a : 현재 디렉토리의 목록( 숨김 파일 포함 )
          - .bash-profile 처럼 점이 앞에 있을 경우 숨김 파일이다
ls -l : 현재 디렉토리의 목록을 자세히 보여줌
ls *.txt : 확장자가 txt인 목록을 보여준다 - *.txt.* :a.txt.gz 같은 파일을 찾을 수 있다.
ls -l /usr/bin/a* : /usr/bin 디렉토리에 있는 목록중 앞글자가 a'a인 것의 목록을 자세히

옵션은 중복 지정 가능 하다 ( 예 : ls -al )



cd : 디렉토리 이동 명령어

ex )
cd : 사용자의 홈 디렉토리로 이동
cd ~john : john 사용자의 홈 디렉토리로 이동 ( 대개 /home/john/ )
cd .. : ".." 은 현 디렉토리의 부모 디렉토리를 의미
cd /usr/bin : "/usr/bin" 디렉토리로 이동( 절대 경로 )
cd /root -> cd ../usr/bin : 상대 경로로 이동 = cd /usr/bin
  - 부모 디렉토리로 갔다가 usr, bin 으로 이동



mkdir : 새로운 디렉토리를 생성
생성된 디렉토리는 명령어를 수행한 사용자의 소유가 된다.

ex )
mkdir abc : 현재 디렉토리 아래에 abc 라는 디렉토리 생성
mkdir -p def/fgh : 헌재 디렉토리 아래에 def 디렉토리를 생성하고, 그 안에 fgh 를 생성



touch

touch abc.txt - 파일이 없을 경우에는 빈 파일 생성하고 있을 경우에는 파일의 수정 날짜를 변경



rm : 파일이나 디렉토리 삭제 명령어
해당 파일이나 디렉토리에 삭제 권한이 있어야 한다( root 사용자를 제외 하고 )

ex )
rm abc.txt : 그냥 삭제
rm -i abc.txt : 삭제시 확인
rm -r abc : 디렉토리 삭제
rm -rf abc : abc 디렉토리와 그 하부를 강제로 전부 삭제
rm -ir abc : 디렉토리 삭제시 확인



mv : 파일과 디렉토리의 이름변경이나 위치이동 때 사용

ex )
mv aaa bbb ccc ddd : 이동. ddd는 디렉토리
mv abc.txt test.txt : 이름 변경



cp : 파일이나 디렉토리 복사 명령어
새로 복사한 파일은 사용자의 소유가 된다

cp abc.txt cba.txt : cba.txt가 새로 생성되면서 복사
cp -r abc cba : 디렉토리를 생성하고 복사




cat : 텍스트로 작성된 파일을 화면에 출력

ex )
cat abc.txt



more : 텍스트로 작성된 파일을 화면에 페이지 단위로 출력
space 키는 다음 페이지, b 는 앞 페이지

ex )
more abc.txt : 한페이지만 보여주고 멈춰있고, space와 b 를 눌러줘서 페이지를 옮기고, q 를 눌러서 종료.



ln : 링크를 만들어 준다

ex )
ln -s aaa.txt bbb.txt : 심볼릭 링크
ln aaa.txt bbb.txt : 하드링크

'Programming > Linux' 카테고리의 다른 글

vi 사용( 명령어 )  (0) 2009.10.08
파일의 링크  (0) 2009.10.08
리눅스란?  (0) 2009.10.08
[Kernel 2.6]프로세스 스케쥴링  (0) 2009.09.22
명령어( 폴더, 파일 관련 )  (0) 2009.09.19

설정

트랙백

댓글

리눅스란?

Programming/Linux 2009. 10. 8. 00:35
리눅스란 커널 자체를 말한다.( 커널 = 하드웨어와 소프트웨어의 연결다리 ) 그래서 이 자체만 가지고는 사용할 수 있는 사람이 적으므로, Linux 커널에다가 GNU S/W 와 X윈도우, 기타 Application 을 포함한 것을 리눅스 배포판 이라고 칭한다. 배포판에는 Red Hat, Ubuntu, SE 등이 있다.

리눅스 공개버전 과 상용버전 이 있는데, 둘의 차이는 없으나 상용버전을 사용하게 되면 서비스를 받을 수 있다고 한다. 일반적으로, 기업에서 사용을 한다고 한다.

커널소스 숫자
linux-x.y.z.tar.gz 형식
x : 주버전
y : 홀수 - 베타, 짝수 - 안정
z : 버그수정 횟수
숫자가 높을 수록 장치의 지원이 좋다.
www.kernel.org 에서 최신 커널 확인을 할 수 있다.

모놀로딕( monolithic-kernel ) 커널 : 자주 사용하는 요소는 커널에 포함하고, 자주 사용하지 않는 요소( 스캐너, 등등 )는 모듈로 작성하여 필요시 하다 호출.

'Programming > Linux' 카테고리의 다른 글

파일의 링크  (0) 2009.10.08
기본 명령어  (0) 2009.10.08
[Kernel 2.6]프로세스 스케쥴링  (0) 2009.09.22
명령어( 폴더, 파일 관련 )  (0) 2009.09.19
디버깅  (0) 2009.09.19

설정

트랙백

댓글