2021/08 10

[ 리눅스 마스터 ] 6. 쉘

1. 쉘 커널과 사용자간의 다리역할. 명령을 해석하여 프로그램을 실행함. 커널과 분리된 프로그램이며 종류가 많음. - 가지고 있는 쉘 확인 : $SHELL, chsh -l, cat /etc/shells - 쉘의 변경 : ' chsh -s /bin/바꿀 쉘 "사용자이름" ' 2. 환경설정 환경변수 HOME : 홈 디렉터리 PATH : 실행파일을 찾는 경로 LANG : 기본 셸 언어 TERM : 로그인한 터미널 PWD : 현재 경로 SHELL : 로그인 셸 USER : 사용자명 PS1 : 프롬프트 변수 MAIL : 도착한 메일이 저장되는 경로 UID : 사용자ID 주요 환경변수 \d : 요일, 월, 일 형태로 날씨 출력 \h : 호스트 이름 \s : 사용중인 셸 시간 \t : 24시간 형태 현재 시간 출력 ..

OS/Linux 2021.08.13

[ 리눅스 마스터 ] 5. 파일 시스템

1. 파일 시스템 운엥체제가 파티션, 디스크 등 데이터를 읽고 쓰는 일련의 체제 파일 백업 및 복구 가능. 적절한 이동 필요. 인터페이스나 명령어 사용가능. 다른사용자와 공유하여 사용가능하며 명령로그를 기록함. 다양한 파일시스템 지원 2. 파일 시스템 구조 파티션 분할하여 포맷하여 파일시스템으로 사용함 부트블록 : 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어있는 영역 슈퍼블록 : 디스크에 대한 다양한 젖ㅇ보를 저장하고 있는 곳. (전체 블록의 수, 블록의 크기, 사용중인 블록의 수 등의 정보 저장) inode 리스트 : inode들을 모아놓은 곳. 한 블록에 여러 개의 inode를 저장함. inode는 파일에 대한 다양한 정보를 저장하는 곳으로 파일마다 하나씩 부여됨. 데이터블록 : 일반적..

OS/Linux 2021.08.13

[ 리눅스 마스터 ] 4. 부팅과 셧다운

1. 하드웨어 인식 단계 BIOS가 하드웨어를 점검하고 부팅 HDD를 점검함. 이후 MBR에 있는 부트 매니저 프로그램 실행하여 운영체제를 시작함. 메모리에 커널이 로드됨. 커널 매개변수를 지정하여 설정 및 변경이 가능함. 커널은 모듈을 사용함. (/etc/modeprobe.conf 파일로 부트 매니저 프로그램에 매개변수값을 바꿀 수 있음.) 2. 소프트웨어 구동 단계 루트파일 시스템을 읽기 전용 형태로 마운트하고 이상이 없으면 읽고 쓰는 형태로 다시 마운트함. 이 때 init 프로세스(/inittab) 생성됨. 해당 init프로세스가 소프트웨어 구동을 레벨별로 위임하여 운영체제를 동작시킴. /etc/inittab : 부팅과 관련된 실행레벨을 정의함. /etc/init/rcS.conf : 시스템 초기화 ..

OS/Linux 2021.08.13

[리눅스 마스터] 3. 디렉터리 구조 및 역할

1. 디렉터리 종류와 특징 디렉터리설명주요 내용/루트 디렉토리파일시스템의 최상위 디렉토리모든 디렉토리와 파일은 이 아래에 존재/bin바이너리 디렉토리기본 명령어 저장/boot부팅 파일부트로더(GRUB), 커널 이미지, 초기 RAM 디스크 (initrd) /dev장치 파일 디렉토리디스크, CPU, USB 등 하드웨어 인터페이스 제공/etc환경 설정 파일시스템, 애플리케이션 설정 파일 및 스크립트 저장/home사용자 홈 디렉토리사용자별 개인 파일 및 설정 저장/lib라이브러리 디렉토리실행 파일에 의존하는 필수 공유 라이브러리 저장/lost+found파일 복구 디렉토리복구된 파일 저장 (시스템 충돌이나 파일 손상 시 발생하는 파일들)/mnt임시 마운트 디렉토리임시 연결 (외부 장치나 원격 파일 시스템)/med..

OS/Linux 2021.08.06

[리눅스 마스터] 2. 리눅스 구조

1. Boot Manager기능하나의 컴퓨터에 다양한 O/S가 있을 경우, 특정 OS로 선택하도록 도와줌 위치MBRHDD의 맨 앞에 위치0번째 섹터512Byte부트매니저 프로그램 + 파티션 정보 저장BIOS가 MBR을 읽고, 부트 매니저를 로드하여 OS를 부팅함 GRUB기능여러 파일시스템 지원커널의 매개변수 조정 가능동적 부팅 지원 부팅 모드a: kernel과 관련된 매개변수를 추가할 수 있음 (grub.conf)e: 부팅 목록의 모든 항목 편집 가능 (grub.conf)c: 상호 대화식으로 명령어 입력 가능 환경설정 파일 (/boot/grub/grub.conf)boot: 부팅 되는 HDD 지정default: 전원을 켰을 때 기본적으로 부팅되는 운영체제를 설정하는 항목timeout: 메뉴 화면에서의 대기시간

