장치 드라이버 (Device Driver) 커널 인터페이스 구현

핵심 인사이트 (3줄 요약)

  1. 본질: 장치 드라이버(Device Driver)는 기계마다 제조사마다 명령 체계가 완전히 다른 수만 가지의 천차만별 하드웨어(키보드, 마우스, 그래픽카드, 디스크 모터)들을 운영체제(OS)가 통일된 공용 표준 언어(Read, Write 구조체)로 조작할 수 있도록 징검다리 통역을 해주는 **하드웨어 제어 전담 커널 내부의 통역사(소프트웨어 인터페이스 계층)**다.
  2. 가치: 이 추상화(Abstraction) 껍데기 덕분에 앱 개발자는 "삼성 하드디스크의 13번 스핀들 모터 바늘을 각도 15도로 꺾어서 플래터 좌표 자석을 자화시켜" 라는 끔찍한 기계공학적 전기 명령을 쓸 필요 없이, 그저 리눅스의 우아한 write(fd, "hello", 5) 코드 한 줄만 던지면 나머지를 드라이버 통역사가 하드웨어 전기 신호로 자동 파생 번역(Mapping)해 넘기는 만능 생태계가 달성 성조 구축되었다.
  3. 한계 구분: OS 핵심 뇌수(Kernel-Space) 영역에서 쌩짜 하드웨어 주소 번지수 메모리 칩에 다이렉트 접근하므로, 이놈의 드라이버 프로그램이 버그나 허접한 무한 루프 락 메모리 누수라도 하나 터트리면 커널 전체가 동반 즉사하는 무서운 커널 패닉(Kernel Panic / 블루스크린) 폭발을 직격 유발하는 가장 위험한 특권 양날의 검 구간이다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: 운영체제 시스템이 전 세계 공장 수만 군데서 막무가내로 쏟아져 들어오는 제각기 다른 규격의 하드웨어들(HDD, GPU, USB, 프린터 잉크 모터 칩 등등)의 사용법 언어를 죄다 OS 커널 본체 안에 쑤셔 넣고 혼자 미리 다 알고 배울 수는 없다(커널 초비대화 폭발). 따라서 리눅스 토발즈는 "OS 커널은 그냥 파일 여는 통제 표준 껍데기(VFS 뼈대)만 딱 제공할 테니까, 기계 만든 하드웨어 놈들이 너희들 기계 작동법 쪽지(장치 드라이버 .sys / .ko 파일 모듈)를 알아서 짜 와서 내 커널 허리 소켓 뼈대(인터페이스)에 규격 맞춰 쑥 꽂아 넣어!" 라고 역설계 규격을 통일한 것이 디바이스 드라이버 로드 아키텍처의 근본이다.

  • 필요성: 내가 크롬 브라우저에서 'CTRL+S' 를 눌러 웹페이지를 디스크에 저장(Save)할 때, 그 디스크가 WD 하드디스크인지 Seagate 인지, 아니면 삼성의 최신 0.1ms NVMe 플래시 메모리 보드 기판인지 크롬 앱 코더 프로그래머는 알 권리도 없고 알 바도 아니다. 장치 드라이버(Device Driver) 계층이 이 복잡한 기계 장부 차이를 철저하게 가려주고 눈가림 암막 추상화를 쳐주기 때문에, 프로그래머는 무조건 통일된 VFS(가상 파일 시스템 레이어) 시스템 콜(System Call) 하나만 던지면 전 세계 수백만 종류의 기계가 일제히 다 똑같은 약속대로 구동 통제되는 압도적인 이식성(Portability) 우아함을 선사 받는다.

  • 💡 비유: 장치 드라이버는 전 세계 100개국에서 파견 온 외국인 외교관(다양한 외장 하드웨어 기계들)들의 귓바퀴에 꽂힌 '공통 통역기 이어폰'입니다! 한국어(OS 표준 시스템콜 Write 명령)로 우와아 소리쳐 말해도, 이어폰(장치 드라이버 소프트웨어)이 이 언어를 프랑스어, 일본어, 아랍어(Seagate, WD, 삼성 전기 모터 포트 제어 기계어 신호) 로 각 기계 뇌수 속성에 개별 맞춤 번역해 속삭여 작동하게 만드는 무적의 외교부 표준 대통합 매뉴얼과 통역 체계 매핑의 걸작입니다!

  • 디바이스 드라이버 커널 모듈 추상화 파이프라인 매핑 트리: 어플리케이션이 추상화된 함수를 호출하면 어떻게 기계어 통역 모듈이 그걸 받아 칩셋에 꽂는지를 ASCII 다이어그램으로 체계화 시각 묘사하면 아래 층위 파괴 구조와 같다.

  ┌───────────────────────────────────────────────────────────────────────────────────────┐
  │                 장치 드라이버 (Device Driver) 3단 통역 추상화 통제 계층               │
  ├───────────────────────────────────────────────────────────────────────────────────────┤
  │                                                                                       │
  │   [ 유저 공간 (User Space 제한영역) - 우리 앱 프로그래머의 평화 ]                     │
  │      ┌───────────────────────────┐                                                    │
  │      │ 워드프로세서 앱, 크롬 브라우저 앱 │ ─── "난 그냥 C언어로 write(), read()       │
  │      └──────────────┬────────────┘      할래 기계 따위 알 바 아니야."                 │
  │         (System Call 문열기 요청 던짐)                                                │
  │   == == == == == == ▼ == == == == == == == == == == == == == == ==                    │
  │   [ 커널 공간 (Kernel Space 초특권 통제 구역) ]                                       │
  │                                                                                       │
  │      ┌───────────────────────────┐                                                    │
  │      │ 가상 파일 시스템 (VFS 뼈대)   │ ─── "Write가 왔군. 이 블록 장치는 삼성이니까   │
  │      │ (공통 I/O 인터페이스 스케줄러) │      삼성이 준 삼성 통역사를 호출하자."       │
  │      └──────────────┬────────────┘                                                    │
  │               (추상화 스위치 분리 콜)                                                 │
  │                      ▼                                                                │
  │      ┌───────────────────────────────────────────────────────┐                        │
  │      │ 삼성 NVMe 특화 장치 드라이버 모듈 (samsung_nvme.ko)           │                │
  │      │  "어? Write명령이야? 삼성 칩은 PCIe 레지스터 0x1F 번지에 1을 찍고│             │
  │      │   인터럽트 15번을 걸면서 0011 전기 펄스 쏘면 모터가 돌아가는 규격이지!" │      │
  │      └────────────────────────────┬──────────────────────────┘                        │
  │                                   ▼ (통역 완료, 생 전기 기계 신호 레지스터 포팅 돌출) │
  │   == == == == == == == == == == ==▼ == == == == == == == == == ==                     │
  │   [ 물리 하드웨어 (Hardware 칩셋 쇳덩어리) ]                                          │
  │          [ 삼성 칩셋 기판 ]      [ 씨게이트 칩셋 기판 플래터 암 ]                     │
  └───────────────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] VFS(커널 중앙 I/O 대뇌)와 물리적인 쇳덩어리 기판 사이에 낀 핵심 윤활유 샌드위치가 바로 파란만장한 장치 드라이버다. 이 녀석의 코드는 보통 커널 코어 개발진이 짜지 않는다(그 수만 개를 어떻게 다 짬). 삼성이나 씨게이트 같은 하드웨어 기계를 판 장사꾼 부서 개발자들이 짠 C/C++ 소스 묶음을 OS 벤더와 타협 협상을 해서 커널 안에 모듈(.sys 나 리눅스의 lsmod 뜨는 묶음 파츠)로 끼워 박아 병합 합체 융합하는 특성을 띤다. 그래서 커널에 가장 밀착되어(Ring 0 권한 장악), 메모리 포트 접근(Memory-mapped I/O)이나 CPU 하드웨어 인터럽트(IRQ) 핀 배열을 다이렉트로 주무르는 무소불위의 칼자루 권한을 얻는다.

  • 📢 섹션 요약 비유: 이것은 엄청나게 큰 "국제공항 렌터카 안내 데스크" 입니다. 손님(앱)은 그저 창구 직원(OS VFS)에게 "앞으로 전진 엑셀(Write 시스템콜) 해주세요" 공용 표준 버튼만 딸깍 누릅니다. 그러면 중간에 숨은 차종별 드라이버 직원인 람보르기니 매뉴얼 직원(드라이버 A)이나 티코 매뉴얼 직원(드라이버 B)이 재빨리 나서서, 람보르기니의 8단 기어 뻑뻑한 엑셀(생짜 기계 전기 조작)을 지가 알아서 쑤시고, 티코 직원은 카뷰레터 엔진(가스 조작)을 지가 알아서 몰래 쑤셔 손과 발로 조작 통역해 주어 차를 무식하게 굴려 전진 배출시켜 줍니다. 손님은 그 밑에 발판 기계가 어지럽게 통일 안 되고 다른지 절대로 모릅니다(추상화 완성 방벽).

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

