UNIX 계열 시스템에서 쉘은 사용자와 커널 사이를 잇는 인터페이스이자 명령어 해석기이다. 사용자가 입력한 명령을 해석해 실행하고, 반복 작업을 위한 스크립트를 돌리고, 초기화 파일로 사용자 환경을 설정한다. Bash, Zsh, Csh처럼 여러 종류가 존재한다. 반면 프로세스 생성, 메모리 할당, 입출력 장치 제어 같은 자원 관리는 커널이 맡는다. 쉘은 이 서비스를 호출할 뿐 직접 관리하지 않는다.
변수의 범위도 구분해야 한다. 사용자가 만든 일반 변수는 export를 하지 않으면 현재 쉘에서만 통하고 자식 프로세스에는 전달되지 않는다. export는 변수를 자식 프로세스로 넘겨 전역처럼 쓰이게 하는 설정 명령어이고, 변수 값을 화면에 보는 일은 echo가 맡는다. export를 인자 없이 실행하면 현재 환경변수 목록을 출력한다.
환경 변수를 다루는 명령어로는 printenv와 env가 출력 쪽에, setenv가 설정 쪽에 있다. configenv는 UNIX 표준 환경 변수 출력 명령어가 아니다. 프로세스를 다루는 시스템 호출도 이름의 유래를 따라 구분한다. fork는 현재 프로세스를 복사해 자식 프로세스를 만들고, exec는 프로세스 이미지를 교체하며, exit은 수행을 종료한다. getpid는 자기 자신의 ID를, getppid는 부모 프로세스의 ID를 반환한다.
웹 애플리케이션 서버는 웹 서버가 받은 요청을 처리해 동적 페이지를 만드는 소프트웨어로, JEUS, Tomcat, WebSphere 등이 이에 해당한다. JVM은 자바 바이트코드를 실행하는 가상 머신으로 WAS의 실행 기반이지만 WAS 자체는 아니다. 빌드 도구는 소스의 컴파일과 테스트, 패키지 생성을 자동화하며 Ant, Maven, Gradle이 대표적이다. Kerberos는 네트워크 인증 프로토콜이므로 빌드 도구와 영역이 다르다.
메모리 적재와 관련해서는 지역성 원리를 적용한다. 시간 지역성은 같은 데이터를 자주 쓰는 성질, 공간 지역성은 인접한 데이터를 쓰는 성질이다. 스레싱은 페이지 교환에 드는 시간이 프로세스 수행 시간보다 길어지는 현상이며, 필요한 프레임이 부족할 때 발생하므로 프레임을 충분히 주는 것이 방지 대책이 된다.