Solaris 10 ps command 전체 출력
·
Linux
Solaris 10 ps command 전체 출력 Solaris 10 (SunOS 5.1) 에서 겪은 ps 명령어에 관련된 메모이다. ps 명령어를 통해 CMD를 보고 싶을 경우, 터미널의 글자 수 제한 설정 때문에 상세 내용을 전부 볼 수 없다. OS 종류 및 버전에 따라 ps 지원 옵션이 다르기 때문에, 흔히 사용하는 -x , -ww 옵션을 사용할 수 없었다. 해결 완벽한 해결책은 아니지만, CMD를 봐야 하는 상황에서 다음 명령어를 통해 ps 컬럼들을 볼 수 있다. $ pargs 참고 https://unix.stackexchange.com/questions/3934/how-can-i-get-a-full-process-list-in-solaris-without-truncated-lines
실습과 그림으로 배우는 리눅스 구조 학습 내용
·
Linux/Linux Structure
실습과 그림으로 배우는 리눅스 구조 학습 내용 실습과 그림으로 배우는 리눅스 구조 - 타케우치 사토루 Contents Chapter 1. 컴퓨터 시스템의 개요 Chapter 2. 사용자 모드로 구현되는 기능 Chapter 3. 프로세스 관리 Chapter 4. 프로세스 스케줄러 Chapter 5. 메모리 관리 Chapter 6. 메모리 계층 Chapter 7. 파일시스템 Chapter 8. 저장 장치 실습 환경 Surface Pro 7 - Microsoft CPU : 인텔® 코어™ i5-1035G4 프로세서 (6M 캐시, 최대 3.70GHz) 주요 정보 제품 컬렉션 10세대 인텔® 코어™ i5 프로세서 코드 이름 이전 제품명 Ice Lake 수직 분야 Mobile 프로세서 번호 i5-1035G4 상태 L..
Chapter 8. 저장 장치
·
Linux/Linux Structure
Chapter 8. 저장 장치 HDD의 동작 방식 HDD는 플래터platter라고 불리는 자기 장치에 데이터를 자기 정보로 기록하는 저장 장치이다. 데이터는 섹터sector라는 단위(512바이트 or 4KiB)로 읽고 쓴다. 섹터는 동심원 모양으로 원의 중심부터 바깥 방향으로 분할되어 있다. 플래터의 섹터 데이터를 읽으려면, 먼저 스윙 암을 움직여서 자기 헤드를 플래터의 위로 이동시키고, 그 다음 플래터를 회전시켜 자기 헤드를 목적 섹터의 바로 위에 오도록 한다. HDD로의 데이터 전송 흐름은 다음과 같다. 디바이스 드라이버가 데이터를 HDD에 전달한다. (섹터 번호, 섹터 개수, 읽기 쓰기 등) 스윙 암을 이동시키고 플래터를 회전시켜 자기 헤드를 섹터 위에 위치시킨다. 데이터를 읽거나 쓴다. 2, 3번..
Chapter 7. 파일시스템
·
Linux/Linux Structure
Chapter 7. 파일시스템 리눅스의 파일시스템 리눅스의 파일시스템에서는 데이터를 저장하는 일반 파일이 있고, 디렉터리directory는 일반 파일이나 다른 디렉터리를 보관할 수 있다. 이는 트리 구조로 되어있다. 리눅스 파일시스템은 ext4, XFS, Btrfs 등 여러가지가 존재하고, 각 파일시스템은 다룰 수 있는 파일의 사이즈, 파일시스템 사이즈, 파일 작성이나 삭제 및 읽기 쓰기의 처리 속도 등이 모두 다르다. 하지만 다음 시스템 콜을 통해 통일된 인터페이스로 접근할 수 있다. 시스템 콜 동작 creat(), unlink() 파일 생성, 삭제 open(), close() 파일 열기, 닫기 read() 파일로부터 데이터 읽기 write() 파일에 데이터 쓰기 lseek() 파일의 특정 위치로 이동..
Chapter 6. 메모리 계층
·
Linux/Linux Structure
Chapter 6. 메모리 계층 캐시 메모리 컴퓨터의 기본적인 동작 흐름 메모리에서 레지스터로 데이터를 읽는다. 레지스터의 데이터로 계산한다. 계산 결과를 메모리에 쓴다. 요즘의 하드웨어는 레지스터에서 계산하는 시간(위에서 2)보다 메모리에 접근하는 데 걸리는 시간(1, 3)이 훨씬 느리다. 따라서 1, 3의 느린 속도때문에 병목 현상이 생겨서 전체적인 레이턴시가 증가한다(느려진다). 캐시 메모리는 레지스터와 메모리 사이에서 중간 역할을 하여 1, 3의 속도를 고속화한다. 일반적으로 CPU에 내장되어 있지만, CPU 바깥에 있는 캐시 메모리도 존재한다. 또한 일부 경우(특정 타이밍에 커널이 캐시를 파기하는 등)를 제외하면, 캐시 메모리의 처리는 하드웨어에서 처리된다. 캐시 메모리 동작 과정 메모리에서 먼..
Chapter 5. 메모리 관리
·
Linux/Linux Structure
Chapter 5. 메모리 관리 메모리 통계 정보 free free 명령어로 메모리에 대한 정보를 알 수 있다. (단위 : KiB) $ free total used free shared buff/cache available Mem: 7729028 1552460 4177240 536648 1999328 5375580 스왑: 2097148 0 2097148 total : 시스템의 전체 메모리 용량 free : 표기 상 이용하지 않는 메모리 (available - buff) buff/cache : 버퍼 캐시, 페이지 캐시가 이용하는 메모리. free 필드의 메모리가 부족하면 커널이 buff/cache 메모리를 해제하고 할당해준다. available : 실질적으로 사용할 수 있는 메모리. free + buff/..
Chapter 4. 프로세스 스케줄러
·
Linux/Linux Structure
Chapter 4. 프로세스 스케줄러 프로세스 스케줄러는 여러 프로세스를 타임 슬라이스 방식으로 번갈아 처리한다. CPU는 한번에 하나의 프로세스만 처리할 수 있다. 시스템에서 CPU로 인식하는 것을 논리 CPU라고 하며, 하이퍼스레딩이 적용된 경우 각 하이퍼스레드가 논리 CPU로 인식된다. 테스트 프로그램으로 작동 방식 확인하기 알고자 하는 정보 논리 CPU가 특정 시점에 어떤 프로세스를 실행 중인가 각 프로세스의 진행률 테스트 프로그램 사양 명령어 라인 파라미터(nproc, total, resolution) 파라미터 설명 nproc 동시 동작 프로세스 수 total 프로그램이 동작하는 총 시간[ms] resolution 데이터 수집 시간 간격[ms] 각 프로세스의 동작 방식 CPU 시간을 total ..
Gnuplot
·
Linux/Linux Structure
Gnuplot 그래프를 그리는 툴로 유명한 gnuplot을 살짝 사용해보았다. 설치 우분투 20.04 기준, 패키지 매니저로 설치할 수 있다. $ sudo apt install -y gnuplot 사용법 기본 조작 다음과 같이 함수를 통해 출력할 수 있다. $ gnuplot G N U P L O T Version 5.2 patchlevel 8 last modified 2019-12-01 Copyright (C) 1986-1993, 1998, 2004, 2007-2019 Thomas Williams, Colin Kelley and many others gnuplot home: http://www.gnuplot.info faq, bugs, etc: type "help FAQ" immediate help: t..
Chapter 3. 프로세스 관리
·
Linux/Linux Structure
Chapter 3. 프로세스 관리 프로세스 생성의 목적 목적 1 : 같은 프로그램의 처리를 여러 프로세스가 분산해서 처리 (웹 서버의 리퀘스트 처리 등) 목적 2 : 전혀 다른 프로그램 생성 (bash에서 여러 프로그램 실행 등) 위의 작업을 할 때 fork() 함수와 execve() 함수가 호출되며, 내부적으로는 clone() 과 execve() 시스템 콜이 호출된다. fork() 함수 실행 중인 프로세스에서 자식 프로세스를 생성한다. 프로세스 생성 순서 자식 프로세스용 메모리 영역을 작성하고 부모 프로세스의 메모리를 복사한다. fork() 함수의 리턴 값이 다른 것을 이용하여 코드를 분기한다. fork.c 프로그램 예제 프로세스를 새로 만든다. 부모 프로세스는 자신의 PIDProcess ID와 자식 ..
Chapter 2. 사용자 모드로 구현되는 기능
·
Linux/Linux Structure
Chapter 2. 사용자 모드로 구현되는 기능 시스템 콜 프로세스는 커널의 도움이 필요한 경우 (프로세스 생성, 하드웨어 조작 등) 시스템 콜을 통해 커널에 처리를 요청한다. 시스템 콜의 종류 프로세스 생성, 삭제 메모리 확보, 해제 프로세스 간 통신 (IPC) 네트워크 파일시스템 다루기 파일 다루기(디바이스 접근) CPU의 모드 변경 프로세스는 유저 모드(사용자 모드)에서 실행되다가, 시스템 콜을 호출하면 CPU에서 인터럽트 이벤트가 발생한다. 이 인터럽트 이벤트가 발생하면 CPU는 커널 모드로 변경되어 동작하고, 처리가 끝나면 다시 유저 모드로 변경된다. 커널은 이 요청을 처리하기 전에 요구 사항의 유효성을 검사하여, 유효하지 않은 요청의 경우 시스템 콜을 실패했다고 처리한다. ex. 메모리를 허용..
리눅스 sar 명령어
·
Linux/Linux Structure
리눅스 sar 명령어 System Activity Report 시스템을 모니터링할 때 사용되는 명령어이다. -P 옵션 processor를 의미한다. $ sar -P CPU번호 주기(초) 일정 주기(초)마다 해당 코어의 활동을 볼 수 있다. $ sar -P 0 1 # 0번 프로세서에 대한 정보를 1초마다 확인 Linux 5.11.0-27-generic (ubun2-GL63-8RC) 2021년 09월 06일 _x86_64_ (8 CPU) 01시 02분 52초 CPU %user %nice %system %iowait %steal %idle 01시 02분 53초 0 5.05 0.00 2.02 0.00 0.00 92.93 01시 02분 54초 0 4.95 0.00 1.98 0.00 0.00 93.07 01시 02..
Chapter 1. 컴퓨터 시스템의 개요
·
Linux/Linux Structure
Chapter 1. 컴퓨터 시스템의 개요 프로그램 컴퓨터 시스템이 동작할 떄 하드웨어에서 다음의 순서가 반복된다. 입력 장치 또는 네트워크 어댑터를 통해 처리 요청이 들어온다. 메모리의 명령을 읽어 CPU를 실행하고 결과를 다시 메모리에 기록한다. 메모리의 데이터를 저장 장치에 기록하거나 네트워크를 통해 전송, 혹은 디스플레이에 출력하여 처리한다. 프로그램 위의 과정을 반복하여 사용자에게 필요한 하나의 기능으로 정리한 것이다. 종류 애플리케이션 : 사용자가 직접 사용한다. 오피스 프로그램이나 스마트폰의 앱 등이 있다. 미들웨어 : 여러 애플리케이션이 공통으로 사용하는 처리를 묶어서 애플리케이션의 실행을 도와준다. 웹 서버, 데이터베이스 등이 있다. 운영체제(OS) : 하드웨어를 직접 조작하여 애플리케이션..
SSH 접속 시 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
·
Linux/Error
SSH 접속 시 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key h..
우분투 oh-my-zsh 설치
·
Linux
우분투 oh-my-zsh 설치 설치 기본 셸을 zsh로 변경해준다. $ chsh -s $(which zsh) # change shell https://github.com/ohmyzsh/ohmyzsh 에 가이드된 명령어를 복사해서 설치한다. Method Command curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" fetch sh -c "$(fetch -o - Intergrated: Font Family가 뜨는데, 거기에 위에서 설치한 'Ubuntu Mono', 'PowerlineSymbols'를 입력한다. (작은 따옴표까지) 재시작하면 폰트가 적..
VSCode Remote-SSH 플러그인 에러
·
Linux
VSCode Remote-SSH 플러그인 에러 갑자기 VSCode로 원격 접속이 안되면서 The process tried to write to a nonexistent pipe 에러가 발생했다. VSCode 설정에서 Remote-SSH 부분의 Config File을 설정해주니 파일이 생성되면서 해결되었다. 참고 https://stackoverflow.com/questions/60335069/vscode-remote-connection-error-the-process-tried-to-write-to-a-nonexistent-pipe
Vim
·
Linux
Vim Vim에서 방향키가 제대로 작동하지 않을 때 vim으로 편집하는데, 방향키가 제대로 적용이 안된다면 다시 설치해야 한다. sudo apt install vim -y Vim에서 클립보드 사용 Vim으로 편집할 때 클립보드로 복사가 안되는 현상이 있었다. vi --version | grep clip으로 확인하면 -clipboard라고 나온다. vim-gtk를 설치하면 된다. sudo apt install vim-gtk -y