1. 두 가지 거대한 양대 산맥 드라이버 분류 (Block vs Character)

유닉스/리눅스 철학은 세상 모든 기계 입출력을 "야 복잡하게 생각 마, 무조건 다 파일(File)로 취급해 몽땅 파일 트리(/dev/...)로 만들어!" 라는 기적의 매핑 Everything is a file 이념을 채택했다. 드라이버는 이 기계 특징을 잡아서 두 강물로 결 나눠 인터페이스 구조체를 파일 스크립트로 올린다.

드라이버 인터페이스 타입 속성기계의 본질적 작동 I/O 특성 파이프라인대표 하드웨어 및 동작 양식 버스트
캐릭터 장치 드라이버
(Character Device - c 권한)
데이터를 절대 랜덤으로 찾아 들어가 뭉탱이 고칠 수 없음. 물 흐르듯 1바이트씩 무조건 순서대로 들어오고 스트리밍 나가고 타이밍 끝나면 땡인 직렬 기계 전담.키보드, 마우스, 시리얼 포트 RS-232, 오디오 사운드 카드. (A를 치면 A 1바이트 전기 흐름 끝. 나중에 앞의 A 버퍼로 이동 안 됨 불가.)
블록 장치 드라이버
(Block Device - b 권한)
물방울이 아니라 무조건 바구니(512B / 4KB 블록 덩어리 Sector) 단위 고정 사이즈 배열로만 퍼 나름. 심지어 랜덤하게 주소 7천 번으로 찾아가 덮어씌울 수 있음!하드디스크(HDD), SSD 플래시, USB 이동식 메모리. OS가 중간에 캐시 버퍼(Page Cache)까지 달아주면서 엄청 무거운 성능 블록 캐싱 동기 조작 관여 락 컨트롤