OS/Linux 2021.08.06

[리눅스 마스터] 1. 하드웨어

1. 하드웨어자동으로 인식가능최신기기는 수동으로 등록 2. HDD InterfaceIDE (Integrated Drive Electronics)HDD와 컨트롤러가 통합된 형태의 인터페이스병렬 방식으로 데이터 전송 (Parallel ATA)저렴한 비용 / 높은 호환성느림 마운팅/dev/hda 에 됨 SCSI (Small Computer System Interface)서버와 워크스테이션에서 사용되는 고속 졍렬 인터페이스병렬 방식빠름 마운팅/dev/sda에 됨 SATA (Seiral Advanced Technology Attachment)직렬 데이터 전송 방식단일 케이블을 통해 데이터를 직렬로 전송PATA의 후속 기술빠름 마운팅/dev/sda 3. 네트워크 인터페이스EthernetLAN근거리 통신 규격IEEE..

OS/Linux 2021.08.06

[ Python : 동시성과 병렬성 문법 배우기 ] 3. Concurrency CPU Bound, I/O Bound

1. Concurrency 논리적인 개념 CPU의 가용성을 극대화함. 싱글코어에 멀티스레드 패턴을 사용함. 일정량을 처리 후 다음 작업으로 넘김. 제어권을 주고받으며 작업하는 패턴 (vs Parallelism) 물리적. 멀티코어. 별개의 작업 처리 후 합침 2. Blocking I/O vs Non-Blocking I/O Blocking I/O : 시스템 콜 요청시 커널 I/O 작업 완료시까지 응답을 대기함. 제어권을 커널이 소유. 응답전까지 대기(block) -> 다음 작업 수행 X Non-Blocking I/O : 커널 I/O 작업 완료 여부 상관없이 즉시 응답. 주기적으로 시스템 콜을 통해서 I/O 작업 완료 여부 확인 Async : I/O 작업 완료 여부에 대한 Noty는 커널에서 유저로 전달됨 S..

Python 2021.08.01

[ Python : 동시성과 병렬성 문법 배우기 ] 2. Parallelism with Multiprocessing

1. Process vs Thread, Parallelism Parallelism : 완전히 동일한 시점에 태스크를 실행함. 다양한 파트로 나누어서 실행. (합 나누어서 구하고 취합하기) 하나의 코어가 아님. 멀티 프로세싱을 사용함 동시성 1개의 싱글코어에서 멀티쓰레드. 번갈아가며 처리. 컨텍스트 스위칭이 빠름 병렬성 멀티코어에서 각자의 일 끝내고 합침. 2. Join, is_alive 'multiprocess.Process' 모듈 사용 프로세스를 생성할 수 있음. start() : 실행 terminate() : 종료시키기 join() : 자식프로세스 끝나기 전까지 기다린 후 종료하기 is_alive() : 프로세스 상태 출력 3. Naming, Parallel Processing 생성자의 첫번째 필드에..

Python 2021.08.01

[ Python : 동시성과 병렬성 문법 배우기 ] 1. Multithreading

* 이 포스팅은 인프런강의 "동시성과 벙렬성 문법 배우기" 강의를 듣고 공부한 내용의 포스팅임 1. Multithreading Difference between Process and Thread 프로세스 : 운영체제에서 할당 받는 자원 단위 cpu동작 시간, 주소 공간(독립적)을 할당받음. 파이프, 파일, 소켓으로 프로세스간 통신 (context switching) 스레드 : 프로세스 내 실행단위. 프로세스 자원 사용. stack만 별도이며 나머지는 공유함. 메모리를 공유하며 한 스레드가 다른스레드에 영향을 끼침 -> 동기화가 필요함 멀티 스레드 : 여러 스레드로 구성 후 처리. 교착상태 발생가능 자원 소모가 감소고 통신 부담도 적어지지만 디버깅이 어려움 멀티 프로세스 : 문제 시 프로세스를 죽임. 캐시..

Python 2021.08.01

[Python 고급] 2. Meta class

* 이 포스팅은 인프런의 "파이썬 고급 (필수문법+오픈소스 패키지 배포)" 강의를 듣고 공부한 포스팅임 1. Meta class 모든 클래스를 칭함 클래스를 생성하는 과정에서 커스텀하는 과정의 역할을 수행함 (프레임워크 작성 시 필수) 동적 생성 type : 모든 클래스의 원형이며 커스텀 생성 함수임. 검증에 자주 사용됨 (엄격하게 class 생성 과정에 영향을 받음) 2. type 동적 클래스 생성 type( name, bases(상속을 받을 클래스), dict(인스턴스 메소드, 필드 등 값 전달) ) -> 클래스가 생성됨 3. 메타클래스 상속 metaclass 속성 사용하여 커스텀 메타 클래스를 생성함. 타입 상속 __new__() : 클래스 인스턴스를 생성함 초기화 __init__() : 인스턴스 ..

Python 2021.08.01