Linux Programming Basics 7

[Linux Programming] Process Related API

* 금오공과대학교 전준철 교수님 리눅스 프로그래밍 수업 6강 ~ 9강 정리 프로세스 생성과 종료 부모에서는 자식 PID 반환, 자식은 0을 반환 실패하면 -1을 반환 서로 완전히 다른 프로세스가 되지만 부모 자식간의 관계는 유지된다. 실행 환경은 부모나 자식이나 똑같다. 코드, 레지스터, 스택 등 물려받음. PC : Program Counter 복제가 되어버려서, 완전히 다른 독립적인 프로세스로서 활동. fork() 를 하면 pid 가 두개 생성 원하는 작업들을 분기 안에서 처리한다. path 는 경로, file 은 실행 파일 arg 는 전달 인자 리스트 argv 는 문자열 포인터 배열 형태, 반드시 마지막에 NULL문자열을 넣어야 함. 호출 성공하면 호출한 프로세스는 종료됨. ls -l subdir 과..

[Linux Programming ] File Related API

✨ Lecture 1 : 파일 시스템 시스템 API는 라이브러리 함수와 다르다는 점을 알아야 한다. 라이브러리 함수는 제조사에서 편리하게 사용자들이 이용하도록 만든 툴이다. 시스템 API는 운영체제를 베이스로 해서 만들어진 함수들이다. 제조사마다 시스템 API를 다르게 사용해 라이브러리를 만든다. 파일이란? 파일은 정보의 논리적 저장 단위이다. 운영체제는 FCB (File Control Block)을 유지하여 파일에 대한 정보를 저장한다. 운영체제에서 파일 시스템 제공 파일 시스템은 파일의 물리적 의미, 구조, 속성, 연산을 정의한다. 또한 논리적 파일을 물리적 보조 저장 장치에 매핑하는 알고리즘과 자료구조 등을 제공한다. 파일 시스템은 기본적으로 계층적 구조로 이루어져 있다. 파일의 Core - Chi..

Linux : File Management Commands

현재 디렉터리의 목록 보기 : ls * -a : 숨겨진 파일도 모두 나열한다. (보통 . 으로 시작한다) * -F : 끝 부분에 항목의 유형을 표시한다. / Directory = Socket @ Symbolic link * Executable File * -l : 파일의 상세 정보 표시 * -R : 서브 디렉토리 목록을 재귀적으로 보여준다. * -s : 파일의 크기를 블럭 수로 보여준다. 1블럭 = 1KB * 인자 : 파일 또는 디렉토리 이름 필드 의미 순서대로 * 파일의 모드(종류와 접근 권한) * 하드 링크의 개수 * 파일 소유권을 갖는 사용자 ID * 파일에 대한 권한을 지정할 수 있는 그룹 ID * 파일 크기 바이트 단위로 표시 * 파일 및 디렉토리가 최종 수정된 시간 파일의 형식 * d : 디렉..

Linux : Command Environment

* CLI, GUI, NUI (Natural User Interface) ... * NUI 는 사람의 동작을 이용해서 시스템을 제어하는 방법 * Shell : 사용자 명령 해석 및 실행. 우분투에서는 bash 가 기본. 명령 실행 구조 * 명령 행에서 명령어와 옵션 인자 입력 $ ls -la /usr/bin/a* 프롬프트, 커맨드, 옵션, 인자 인자값에 메타문자 사용 가능. ? : 1개의 임의의 캐릭터 * : 0개 이상의 임의의 캐릭터 도움말 보기 : `man` 입력. 특정 명령이나 표준 API에 대한 매뉴얼 출력 명령. script 명령어 현재 실행중인 내용을 그대로 기록할 수 있다. script [-a] [filename] * -a : 기존 파일에 덧붙임 * filename : 이름이 없으면 type..

Linux : History and Characteristics

리눅스의 정의 리눅스 커널에 기반한 UNIX 계열 운영체제의 통칭. 그렇다면 운영체제는? Unix 계열은 무슨 뜻? 리눅스 커널은 무엇인지에 대한 의문이 생길 것이다. 운영체제의 종류 운영체제는 크게 범용 운영체제와 특수 목적 운영체제로 나눌 수 있다. 범용 운영체제는 대부분의 사람들이 일반적으로 사용하는 운영체제이다. 하드웨어의 발전에 따라서 다음과 같은 순서로 발전해왔다. 1. 배치 시스템 : 한 번에 하나의 태스크만을 처리하는 시스템 2. 다중 프로그래밍 : 멀티 태스킹이 가능한 시스템 3. 시분할 시스템 : 시간을 태스크별로 분배해서 처리하는 시스템. 4. 개인용 컴퓨터 시스템 특수목적 운영체제에는 다음과 같은 종류가 있다. * 병렬 / 분산 시스템 * 실시간 시스템 * 내장형 / 휴대형 시스템 ..