운영체제 제작으로 배우는 커널 기초: 두 판 사이의 차이

Ubuntu Korea Community Wiki
둘러보기로 이동 검색으로 이동
imported>Onting
잔글 (오타 수정)
imported>Onting
잔글편집 요약 없음
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
3번째 줄: 3번째 줄:
(초고)
(초고)
  리눅스, macOS, 윈도우, 안드로이드, iOS..., 현대 사회를 대표하는 OS들입니다. 이런 OS들은 여러분들이 설계하시는 멋진 애플리케이션들을 서비스 해줄 수 있는 환경을 제공해주고 여러분의 여러가지 작업을 수월하게 할 수 있도록 도와줍니다. 그런데 한가지 안타까운 점이 있는데 애플리케이션 레벨에서는 많은 시도들이 이루어지고 청년들도 많은 비전들을 제시하며 관심을 갖고 있지만, 데스크톱 OS에 대해서는 윈도우가 제공해주는 환경에 거의 만족하며 살고 오픈소스 솔루션에 대한 비전을 제시하는 대해 큰 관심이 있는 것 같지 않습니다. 하지만 리눅스 데스크톱 UX 분야는 전공 분야에 상관없이 다양한 사람이 어울려서 많은것들을 시도 해볼 수 있는 분야라고 생각합니다. 그렇다면 DE 관련 프로그래밍을 잘하면 되지 커널 프로그래밍은 왜 해야하냐? 여러분 중에는 리눅스를 부팅하면서 까만 화면에 하얀 텍스트를 안보신 분이 없으실 것입니다. 바로 데스크톱 환경 개발자가 하드웨어 수준에서 발생하는 문제를 제대로 다룰 수 없어서 발생하는 문제인데요 그래픽 카드를 깔았더니 시스템이 이상해지는 것을 보면 이 문제를 통감할 수 있으실 것입니다. 이렇게 하드웨어를 제대로 이해하고 프로그래밍을 할 수 있고 더 나아가 커널 분야에서 새로운 비전을 제시할 수 있는 능력을 커널의 이해로 키울 수 있을 것이라고 생각합니다.
  리눅스, macOS, 윈도우, 안드로이드, iOS..., 현대 사회를 대표하는 OS들입니다. 이런 OS들은 여러분들이 설계하시는 멋진 애플리케이션들을 서비스 해줄 수 있는 환경을 제공해주고 여러분의 여러가지 작업을 수월하게 할 수 있도록 도와줍니다. 그런데 한가지 안타까운 점이 있는데 애플리케이션 레벨에서는 많은 시도들이 이루어지고 청년들도 많은 비전들을 제시하며 관심을 갖고 있지만, 데스크톱 OS에 대해서는 윈도우가 제공해주는 환경에 거의 만족하며 살고 오픈소스 솔루션에 대한 비전을 제시하는 대해 큰 관심이 있는 것 같지 않습니다. 하지만 리눅스 데스크톱 UX 분야는 전공 분야에 상관없이 다양한 사람이 어울려서 많은것들을 시도 해볼 수 있는 분야라고 생각합니다. 그렇다면 DE 관련 프로그래밍을 잘하면 되지 커널 프로그래밍은 왜 해야하냐? 여러분 중에는 리눅스를 부팅하면서 까만 화면에 하얀 텍스트를 안보신 분이 없으실 것입니다. 바로 데스크톱 환경 개발자가 하드웨어 수준에서 발생하는 문제를 제대로 다룰 수 없어서 발생하는 문제인데요 그래픽 카드를 깔았더니 시스템이 이상해지는 것을 보면 이 문제를 통감할 수 있으실 것입니다. 이렇게 하드웨어를 제대로 이해하고 프로그래밍을 할 수 있고 더 나아가 커널 분야에서 새로운 비전을 제시할 수 있는 능력을 커널의 이해로 키울 수 있을 것이라고 생각합니다.
[[사용자:Onting|Onting]] ([[사용자토론:Onting|토론]]) 2017년 12월 12일 (화) 23:19 (KST)


==나만의 운영체제 만들기==
==나만의 운영체제 만들기==
===개요===
===개요===
  시작은 조금 생뚱맞게 운영체제를 만드는것부터 시작하려고 합니다. "리눅스 커널 분석하기도 바쁠텐데 운영체제를 만들겠다고?" 라고 생각하실 수 있는데 물론 복잡한 운영체제를 만드려고 하는것이 아닙니다. 기초적인 명령어 셋을 갖고있는 운영체제를 만들면서 하드웨어의 대한 이해를 하려고합니다. 현제 리눅스 커널은 코드가 굉장히 고도화가 되어있고 기능 또한 굉장히 많아서 어디부터 시작해야 할지 알기 힘듭니다. 그래서 운영체제의 기초를 익히기 위해 기본적인 운영체제를 만드는 것으로 시작하려합니다. 이후의 내용은 꼬꼬넷 블로그의 많은 내용을 기반으로 합니다.
  시작은 조금 생뚱맞게 운영체제를 만드는것부터 시작하려고 합니다. "리눅스 커널 분석하기도 바쁠텐데 운영체제를 만들겠다고?" 라고 생각하실 수 있는데 물론 복잡한 운영체제를 만드려고 하는것이 아닙니다. 기초적인 명령어 셋을 갖고있는 운영체제를 만들면서 하드웨어의 대한 이해를 하려고합니다. 현제 리눅스 커널은 코드가 굉장히 고도화가 되어있고 기능 또한 굉장히 많아서 어디부터 시작해야 할지 알기 힘듭니다. 그래서 운영체제의 기초를 익히기 위해 기본적인 운영체제를 만드는 것으로 시작하려합니다. 이후의 내용은 꼬꼬넷 블로그의 많은 내용을 기반으로 합니다.
