리눅스6 ramdisk(initrd, initramfs) ramdisk 이전에 설명한 루트 파일 시스템을 마운트하기 전, 임시로 RAM을 disk로 사용하여 최소한의 기능만을 가진 initrd(initial RAM disk)가 마운트 되어 커널 부팅 프로세스의 일부로 실행됨. 부트로더는 커널과 ramdisk를 load하고, 커널에게 ramdisk에 대한 정보를 전달 함(메모리 내 위치 정보). 커널은 initrd를 마운트 하고 linuxrc가 실행되어 리눅스 부팅 초기화를 실행 함. 이와 같이 초기 부팅 과정을 따로 분리함으로써 최소한의 커널 드라이버와 기능을 가지고 insmod를 통해 커널 모듈을 동적으로 loading 할 수 있는 장점과 동적으로 파일 시스템(ext4, etc...)을 마운트 하는 등 부팅 과정에서 유연한 구성이 가능해 짐. 이후 실제 루트.. 2023. 12. 28. Root File System Root File System 리눅스 부팅 간 커널 부팅 이후에 시스템 초기화 및 저장장치나 각종 device를 제어하기 위한 시스템 프로그램이 필요함. 이러한 프로그램들은 디스크 장치에 저장되어 있으며, 리눅스에서는 이를 파일 형태(File System)로 처리하는데, 이를 Root File System이 담당함. 리눅스 디렉토리 조회 시 최상위에 '/'형태로 root가 저장장치에 연결되어 있고, 해당 저장장치에는 리눅스 부팅 동작을 수행하기 위한 기능들이 저장되어 있음. Shell과 같은 시스템 프로그램을 통해 커널과 interaction을 통해 동작 RFS Directory 생성 rfs를 구성하는 기본적인 디렉토리는 다음과 같다. /dev /proc /bin /etc /lib /usr /tmp 2023. 12. 28. [Case] 특정 프로세스가 실행되고 있는지 확인하는 script 특정 프로세스가 실행되고 있는지 확인을 위한 스크립트 ps 명령어를 통해 현재 실행되고 있는 프로세스 정보를 출력한다음, grep을 통해 원하는 프로세스를 검색 while true do check=`ps -ef | grep "sampleApp" | grep -v "grep"` if [ "$check" != "" ]; then echo sampleApp Running sleep 0.1 else echo sampleApp Quit break fi done 2022. 9. 14. User Space와 Kernel Space User Space와 Kernel Space 응용 프로그램은 유저 영역에서, 커널 모듈은 커널 영역에서 실행 됨. 이와 같이 메모리 영역을 나눔으로서 응용 프로그램이 OS가 load되어 있는 커널 영역에 침범하여 시스템에 critical한 에러 등을 발생시키는 일을 방지. 커널 영역에 접근하기 위해서는 커널 모드(or 관리자 모드)로 전환되어야 함 System Call(시스템 콜) 위와 같은 이유로 인해 응용 프로그램에서 H/W나 커널의 리소스에 접근하여 사용할 수 있도록 System Call 방식을 이용 응용프로그램이 직접 커널의 기능을 호출할 수 없으므로 커널은 유저공간에 추상화된 인터페이스인 System Call을 제공하며 이를 통해 유저 영역에서 커널 기능을 호출. 시스템 콜이 호출 되면 유저 모.. 2022. 8. 17. [cmd] sed Description GUI기반의 편집기인 vi처럼 CLI(Command Line Interface)기반으로 파일을 인자로 받아 명령를 통해 작업을 진행한 후, 화면에 출력하는 방식 명령어로서, 원본을 직접 수정하지 않고 수정한 결과를 출력해주는 역할의 명령어 Pattern space와 Hold space sed명령어는 동작시 내부적으로 2개의 Work Space를 사용하는데, 이 두 버퍼를 Pattern Space(Pattern Buffer)와 Hold Space(Hold Buffer)라고 함 Pattern space: 입력 스트림을 통해 읽어들인 라인 한 줄이 저장되는 공간으로서 수정, 출력 등의 명령이 적용(처리)되는 공간 Hold space: 임시 저장공간으로서 수정 명령 등의 영향을 받지 않아 .. 2022. 3. 15. Console, Terminal, TTY Console 컴퓨터를 조작할 때 사용하는 입출력 장치를 콘솔이라하며, 이에 대하여 조작이나 명령을 위한 프로그램을 콘솔프로그램이라고 하는데 대개 콘솔이라는 명칭으로 많이 사용한다. Terminal 터미널은 콘솔의 한 종류로서 UI기반으로 입출력 장치를 사용하기 위한 프로그램 TTY tty도 콘솔의 한 종류로서 OS에서 제공하는 가상의 콘솔이며, 실제 물리적으로 장치에 연결된 것이 아니기 때문에 커널에서 터미널을 emulation 함 리눅스에서는 tty명령어를 통해 현제 사용중인 터미널 정보를 출력한다. -bash-4.2$ tty /dev/pts/69 Single mode 콘솔로 접근하였을 경우 /dev/tty/으로 출력되며, X window나 ssh, telnet 등 원격으로 접속하게 되면 /dev/p.. 2022. 3. 10. 이전 1 다음 728x90