(+ 터미널 ls -l /dev/ 를 치면 맨 앞 속성에 이놈이 c인지 b인지 리눅스가 친절히 통역 드라이버 본연 결이 속성 표시 스택으로 떨다 보여준다.)

2. 치명적인 블루스크린 폭발의 주범지 (커널 패닉과 Ring 0 의 저주)

OS 커널(Kernel)은 메모리 가장 깊숙한 보물창고인 Ring 0 권한(최고 권위)에서 실행 돌입된다.

  • 일반 앱(크롬, 롤 게임)은 Ring 3(User Mode 일반 서민 구역) 에서 굴러서 메모리 잘못 건드리면 지 혼자 툭 튕겨 죽고 바탕화면 평화를 유지(Segfault 보호막)한다.

  • 그런데 장치 드라이버는 무조건 기계 포트를 쑤셔야 하므로 커널 권한 구역 바운더리(Ring 0)로 강제 합류(Insmod 커널 이식)되어 뇌수 한 덩어리로 동작 결합된다! (Micro-kernel 구조 일부 타협 예외망 제외)

  • 결과: 엔비디아(NVIDIA) 그래픽 드라이버의 서드파티 C언어 개발자가 코딩하다 실수로 NULL 포인터 무한 루프 참조 포크 버그를 단 1줄이라도 흘린 채 패치 배포해버리면? 이 드라이버가 커널 본체 심장(메모리 링0)에 엑세스를 쑤셔서 갈가리 찢어발기기 직격 때문에, 윈도우 OS가 "아악 커널 심장이 파괴됐다 무결성 증발" 비명을 지르며 서버 컴퓨터 통째로 화면을 파란색(Blue Screen of Death / Kernel Panic 다운 폭발)으로 장식하고 모든 프로세스를 죽여버리는 우주 재난 기계 리부팅을 내뿜게 만든다. (윈도우 멈춤 블루스크린의 80% 주범은 OS 탓이 아니라 기계 회사(Vga, 랜카드)가 개판으로 짠 저 장치 드라이버 충돌 타락 결함 버그가 터트린 것이다.)

  • 📢 섹션 요약 비유: 이 구조(개발자 버그 참사)는 장치 드라이버 녀석이 일반 손님(앱)이 아니라 공항 관제탑 심장부(커널 Ring 0) 열쇠를 받고 들어간 '협력 업체 직원'이기 때문에 발생합니다. 밖의 손님이 난동 부리면 청원경찰이 끌어내면 끝이지만, 관제탑에 앉은 협력 직원이 코피 흘리고 쓰러지며 관제판을 엎어버리면 비행기 전체(OS 멈춤)가 교신이 끊기며 공항 전체 셧다운 대참사(블루스크린)가 일어나는 무서운 권한 동기화 위험 딜레마죠.


