Linux 기초 및 구조체의 메모리 구조
학습목표 - 구조체가 메모리에 어떻게 저장되는지 이해한다.
Lesson 4. 디렉토리와 파일




디렉토리와 디렉토리 안에 들어있는 파일들.
etc: 패스워드 파일, 쉐도우 파일, 리눅스 파일 설정 파일
proc: 프로세스들이 파일 형태로 저장되는 디렉토리
root: 루트의 홈 디렉토리가 저장되는 곳
var: 시스템 운영 중에 생성되는 임시 파일과 외부 접속에 대한 로그파일 저장
bin: 기본적인 실행 파일
tmp: 누구나 파일을 올릴 수 있는 작업공간
home: 일반 사용자들의 아이디와 그들의 작업공간
네트워크
나무 줄기에서 여러 가지가 뻗어나가듯 하나의 중앙과 가지식으로 연결된 모양을 스타형, 방사형이라고 한다.
근거리 네트워크(LAN: Local Area Network)
이더넷(Ethernet)은 LAN을 위해 개발된 네트워크 기술로, ‘이더넷’이라는 이름은 빛의 재질로 여겨졌던 에테르(ether)에서 유래되었다.
광역 네트워크(WAN: Wide Area Network)은 근거리 네트워크의 상위 개념이다.
인터넷(Internet)은 광역 네트워크에 상위 개념이다.
데이터를 외부로 송출하기 위해서는 데이터의 통로인 게이트웨이의 주소를 알 필요가 있다. 통상적으로 게이트웨이의 주소는 마지막 자리에 1을 넣고 브로드캐스트는 255를 사용한다.
때문에 1번과 255는 IP로 할당되지 않는다.
C언어


구조체의 이름은 생략 가능하다!
ex)
typedef struct simple
{
. . .
} SoSimple;
다시 linux로 넘어가서...





p/460 예제


명령어 cat은 concatenate의 약자로써 파일의 속 내용을 출력하는 기능을 한다.











stack구조에서 메모리의 위치는 아래서부터 위로 차고 올라오는 구조를 가진다.
하지만 배열에서는 해당메모리를 잡아놓고 위에서부터 차고 내려오게 된다.
컴파일러의 처리용량이 어떻느냐에 따라서 메모리에 데이터가 저장되는 모양이 결정된다.
32bit의 경우 4byte가 데이터 처리의 기준이다. 4byte기본 처리 단위에서 char가 선언된 후에 short 변수가 선언되면 중간에 1byte가 비게 되는 현상이 발생한다.

/*** memory.c ***/
#include <stdio.h>
typedef struct { int A; char B; short C; int D; char E; short F; char G; int H; //여기까지 24byte
char I,J; short K;
} smart;
int main(void)
{ printf("smart의 크기는 [%d]입니다.\n", sizeof(smart));
return 0;
} |