Unix

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

정의 및 설명[편집]

1969년 미국 AT&T사의 Bell 연구소 켄 톰슨(ken Thompson)이 DEC사의 미니컴퓨터 PDP-7에서 어셈블리언어로 단일 사용자용인 유닉스 제 1버전을 개발하였으며, 1972년 데니스 리치(Dennis Ritchie)가 고급언어인 C언어로 다시 작성하였다. 유닉스를 탑재한 워크스테이션의 발매와 함께 보급되어 현재는 개인용 컴퓨터, 대형 컴퓨터, 마이크로컴퓨터에 이르기까지 많은 종류의 컴퓨터에서 사용되고 있다.
지금까지의 유닉스 시스템은 크게 두 부류로 발전되어 왔다. 하나는 AT&T사가 상품화한 Unix 시스템 시리즈이고, 다른 하나는 버클리대학(US Berkeley)에서 만든 BSD(Berkeley Software Distribution) 유닉스이다. 이들은 각각 독자적인 기능을 부여하여, 같은 유닉스지만 호환성이 없고 이식성이 떨어지는 혼란을 가져왔다. 이러한 혼란을 방지하기 위하여 미국의 유닉스 사용자 모임은 1984년 표준화위원회를 설립하여 유닉스의 표준화를 시도하였다. 이러한 표준화 작업으로 유닉스 사용자는 시스템마다 프로그램을 변경하지 않고 실행할 수 있으며, 사용자 인터페이스를 공유하여 공통된 환경을 사용할 수 있는 등 많은 이익을 얻게 되었다.

Unix의 역사

기술 현황[편집]

Unix와 Linux 내부적인 구조는 거의 비슷하다. 또한 리눅스는 오픈 소스로 공개되기 때문에 내부적인 구조는 다 파악할 수 있으며, Unix도 쉽게 내부적인 구조를 파악할 수 있다.

Unix, Linus 내부 구조

사용자 프로그램은 시스템 라이브러리의 도움을 받거나 아니면 직접적으로 소프트웨어 인터럽트(Software Interrupt)를 이용해서 트랩(trap)을 걸어서 커널에 접근하게 되며, 이러한 모든 접근은 시스템 콜 인터페이스(System Call Interface)를 통한다. 일단 커널로 제어가 전송된 상황에서는 커널 모드(kernel mode)로 실행되게 되며, 환경 전환(context switch)이 일어나기 전에는 사용자 프로세스 환경(user process context)으로 진행된다. 파일 시스템 혹은 프로세스 관리 하부 구조(subsystem)에서 다시 커널 내부의 코드를 수행하게 되고, 이는 다시 하위의 하드웨어 제어 유닛(hardware control unit)으로 제어가 넘어 간다. 여기서 하드웨어에 대한 접근이 일어나게 되며, 복귀 시에는 다시 과정을 역으로 밟아서 사용자 프로그램으로 제어를 넘기게 된다.