Ⅲ. 실무 융합 적용 및 안티패턴 (드라이버 적재 모듈의 오묘함)

유연한 동적 모듈 장착 커널 (LKM: Loadable Kernel Module) 스택 아키텍처

옛날 리눅스 OS 시절엔 드라이버를 커널 뇌수에 삽입 인식시키려면, C언어 소스 파일을 합쳐놓고 커널 전체를 3시간 동안 처음부터 재컴파일(Make kernel)해서 컴퓨터를 완전히 껐다 켜야만 내 USB 기판을 인식하는 미친 지옥 삽질(Monolithic Static 빌드)을 매번 반복했다. 이건 서버 환경에서 다운타임 운영 파탄이나 다름없었다. 하지만 천재 토발즈는 LKM 모듈 동적 인터페이스(요즘 lsmod, insmod 명령어 체계) 방식을 창조해 판을 엎었다!

  • LKM 런타임 이식: 심장이 뿜뿜 뛰며 운영체제 리눅스 서버가 라이브로 쌩쌩 돌고 있는 무중단 운영 와중에도, 커널을 재부팅할 필요 1초도 없이 "야, 새로운 USB 무선 랜카드 기계어 드라이버 레고 블록 파일(driver.ko) 갖고 와서 여기 커널 옆구리에 확 꽂아 붙여 넣어버려 핫 충전!" 이 가능해진 것이다. 커널은 가동 중에 드라이버 함수 테이블 포인터를 동적으로 확 낚아채 끼워버리고(Dynamic Linking), 언제 기계를 뺄 땐 rmmod 명령어로 드라이버 블록을 똑딱 실시간으로 떼어 쓰레기통에 폐기시켜버리는 극강의 운영체제 유연성 플러그 합체를 이뤄냈다.

안티패턴 : 펌웨어(Firmware)와 드라이버(Driver)의 실무 혼용 장애 오인 착각

SRE 1년 차 신입은 "드라이버 업데이트했는데 스토리지 그래픽카드가 렉 먹고 팬 모터가 안 돌아요!" 라며 OS 버그를 욕한다. 핵심 차이를 징계급으로 오인한 것이다.

  1. 디바이스 드라이버 (.sys / .ko 모듈): 내 컴퓨터 CPU 와 하드디스크 칩(로커) 간의 명령어를 이어주는 OS 커널 내부(내 컴퓨터 편)에 상주설치되는 통역 스크립트 껍데기다.
  2. 펌웨어 (Firmware / 롬 바이오스 칩 ROM 플래시): 컴퓨터가 아니라, 그 장치(예: 하드디스크 그 쇳덩어리) 뱃속 칩셋에 자체 납땜으로 박혀있는 작은 ROM 대가리에 들어가 있는 자기들만의 기계 영혼 마이크로 프로그램 롬 바이트다. "바늘을 2초간 011 돌려!" 라고 통역(드라이버) 해 넘겨줬는데, 그 기계 안의 뇌(펌웨어 제조 결함)가 멍청해서 모터를 못 움직이는 버그면 드라이버를 백날 깔아봐야 안돈다. 무조건 제조사 툴로 하드 플래싱 굽기 펌웨어(ROM BIOS) 업데이트 강제 삽입을 해야 톱니바퀴 결함 치명타가 고쳐지는 구분을 직시 통찰해야 한다.
  • 📢 섹션 요약 비유: 이 동적 LKM 모듈과 펌웨어 착각 분리 개념은, 달리는 자동차(운영체제 커널 생태)를 멈추지 않고 창문 밖으로 '새 기름 첨가제 통역관 스크립트 튜브' 를 실시간으로 냅다 엔진통에 꽂아 넣는 기적의 동적 유연성(LKM)이고요! 드라이버와 펌웨어의 차이는 내 한국어 통역사(장치 드라이버)가 프랑스어로 차에 완벽히 통역 번역을 외쳐 명령을 전달해 주었는데, 차 안에 있는 프랑스인 엔진(기계 내장 펌웨어 ROM 뇌수) 자체가 원래 바퀴를 못 굴리는 장님 바보로 태어났다면 통역사를 바꿀 게 아니라 프랑스인 엔진(펌웨어 업데이트 패치) 뇌수술 자체를 해야 고쳐진다는 절댓값 스택의 논리 배분입니다!

