CS 13

[Linux] 시스템 모니터링

1. 시스템 모니터링 리눅스로 기본적인 로컬의 상태들을 확인하고 컨트롤 할 수 있어야 한다. 1-1) 명령어 uname 시스템과 커널의 정보를 확인 -a 옵션을 사용하면 커널 이름, 노드 이름, 커널 릴리즈, 커널 버전, 프로세서, 하드웨어 플랫폼, 운영 체제 정보 출력 top 전체 프로세스가 OS에 대해서 리소스를 어느정도 차지하고 있는가 출력 요약 영역에 나타나는 대표적인 내용은 시간, 유저, 로드 애버리지(Load Average), CPU가 수행하는 작업의 양을 순서대로 1분, 5분, 15분 간격의 평균값으로 표시 태스크(Tasks), ==process, 현재 프로세스들의 상태를 나타내주는 영역 CPU, CPU가 어떻게 사용되고 있는지 그 사용률, 유저 영역, 커널 여역, 우선순위 설정 등, 각 영..

CS/운영체제 2022.05.13

[Linux]환경변수&bash 스크립트

1. 환경변수 환경변수란, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임. 출처는 위키백과 이름 그대로 변수는 변수인데, os가 프로세스들을 생성할 때 참조하는 변수다. 더 쉽게 프로그램을 실행시킬 때 필요한 변수. export 이미 설정된 환경변수 확인 export [변수명]="[값]" 등호 표시 앞뒤로 공백 x 특히 path 설정시 중요 단, 이렇게 export로 줘버리면 시스템 재부팅, 로그아웃시 환경변수 값이 사라짐. 매번 다시 할당 필요 1-1) 환경변수의 영구 적용 ~/.bashrc 파일을 열어서 마지막줄에 원하는 동작을 추가 vscode 를 사용한다는 가정하에, 편집기 열어서 수정하는 명령어 code ~/.bashrc 해당 변수명의 값을 알려줌 echo $[값을 알..

CS/운영체제 2022.05.13

[Linux]nohup

1. nohup no hang up 리눅스, 유닉스에서 .sh 파일을 데몬형태로 실행시키는 프로그램 ✨ nohup으로 실행시키면 nohup.log 생성 데몬(daemon) 이란 서비스의 요청에 대해 응답하기 위해 오랫동안 실행중인 백그라운드(background) 프로세스. 유닉스(리눅스 포함) 운영체제에서 이름이 "d"로 끝나는 프로세스들이 대표적인데 inetd, httpd, nfsd, sshd, named와 lpd, containerd 등이 있다. d가 데몬을 뜻함. 2. 명령어 $nohup [실행하고싶은 프로그램 명령어] 단, nohup으로 실행시킬 파일은 반드시 chmod 755 how to redirection $nohup [실행하고싶은 프로그램 명령어] > [표준 출력을 쓰고싶은 파일명] 리다이..

CS/운영체제 2022.05.13

[web]웹 통신

INDEX 1. 클라이언트-서버 아키텍쳐 2. HTTP 통신 3. API 4. 브라우저 작동원리 5. URL & URI 6. IP 주소 & 포트 1. 클라이언트-서버 아키텍쳐 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 아키텍쳐. 위의 2단 아키텍쳐에 db를 따로 빼면 3-tier 아키텍쳐. 클라이언트는 리소스를 사용, 서버는 해당 리소스를 전달, db는 리소스를 저장하는 방식. 공통적으로 클라이언트가 인터넷을 통해서 서버에게 요청(Request) 하면 서버가 인터넷을 통해 클라이언트에게 응답(Response)한다. 이때, 인터넷을 통해 데이터를 주고받을 수 있도록 하는 규칙이 프로토콜. 프로토콜에는 몇 가지 종류가 있음 2. HTTP 통신 1번에서 서술한 인터넷을 통해 데이터를 주고받도록 하..

CS/네트워크 2022.02.17

[Linux]입출력, 표준 스트림

1. 표준 스트림 표준 스트림, 사실 리눅스에서 처음 배우는건 아니다. 프로그래밍 언어를 배우지 않고 바로 리눅스로 들어오는 경우는 잘 없으니까..?! c를 했다면 우린 이미 이걸 알고있다. 표준 입출력 이라는 이름으로 들어봤을 것이다. 그때 그 개념이랑 같다. 입력장치로부터 바이트 단위로 정보가 들어오면 프로그램이 처리해서 출력장치로 보내는 이 일련의 과정을 스트림이라고 표현할 뿐이다. 이게 프로그램 언어로 가면 표준 입출력이 되는거고, 유닉스 환경에서는 표준 스트림이다. + ) 이게 옛날에 어려웠던 이유는 각 디바이스 별로 설정이나 소통방식이 달랐던 것을 중간에서 조율해야하니 어려웠지만 그걸 os가 추상화 라는 개념을 도입해 디바이스를 파일로 관리하는 방식을 취해 쉬워졌다. 즉, 이것과 관련한 명령어..

