목차 운영체제 디버깅 디버깅 : 하드웨어와 소프트웨어에서의 오류를 발견하고 수정하는 행위 디버깅을 하기 전에 병목현상이나 시스템의 효율적인 수행을 방해하는 요소를 찾을 수 있어야하는데 만약 수행을 하다가 프로세스가 실패를 하게 된다면 시스템 상의 장애가 발생하게 되는데, 프로세스의 경우 오류 정보를 로그 파일에 기록하고 프로세스가 사용하던 메모리를 캡쳐한 코어 덤프(예전에는 메모리를 코어라고 불렀다)를 취하고 분석을 위하여 파일로 저장한다. 프로그램과 코어덤프는 디버거에 의해 검사되며 사용자가 분석할 수 있게 한다. 커널의 경우 오류 정보를 로그파일에 기록하고 크래시 덤프(커널은 크래시라고 한다)에 저장한다. 프로세스나 커널 등의 장애 분석도 중요하지만 지속적인 성능 관찰 및 조정도 필요하다. 성능 조정..
CS/Operating System
목차 운영체제의 생성 운영체제 소스 코드를 작성한다.(혹은 소스 코드를 불러온다.) 운영체제의 실행을 위한 운영체제를 구성한다. 운영체제를 컴파일한다. 운영체제를 설치한다. 컴퓨터를 부팅한다. 닭과 계란은 하지 못하는 운영체제의 실행을 위한 운영체제를 구성한 후에 이러한 운영체제를 완전히 컴파일 하고 설치된 시스템에 맞는 데이터 선언이나 변수 등을 재 생성하는 과정을 거친다 (시스템 빌드) 또한 목적에 맞는 운영체제 빌드도 생각해볼수 있는데 생성된 시스템의 크기나 일반성이나 하드웨어 구성이 변경 될 시에 변경이 쉽게 되는 정도에 따라서 나뉠 수 있다. 임베디드 시스템의 경우에는 목적에 맞추어서 운영체제등이 설치되기 때문에 비교적 시스템의 크기가 작고 하드웨어 구성이 컴퓨터 처럼 쉽게 변경되지 않는다. 따..
목차 개요 운영체제는 크고 복잡한 하나의 체계보다는 여러가지로 분할되어 일을 분배하여 처리하는 방식이 더 적절하게 동작되고 쉽게 변경하고 적용할 수 있는 장점을 가지게 된다. 따라서 이번 포스팅에서는 운영체제의 기술구조의 유형과 그에 맞는 차이점 등을 알아볼 것이다. 대부분의 운영체제는 기술의 발전에 따라서 단순한 계산과정만 처리하던 컴퓨터에서 기능이 점점 많아지면서 점점 복잡한 작업들을 수행해야함에 따라 세분화되고 체계화 되는 것을 알 수 있다. 모놀리식 구조 Monolithic Structure 가장 간단한 구조는 구조가 존재하지 않는 구조이다. 즉 커널의 모든 기능을 단일 주소 공간에서 실행되는 단일 정적 이진 파일에 넣는 것이다. 이러한 구조는 UNIX에서부터 시작되었는데 전통적인 UNIX 운영체..
목차 들어가기에 앞서, 본 글은 [운영체제 구조 :: System call(시스템 콜)과 API/ABI] 포스팅 도중 Stackoverflow의 게시글 중 ABI의 이해를 돕고 안정적인 ABI 에 대한 코드에 대한 리뷰이다. 출처 및 이전글 확인 2022.07.29 - [OS :: 운영체제] - 운영체제 구조 :: System call(시스템 콜)과 API/ABI 운영체제 구조 :: System call(시스템 콜)과 API/ABI 목차 시스템 콜과 API / ABI 는 관계성이 높기 때문에 같이 포스팅을 진행하였다. 시스템 콜 (System call) 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 nstgic3.tistory.com 공유 라이브러리와 ABI 관..
목차 시스템 콜과 API / ABI 는 관계성이 높기 때문에 같이 포스팅을 진행하였다. 시스템 콜 (System call) 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스 OS의 보안 구조로 최심부에는 커널모드;Kernel mode가 최외곽에는 사용자 모드;User mode가 존재하게 되는 이중 구조를 가지는데 사용자가 커널의 기능을 사용할때 시스템 콜을 통해야지만 사용이 가능하다. 따라서 시스템 콜의 기능은 사용자 모드의 응용프로그램이 커널의 기능을 사용할 수 있게 한다. 사용자 모드 -> 커널 모드 커널 모드 -> 사용자 모드 API는 응용프로그램 인터페이스 ABI 는 기계값 수준에서의 응용프로그램 인터페이스를 뜻한다. 여기서 API와 시스템 ..
목차 인터페이스란? 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면 특히 이 포스팅에서는 사용자와 운영체제 사이의 물리적인 인터페이스에 대해서 알아볼 것이다. 명령어 라인 인터페이스 (Command Line Interface) 명령 인터프리터를 사용하는 인터페이스 명령 인터프리터를 이용한 사용자 인터페이스을 이용하기 위해서는 여러가지 명령어나 인터프리터 언어를 알고 있어야하지만 알고 있다는 가정하에는 명령 인터프리터는 사용자가 컴퓨터와 소통 할수 있는 가장 빠르고 간결한 수단이다. 명령 인터프리터 (Command interpreter) 운영체제 등에서 입력된 명령어를 읽고 실행하는 컴퓨터 프로그램 모든 운영체제는 명령인터프리터를 가지고 있는데 정의는프로세스가 시작..