셸이란 무엇인가? 우리가 PuTTY를 통해 date 명령어를 입력하면, 리눅스 내부에서는 다음과 같은 일이 일어난다.키보드로 입력한 date 문자열을 받아들인다.해당 명령어를 시스템에서 찾는다.발견한 명령어를 실행한다.실행 결과로 얻은 문자열을 화면에 출력한다.이 과정에서 주목할 점은 사용자가 date라는 명령어를 입력했다고 해서 리눅스 커널을 직접 조작한 것이 아니라는 점이다.리눅스에서는 사용자가 커널을 직접 조작할 수 없기 때문이다. 사용자와 커널 사이에는 명령어를 받아들이고, 커널의 실행 결과를 사용자에게 전달하는 역할을 수행하는 소프트웨어가 필요하다.이 소프트웨어가 바로 셸(Shell)이며, 사용자와 커널을 연결하는 인터페이스 역할을 수행한다. 일시적으로 셸 바꾸기 echo $SHELL 명령어를 ..
분류 전체보기
리눅스란 무엇인가?리눅스(Linux)는 1991년 리누스 토르발스가 개발한 UNIX 기반의 운영체제이다.가장 큰 특징은 오픈 소스 소프트웨어로, 누구나 소스 코드를 자유롭게 수정하거나 배포할 수 있다는 점이다.덕분에 운영체제의 내부 동작을 확인하기 용이하다.또한, 스크립트를 통해 많은 부분을 자동화할 수 있어 편리한 운영이 가능하다. 리눅스와 커널리눅스에는 배포판이라는 용어가 자주 등장하는데, 그 전에 커널에 대해 알 필요가 있다. 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 적재하고, 그렇지 않은 부분은 필요할 때 메모리에 적재하여 사용한다.이때 메모리에 상주하는 부분을 커널이라고 한다. 리눅스 배포판이란?리눅스 배포판(Linux Distribution)은 즉, 리눅스 커널과 함께 ..
1. Blocking (블로킹) vs Non-Blocking (논 블로킹) 위 두 개념은 어떤 하나의 함수가 어떻게 동작하는지에 관한 이야기다. 함수 A와 B가 존재한다고 가정하자. 또한, 함수 A가 함수 B를 호출한다.이때 함수 A가 어떻게 행동하는지에 따라 Blocking과 Non-Blocking이 결정된다.즉, 해당 개념과 함수 B는 아무런 관련이 없다. 어떠한 상황에서도 함수 A가 아무것도 하지 못하고 함수 B의 결과를 기다리는 상황이 바로 Blocking이다. 반대로 함수가 A가 다른 일을 하며 함수 B의 결과를 기다리는 상황은 Non-Blocking이다. 예를 들어, 함수 A는 주기적으로 함수 B의 상태를 확인하는 폴링 (Polling)을 수행하거나,함수 B로부터 작업이 완료되었다는 알림을 받..
웹 캐시 (Web Cache, HTTP Cache)는 불필요한 대역폭 낭비와 응답 지연을 방지하기 위해 데이터의 사본을 임시적으로 저장하는 기술이다. https://web.archive.org/web/20150923231812/http://www.cisco.com/web/about/ac123/ac147/ac174/ac199/about_cisco_ipj_archive_article09186a00800c8903.html Web Caching - The Internet Protocol Journal - Volume 2, No. 3 web.archive.org There are two types of Web caches a browser cache and a proxy cache. A browser cache ..