Linux

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

정의 및 설명[편집]

1989년 필란드 헬싱키대학에 재학 중이던 Linus Tovalds가 유닉스를 기반으로 개발한 공개용 운영체제로, 1991년 11월 버전 0.02이 일반에 공개되면서 확대 보급되기 시작하였다. 유닉스가 중대형 컴퓨터에 주로 사용되는 것과는 달리, 리눅스는 워크스테이션이나 개인용 컴퓨터에서 주로 활용한다.
리눅스는 소스 코드를 완전 무료로 공개하여 전 세계적으로 약 5백만 명이 넘는 프로그램 개발자 그룹을 형성하게 되었으며, 이들에 의해 단일 운영체제의 독점이 아닌 다수를 위한 공개라는 원칙하에 지속적인 업그레이드가 이뤄지고 있다.
파일구성이나 시스템 기능의 일부는 유닉스를 기반으로 하면서, 핵심 커널 부분은 유닉스와 다르게 작성되어 있다. 인터넷 프로토콜 TCP/IP를 강력하게 지원하는 등 네트워킹에 특히 강점을 지니고 있다.

대표적인 Linux 운영체제.jpg


기술 현황[편집]

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

Unix Linux 내부 구조.jpg

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