OS/Linux 7

[실습과 그림으로 배우는 리눅스 구조] 2. 사용자 모드로 구현되는 기능

다케우치 사토루 님의 "실습과 그림으로 배우는 리눅스 구조" 책을 정리한 포스팅 입니다. 1. 시스템 콜사용자 프로그램이 커널의 기능을 사용하기 위해 요청하는 인터페이스하드웨어 관련 작업을 요청함 (프로세스 생성, 파일 열기, 네트워크 통신, 메모리 할당 등)⚠️ 사용자 프로그램은 직접 하드웨어를 접근할 수 없음 (커널 권한 필요) 종류기능시스템 콜프로세스 실행execve()프로세스 생성fork()파일 열기open()파일 쓰기write()메모리 할당brk(), mmap()네트워크socket() 발생 과정사용자 프로그램이 시스템 콜 호출 (write(), open() 등)내부에서 syscall 명령어 호출 (어셈블리어)소프트웨어 인터럽트 발생CPU 모드 전환 (사용자 → 커널)커널 작업 수행사용자 모드로 ..

OS/Linux 2026.02.26

[ 리눅스 마스터 ] 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. 하드웨어 인식 단계POST: BIOS가 하드웨어를 점검하고 부팅 HDD를 점검함.부트 매니저 실행: MBR에 있는 부트 매니저 프로그램 실행하여 운영체제를 시작함.커널을 메모리에 로드initramfs 로드커널에게 제어권이 넘어감 2. 소프트웨어 구동 단계커널 실행 (vmlinuz)CPU, 메모리 초기화장치 드라이버 준비루트 파일 시스템 마운트 준비initramfs 실행 (루트파일 시스템이 LVM, RAID, 암호화 위에 있는 경우)필요한 드라이버 로드실제 루트 파일 시스템 마운트Init 프로세스 시작 (systemd)소프트웨어 구동을 레벨별로 위임하여 운영체제를 동작시킴. 표) 설정 파일더보기/etc/inittab : 부팅과 관련된 실행레벨을 정의함./etc/init/rcS.conf : 시스템 초기..

OS/Linux 2021.08.13

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

1. 디렉터리 구조 및 역할디렉터리설명주요 내용예시/루트 디렉토리파일시스템의 최상위 디렉토리 /bin바이너리 디렉토리기본 명령어 저장ls, cp, mv, cat/boot부팅 파일부팅 관련 파일 저장/boot/vmlinuz-* (커널 이미지)/boot/initramfs-* (초기 RAM)/boot/grub/ (부트로더 설정 파일)/dev장치 파일 디렉토리하드웨어 인터페이스 제공/dev/sda (디스크)/dev/sdb (USB)/etc환경 설정 파일시스템, 애플리케이션 설정 파일 및 스크립트 저장/etc/passwd (사용자 정보)/etc/shadow (암호 정보)/etc/group (그룹 정보)/etc/fstab (부팅 시 마운트 정보)/etc/profile (로그인 초기 정보)/home사용자 홈 디렉토리..

OS/Linux 2021.08.06

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

1. BIOS컴퓨터 전원을 켰을 때 가장 먼저 실행되는 펌웨어 프로그램하드웨어 점검 및 운영 체제 부팅 준비 역할메인 보드의 ROM 칩에 저장되어 있음 (OS와 무관하므로 반드시 실행 가능) 2. Boot Manager하나의 컴퓨터에 다양한 O/S가 있을 경우, 특정 OS로 선택하도록 도와줌HDD의 맨 앞에 위치 (MBR)✅ 부트매니저 프로그램 + 파티션 정보 저장➡️ BIOS가 MBR을 읽고, 부트 매니저를 로드하여 OS를 부팅함 GRUB리눅스의 대표적인 Boot Manager여러 파일시스템 지원커널의 매개변수 조정 가능동적 부팅 지원 표) 환경설정 파일더보기/boot/grub/grub.confboot: 부팅 되는 HDD 지정default: 전원을 켰을 때 기본적으로 부팅되는 운영체제를 설정하는 항목t..

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