Ⅳ. 기대효과 및 결론

소프트웨어 관점의 100% 분리 독립 (하드웨어 종속성 탈출 독립 SLA 표)

앱 프로그래머의 상황 한계디바이스 드라이버 스택 레이어가 파편 붕괴/없었을 때 (DOS 멸망 시절)현대의 드라이버 커널 VFS 계층 스펙이 우아하게 감싸 덮을 때도입 인터페이스 효과 포팅
정량 (개발 기간 / TCO 누수)사운드 카드 100종류의 기계어 전기 신호 매뉴얼을 내가 일일이 게임 앱에 다 하드 코딩해 넣어야 됨. 개발 기간 3년 폭파 연장.나는 play_sound("mp3") 1줄만 짜면 됨. 100개의 그래픽, 소리 통역은 마이크로소프트와 칩 제조사가 드라이버로 뒤에서 조용히 짬처리 결제 커트!기계 종속성 소거, 게임 앱/웹 스택의 포팅 기간 압도적 광속 단축 (소프트웨어 폭발 원동력)
정량 (하드웨어 업그레이드)2세대 하드디스크로 장비를 박스 갈면 기존 코딩한 결제 DB 서버 프로그램 싹 다 처음부터 소스 다 뜯어고쳐야 구동 재가동 생환함.새 기기가 오면 징검다리 통역사(Driver.dll) 파일 1개만 다운로드로 덮어쓰기 껴놓으면, 기존 내 프로그램은 1글자도 수정 안 하고 기계와 소통 이륙됨.H/W 신규 교체 용이성 극강 증폭. 낡은 장비(Legacy) 폐기 비용 한계 무결점 탈피
정성 (보안 통제 커널 락)모든 앱이 맘대로 하드웨어 모터 팬 과열 전력 직결 쑤실 수 있어 악성코드가 하드를 불태워 불량 물리 핀 부러뜨리기 공격 작렬 붕괴.통역사(드라이버 Ring 0) 한 명만 기계를 건드릴 허가증 독점 마스킹 권한을 커널이 주므름. 앱이 막 쑤시면 드라이버가 컷! 하고 막무가내 공격 차단해 버림 보호권한 상승 차단, 하드웨어 수명 및 물리 보안 인프라 OS 중앙 철통 방위 요새 체계 확립

미래 전망 통찰 트리

  • 커널 특권 메모리(Ring 0)를 빌려주다 보니 블루스크린 테러로 골머리를 앓던 OS 아키텍트들은 "드라이버 이놈 기계 따위가 너무 권한이 커서 위험하다!" 라고 격멸 선언을 띄운다. 그래서 마이크로소프트나 구글 안드로이드는 점차 성능이 조금 깎이더라도 이 드라이버 통역 프로그램을 커널 핵심부 뇌수에서 쫓아내고, 저 멀리 안전한 유저 모드(User Mode Driver Framework / Micro-kernel 기조 부활)로 섬으로 분리 격리시켜버리는 방향으로 거대 진화 설계 철학을 마이그레이션 전환 변경하고 있다. 이렇게 되면 드라이버가 버그 무한루프로 터져도, 커널(안드로이드 스마트폰, 윈도우 커널 자체)은 안 죽고 쌩쌩 살아있어 바탕화면은 유지되며 오직 그 그래픽 깨짐 창만 탁 죽였다 1초 만에 백그라운드 재부팅 치유해 올리는 초 무결점 불사 OS 자가 회복 아키텍처 연동 스택으로 혁신의 길을 달음질하고 있다.

