IT

'소프트웨어/Linux'에 해당되는 글 21건

  1. 2011.07.28 fopen, open의 차이점
  2. 2011.07.28 [파일 입출력] 고수준, 저수준
  3. 2011.07.09 오브젝트 파일 형식 (Object File Formats)
  4. 2011.06.17 메모리구조
  5. 2011.06.15 kernel

fopen:고수준,버퍼를 사용한다. 속도가 느리다. 효율이 좋다.
      struct file의 주소를 반환함
fclose 함수를 호출해야지 OS에서 버퍼에 남아있는 데이터를
디스크에 기록한다.

open:저수준,버퍼를 사용하지않는다.(바로 처리) 속도가 빠르다.
     효율은 안좋다. struct file의 인덱스 번호를 반환한다.

'소프트웨어 > Linux' 카테고리의 다른 글

메모리 영역  (0) 2011.07.28
부팅 과정  (0) 2011.07.28
[파일 입출력] 고수준, 저수준  (0) 2011.07.28
오브젝트 파일 형식 (Object File Formats)  (0) 2011.07.09
메모리구조  (0) 2011.06.17
Posted by sinpk

  

고수준

저수준

stdin

0

Stdout

1

Stderr

2

FILE*

INT

 

고수준

FILE *fp = fopen("파일명","모드");

Fclose,fread,fwrite

 

고수준에서의 임의 접근

Ftell,fseek

 

저수준

Int fd = open("파일명",모드);

Close,read,write

 

저수준에서의 임의 접근

tell, lseek

'소프트웨어 > Linux' 카테고리의 다른 글

부팅 과정  (0) 2011.07.28
fopen, open의 차이점  (0) 2011.07.28
오브젝트 파일 형식 (Object File Formats)  (0) 2011.07.09
메모리구조  (0) 2011.06.17
kernel  (0) 2011.06.15
Posted by sinpk

Executable Formats

  • a.out - 현재는 사용되지 않지만(?) 디폴트 실행 파일명으로 친숙한 이름
  • COFF - SVR3, 공유 라이브러리, C 디버깅 정보, 섹션 구조.
  • Portable Executable - 윈도 실행파일 형식, 뿌리는 COFF
  • ELF(Executable and Linkable Format)- 다수의 UNIX, Linux에서 사용중. COFF보다 유연한 구조

Linkers

ELF (Executable and Linking Format)

Debugging Formats

'소프트웨어 > Linux' 카테고리의 다른 글

fopen, open의 차이점  (0) 2011.07.28
[파일 입출력] 고수준, 저수준  (0) 2011.07.28
메모리구조  (0) 2011.06.17
kernel  (0) 2011.06.15
[MAC OSX] port 명령어  (0) 2011.05.21
Posted by sinpk

메모리구조

2011. 6. 17. 14:35 : 소프트웨어/Linux

코드영역 - 기계어 + 상수(Read)

BSS     - 전역변수(R/W)

DATA   - 전역변수(R/W)

heap    - 동적할당(R/W)

Stack    - 지역변수(R/W)


함수 주소 - 코드 영역

문자열    - 코드 영역

상수      - 코드 영역


16비트 cpu

intel 기준

ip

명령어 해석 레지스터

amd/기타 기준

pc

명령어 해석 레지스터


32비트 cpu

intel 기준

eip

명령어 해석 레지스터

amd/기타 기준

epc

명령어 해석 레지스터


ip레지스터에 함수주소를 넣어주면

함수가 실행된다.


문자열의 따옴표 타입 -> const char *

printf("하이\n"); -> printf(const char *) 타입


가변인자(printf)

반환 함수명(기존 타입,...)

va_list


            char carray[] = { 'a','b','c' };

3byte XXX Stack(R/W) | 3byte a,b,c Code (R)  - 총 6바이트 소모


char astring[] = { 'a','b','c','\0' };

char bstring[] = "abc";


astring 과 bstring의 메모리 동작은 동일하다 (R/W)

둘다 8바이트를 소모한다.


                char *cstring = "abc";

4byte XXXX Stack(R/W) | 4byte a,b,c,\0 Code (R) - 8바이트 소모

*cstring 변수를 통해서 값을 변경하게 된다면

실제 연결되어 있는 문자열의 위치는 Code영역이라서

수정할 수 없기 때문에 에러가 발생하게 된다.


'소프트웨어 > Linux' 카테고리의 다른 글

[파일 입출력] 고수준, 저수준  (0) 2011.07.28
오브젝트 파일 형식 (Object File Formats)  (0) 2011.07.09
kernel  (0) 2011.06.15
[MAC OSX] port 명령어  (0) 2011.05.21
USB util 컴파일하기  (0) 2011.05.21
Posted by sinpk

kernel

2011. 6. 15. 17:44 : 소프트웨어/Linux

xp windows -> kernel + App

kernel : 하드웨어와 밀접하게 관련되어 있다

Shell을 통해서 실행

Linux

Windows

Shell

Dos

쉘 스크립트

배치파일(bat)

'소프트웨어 > Linux' 카테고리의 다른 글

오브젝트 파일 형식 (Object File Formats)  (0) 2011.07.09
메모리구조  (0) 2011.06.17
[MAC OSX] port 명령어  (0) 2011.05.21
USB util 컴파일하기  (0) 2011.05.21
makefile  (0) 2011.05.11
Posted by sinpk