[[사용자:Onting|Onting]] ([[사용자토론:Onting|토론]]) 2017년 12월 12일 (화) 23:19 (KST)


===개발 준비===
===개발 준비===
12번째 줄: 14번째 줄:
===컴퓨터 아키텍쳐와 어셈블리어===
===컴퓨터 아키텍쳐와 어셈블리어===
===부트로더===
===부트로더===
===LBA와 CHS===
===커널===
===커널===
===파일시스템===
===파일시스템===
17번째 줄: 20번째 줄:
===이미지 파일 만들기===
===이미지 파일 만들기===
==FreeDos로 알아보는 커널==
==FreeDos로 알아보는 커널==
===FreeDos 개요===
===FreeDos 설치===
===FreeDos 설치===
===FreeDos 알아보기===
===FreeDos 알아보기===

2017년 12월 12일 (화) 14:19 기준 최신판

이 문서는 편집중 입니다.

개요[편집]

(초고)

리눅스, macOS, 윈도우, 안드로이드, iOS..., 현대 사회를 대표하는 OS들입니다. 이런 OS들은 여러분들이 설계하시는 멋진 애플리케이션들을 서비스 해줄 수 있는 환경을 제공해주고 여러분의 여러가지 작업을 수월하게 할 수 있도록 도와줍니다. 그런데 한가지 안타까운 점이 있는데 애플리케이션 레벨에서는 많은 시도들이 이루어지고 청년들도 많은 비전들을 제시하며 관심을 갖고 있지만, 데스크톱 OS에 대해서는 윈도우가 제공해주는 환경에 거의 만족하며 살고 오픈소스 솔루션에 대한 비전을 제시하는 대해 큰 관심이 있는 것 같지 않습니다. 하지만 리눅스 데스크톱 UX 분야는 전공 분야에 상관없이 다양한 사람이 어울려서 많은것들을 시도 해볼 수 있는 분야라고 생각합니다. 그렇다면 DE 관련 프로그래밍을 잘하면 되지 커널 프로그래밍은 왜 해야하냐? 여러분 중에는 리눅스를 부팅하면서 까만 화면에 하얀 텍스트를 안보신 분이 없으실 것입니다. 바로 데스크톱 환경 개발자가 하드웨어 수준에서 발생하는 문제를 제대로 다룰 수 없어서 발생하는 문제인데요 그래픽 카드를 깔았더니 시스템이 이상해지는 것을 보면 이 문제를 통감할 수 있으실 것입니다. 이렇게 하드웨어를 제대로 이해하고 프로그래밍을 할 수 있고 더 나아가 커널 분야에서 새로운 비전을 제시할 수 있는 능력을 커널의 이해로 키울 수 있을 것이라고 생각합니다.

Onting (토론) 2017년 12월 12일 (화) 23:19 (KST)

나만의 운영체제 만들기[편집]

개요[편집]

시작은 조금 생뚱맞게 운영체제를 만드는것부터 시작하려고 합니다. "리눅스 커널 분석하기도 바쁠텐데 운영체제를 만들겠다고?" 라고 생각하실 수 있는데 물론 복잡한 운영체제를 만드려고 하는것이 아닙니다. 기초적인 명령어 셋을 갖고있는 운영체제를 만들면서 하드웨어의 대한 이해를 하려고합니다. 현제 리눅스 커널은 코드가 굉장히 고도화가 되어있고 기능 또한 굉장히 많아서 어디부터 시작해야 할지 알기 힘듭니다. 그래서 운영체제의 기초를 익히기 위해 기본적인 운영체제를 만드는 것으로 시작하려합니다. 이후의 내용은 꼬꼬넷 블로그의 많은 내용을 기반으로 합니다.

Onting (토론) 2017년 12월 12일 (화) 23:19 (KST)

개발 준비[편집]

운영체제 설계[편집]

컴퓨터 아키텍쳐와 어셈블리어[편집]

부트로더[편집]

LBA와 CHS[편집]

커널[편집]

파일시스템[편집]

명령어 구현[편집]

이미지 파일 만들기[편집]

FreeDos로 알아보는 커널[편집]

FreeDos 개요[편집]

FreeDos 설치[편집]

FreeDos 알아보기[편집]

FreeDos 커널 분석[편집]

완전한 OS가 되기 위한 조건[편집]

리눅스 커널 분석[편집]

리눅스 커널 개발 개요[편집]

개발 준비[편집]

리눅스 커널이 제공해주는 기능[편집]

리눅스 개발 비전[편집]

모듈 개발[편집]

각주[편집]

바깥 고리[편집]