결론적으로 디바이스 드라이버 인터페이스 계층은, 지구상 단 한 명의 앱 개발자라도 "이 모터가 어떤 전기 신호로 몇 볼트를 먹으며 바늘을 꺾는지" 라는 가장 쓰레기 같고 소모적인 기계의 뇌수 코딩에서 해방시켜, 우아한 소프트웨어의 창작과 통일된 VFS 인터페이스 마법 바구니만 쥐고 플랫폼 혁신 르네상스를 꽃피우게 만들어준 컴퓨터 역사상 가장 숭고한 짐 꾼이자 추상화 포팅 파편의 가림막 결합 대가다.

  • 📢 섹션 요약 비유: 요약하자면 장치 드라이버 이 통역 기판 소프트웨어는, 전 세계 수만 종의 돼지, 소, 닭, 철, 구리, 나무, 플라스틱(천차만별 물리 하드웨어 기계 장비들)의 생 날것(Raw) 원석 재료 성질들을 요리사(앱)가 절대 모르도록 두꺼비 집 뒤에서 막고 가려서 빻아 돌려 갈아낸 뒤, 결과는 무조건 표준 규격형 "네모난 각얼음과 각진 두부(File 표준 추상 I/O 인터페이스 모양)" 형태로만 일원화 규격화 레고 조립 분쇄 압착가공하여 OS 셰프 손에 척 올려 패스해 주는 지상 최강 만능의 요술 믹서 통역관 공장 라인 그 자체인 것입니다!

📌 관련 개념 맵 (Knowledge Graph)

전조 지식 아크 및 기술 융합 파이프인자관계 통찰 설명 (진단 시너지)
가상 파일 시스템 VFS (Virtual File 시스템층)장치 드라이버 통역사들 수천 명을 굽어살피고 묶어 조율 배치하는 커널의 대장 매니저 본체. 모두 다 "파일(File)"이라는 인터페이스 껍데기 하나로 사기 눈속임 치어서 모든 물리 세계를 통일 묶어버린 추상화 끝판 제왕 뼈대.
시스템 콜 (System Call 트랩 API)유저 앱 프로그래머가 저 위험한 기계 통역사 놈(드라이버 모듈)에게 일을 시키기 위해 던지는 합법적인 OS 창구 민원 접수 표준 구문 양식. (open, read, ioctl 등 규약)
블루스크린 (Kernel Panic 커널 뇌사)Ring 0 최고 권한 권역에 쑤시고 들어선 장치 드라이버가 메모리를 엉뚱한 포인터로 짚어 연산 터지면 커널이 자폭 버그 타락 붕괴하는 현상상. 이게 무서워 서드파티 드라이버 개발자를 혐오하는 아키텍트 태동
인터럽트 (Hardware Interrupt IRQ 핀 꽂기)하드웨어가 일 다 끝내고 "저 통역 다 통과했어요 CPU 대장님 이리 와서 결과 가져가세요 팍!" 하고 CPU 신경망을 전기 충격으로 찔러 발작 깨우는 비동기 신호 처리 콜백 물리 메커니즘 함수선

👶 어린이를 위한 3줄 비유 설명

  1. 내가 한국어로 컴퓨터 자판기(워드 프로그램)에 "가나다라 인쇄!" 타이핑을 치면 그게 어떻게 미국산 프린터나 일본산 로봇 팔을 미세 모터 구동으로 똑같이 움직이게 조작(인쇄) 만원 시킬까요? 기계는 사람 말은커녕 C언어 글자도 못 읽거든요!
  2. 그 마법은 바로 컴퓨터 속 숨은 외교관! 장치 드라이버(Device Driver)라는 눈에 안 보이는 통역사 외국인 직원이 내 인쇄 버튼 한국말 소리를 받아다가, 0.1초 만에 "미국산 프린터 엔진 전기를 3번 위로 켜서 잉크를 툭 하고 떨궈!" 라는 끔찍한 기계 바보 언어로 번역(통역 추상화)해서 던져 몰아주기 때문이죠.
  3. 이 외국인 통역사 직원들이 수천 명 커널 운영체제 속에 꽂혀 있기 때문에 우리는 프린터건 하드디스크건 상관없이 그냥 모리만으로 편하게 아무 기계나 통일된 한 화면 스크린 구조 결합으로 부려먹고 다 통제할 수 있는 아주 똑똑한 왕(프로그래머 자유의 진리)이 될 수 있는 유토피아 마법이랍니다!