CS/운영체제 2022.02.11

[Linux]패키지&프로세스

1. 패키지 윈도우에서 말하는 .zip, .msi 프로그램을 다운받고 실행시키려면 필요한 잡다한 파일들이 많은데 그걸 하나하나 따로 받기는 힘드니, 한번에 받을 수 있게 묶어놓는은것. 1-1. 구성 프로그램 파일 프로그램 설치 파일 프로그램 설치 설명서 프로그램에 대한 정보를 담은 파일 패키지 안에는 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축 그중에는 프로그램에 대한 정보를 담은 파일이 있는데, 프로그램 A를 설치하기 위해 프로그램 B가 필요하다는 정보도 함께 담겨있다. == 디펜던시 패키지를 이용해 프로그램을 설치하면, 패키지에 포함된 정보를 이용해 프로그램 B를 먼저 설치하고 나서 프로그램 A를 설치합니다. 1-2. 종류 소스 패키지 바이너리 패키지 1) 소스패키지 소스 코..

CS/운영체제 2022.02.10

[os]운영체제

전에 썼던 글 그대로 이사왔습니다. 혹시 타임라인이 안맞다면 그것 때문입니다. Reference -Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, http://pages.cs.wisc.edu/~remzi/OSTEP/ , chapter 04 Operating Systems: Three Easy Pieces Blog: Why Textbooks Should Be Free Quick: Free Book Chapters - Hardcover - Softcover (Lulu) - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy T-shirt -..

CS/운영체제 2022.02.10

[Linux] 리눅스 디렉토리 구조

리눅스 디렉토리 구조 정리ver. 다른 포스팅에 \, / 차이가 뭘까 궁금하다고 올렸는데 디렉토리 구조에 대해 공부하다 알았다. 윈도우 기준 \, 리눅스 기준 / 였다. 1. 디렉토리 구조 1) 트리 2) 대부분 리눅스 파일시스템 표준 "FSSTND" 준수 3) 디렉토리들의 구분 기준은 명령어의 종류, 성격, 사용 권한 등이 있음. 2. 디렉토리 종류와 특징 / : 최상위 디렉토리인 루트 디렉토리, 일반 데이터 저장 x +) /root랑 다르다 /bin : 기본 명령어들이 있는 디렉토리 /boot : 리눅스 부트로더 저장, /etc/lilo.conf에서 지정한 커널 부팅 이미지 파일들 위치 /dev : 시스템 장치 파일 저장, 연결된 장치들 정보 볼 수 있음. +) 왜 장치파일 인가 리눅스에 장치를 마운..

CS/운영체제 2022.02.09

[Linux]_CLI 기본명령어(2)

#2. 리눅스 운영체제(2)_텍스트편집 Today I Learned, 텍스트편집기 nano 앗...vim 쓸 줄 알았는데 nano를 쓴다고해서 당황했다. vim도 자유롭진않지만 그래도 써본거라 좀 덜 무서웠는데... 나노 열기 nano 다행이 vim이랑 큰 차이는 모르겠다. 명령어가 조금 다른것 같다. 혹시 nano를 실행했는데 저런 보조화면이 안나온다면 nano -c 아무래도 도와주는게 있으면 편하니까.. nano -m 파일명 이건 무려 마우스를 사용할 수 있게 해준다. 기본은 방향키 이동 ^O : write out 되어있는데, 파일 저장한다는 뜻. 저장할 파일명을 입력할 수 있고 디폴트는 최초파일명 ^X : 그냥 나가기. 저장안돼있으면 저장할지 Y,N로 물어봐준다. 친절쓰 *** 참고문헌 *** ht..

CS/운영체제 2022.02.09

[Linux]CLI 기본명령어

#2. 리눅스 운영체제(1)_CLI 기본 명령어 Today I Learned, 1. 리눅스 리누스 토발즈가 만든 오픈소스 운영체제. 공짜다. 그 종류로 데비안, 우분투, 레드햇,,, 가계도를 찾아보면 어마무시하게 다양하다. 애초에 오픈소스이기 때문에 원한다면(할 수 있다면) 커스터마이징한 나만의 리눅스를 가질 수도 있기 때문이다. 하지만 난 그런 거 못하기 때문에 공식문서 잘되어있고 소스많은 우분투 써야지! 듀얼부팅같은 것도 어려우니까 가상머신써야지! +) 흔히 운영체제니까 데스크탑위주 시장에서 사용되는 것 같지만 물론 맞다. 맞는데, 안드로이드 역시 모바일 시장에서 리눅스 커널을 사용한다. 최근에 핫해진 이유는 클라우드, 웹서버 이런데서 사용하다보니 맞물려서 인기가 늘어난 것 같다. 대학생때 이걸 만들..

CS/운영체제 2022.02.09