컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (26) - 완료 -
#26. 마무리
긴 이야기가 끝났다. 이 이야기를 시작할 때 했던 내용을 모두 다 다루었던것 같다. 처음 예상은 지금까지 다루었던 이야기보다 훨씬 짧은 분량이었는데 축약하고 축약해서 정말 대충 넘어가듯 썻음에도 분량이 꽤 많아져서 무려 25회나 연재했다.
이야기를 연재하는 블로그에 조회수가 나오지 않아서 개별 글을 얼마나 많은 분들이 읽었는지는 알 수 없지만 그래도 최소 백명은 넘는 분들이 읽었으리라 생각한다. 내가 시간과 노력을 들여 쓴 글로 백명이 넘는 사람들이 도움을 얻고 공부를 했다면 충분한 사회적 공헌이라고 볼 수 있을까? 그렇다고 내가 이 이야기를 사회적 공헌을 목적으로 쓰진 않았다. 가장 큰 목적은 내 지식을 정리하고 싶었고, 두 번째는 정리한 지식을 사람들과 공유하고 싶었고, 그다음은 내 두 번째 책을 내고 싶었다. 과연 책으로 나올 수 있을지는 미지수지만.
이 이야기의 모티브는 찰스 패촐드의 ‘CODE’라는 책에서 얻었다. 그렇기 때문에 나는 이 이야기의 소재나 구성이 최대한 CODE와 겹치지 않게하려 애썼다. 하지만 전신 릴레이를 사용하는 부분같은 경우 어쩔 수 없이 CODE의 그것과 비슷한 내용을 다룰 수 밖에 없었다. 그 예외에는 다른 소재가 도무지 떠오르지 않았기 때문이다. 전신 릴레이 부분 외에는 CODE의 내용과 비슷한 부분은 별로 없을 것이다. 플립플랍을 설명한 부분이나 게이트를 설명한 부분은 그 이론 자체를 그대로 설명한것이니 딱히 CODE와의 연관성을 찾을 수는 없다.라고 자기 위안 삼는다. 이 부분은 글을 읽는 여러분들이 판단할 문제라고 생각한다.
영과 일로 표현되는 디지털을 거쳐 디지털 자체를 수학적으로 표현할 수 있는 가장 기초적 표기 수단인 이진수로 코드를 만든 이야기를 했다. 코드를 전달하기 위해서 스위치와 전구로 이뤄진 가장 간단한 형태의 통신 장치를 만들고 신호를 멀리 보내기 위해서 릴레이 스위치를 만들었다. 릴레이 스위치 연결에 피드백 연결을 해서 자체적으로 신호가 돌고 도는 회로에 대한 이야기도 했었다. 그리고 릴레이 스위치의 개념을 그대로 받아 트랜지스터를 이야기하고 트랜지스터를 이용해 논리 게이트에 대한 이야기를 했다.
논리 게이트가 묶여서 플립플롭이 만들어졌다. 플립플롭은 기억이라는 화두의 기본이 되었다. 플립플롭은 대규모로 모여서 메모리가 되었다. 메모리에 값을 쓰고 쓴 값을 찾아서 읽는 기법에 대한 이야기를 했다. 플립플롭을 이용한 메모리 외에 많이 사용하는 SRAM과 DRAM의 원리에 대해서도 이야기했다.
논리게이트는 플립플롭으로 만들어질 수도 있었고 특정한 조합을 통해서 사칙 연산이 가능하기도 했다. 사칙 연산 외에 시프트, 반전 등의 산술 연산이 가능한 ALU를 구성할 수 있었다.
ALU와 플립플롭을 이용한 레지스터 메모리, 그리고 SRAM을 이용한 대규모 메모리를 여러가지 방법으로 묶어서 하나의 완성된 컴퓨터 시스템을 구성했다. 독자적인 CPU라고 볼 수도 있고 뭉뚱그려 컴퓨터라고 볼 수도 있는 시스템이었다. 이 시스템을 제어하기 위해서 다시 우리는 이진수를 이용할 수 있는 방법을 찾았고, 이 이진수에 특정한 기호를 대응해서 또다른 코드를 만들어 냈다.
컴퓨터 시스템을 제어하기 위한 코드. 코드가 만들어지면서 우리는 소프트웨어의 세계로 들어왔다. 코드는 어셈블리어라는 약간 발전된 형태의 프로그래밍 언어로 진화했다. 어셈블리어는 어셈블러에 의해서 이진수로 변환되었다. 소프트웨어 개발 환경을 좀더 편하게 하기 위해 링커가 등장했고 링커의 작업을 더 쉽게 하기 위해 오브젝트 파일이라는 중간 파일 형식을 정의했다. 어셈블리어는 분명 기계어보다 발전된 형태긴 했지만 조금 불편했닥. 그래서 어셈블리어로 변환되는 고급 언어를 정의했다. 고급 언어는 BNF 표기법이라는 규칙으로 정의되었다. 고급 언어를 통해서 우리는 본격적으로 복잡한 프로그램을 작성할 수 있게 되었다. 그 복잡한 프로그램의 궁극에는 운영체제가 있다. 운영체제는 아주 크고 복잡하고 효율적인 프로그램이다. 운영체제가 만들어지면서 우리의 컴퓨터 시스템은 비로소 구색을 갖추고 생명력을 가지기 시작했다.
내가 지금까지 했던 이야기를 아주 짧게 다시 정리해 봤다. 다시 정리하는데도 꽤 많은 문장과 몇 개의 문단을 사용했다. 생각보다 방대한 내용이다. 다소 길어진 내용이지만 저 내용을 다 다루기에는 확실히 너무도 짧은 분량의 이야기다. 그러다 보니 이야기의 수준이 다소 떨어지고 설명의 밀도가 성긴감이 없지 않아 있다. 하지만 이야기 본문에도 몇 번 언급했듯이 내가 이 이야기를 시작한 의도는 마치 전공 서적처럼 모든 이론을 하나도 빠짐없이 완벽하게 전달하려는 것이 아니라 그저 소설책처럼 가볍게 내가 사용하고 있는 이 컴퓨터 시스템이 어떻게 이뤄져 있는가를 전달하고 싶다는 것이다.
과연 나의 의도가 읽는이를 화나게 했으련지 만족했으련지 이 글을 쓰며 나는 살짝 걱정되며 두렵기도 하다. 만약 읽는이가 불만족을 느꼈다면 그것은 모두 나의 능력 부족임을 인정하고 그들에게 사과의 마음을 전하며 이 긴 이야기를 마칠까 한다.
댓글
덧붙여... 사실 이
덧붙여...
사실 이 글을 쓰기 전에 저는 컴파일러 만들기를 쓰려고 했었습니다.
그리고 실제로 어느 정도 Virtual Machine과 어셈블러, 컴파일러, 링커까지 만들어 놓은 상황이었죠.
그러나, http://kldp.org/node/108241 이런일이 벌어졌고,
제가 만들어 놨던 컴파일러 관련 소스코드와 바이너리와 수집한 자료들이 모두 소실되었습니다..ㅠㅠ
한동안 피폐해진 영혼과 공허한 정신상태를 이겨내지 못하고,
폐인처럼 생활하다가
마치 거울을 본 여포가 정신을 차리듯 글을 쓰기 시작한 글이 26편씩이나 KLDP에 연재한 이 글이 되었습니다.
제가 가지고 있는 지식과 관련 서적 등으로 내용을 채우다 보니 확실치 않거나 틀린 내용들도 있었을 겁니다.
하나 하나 지적해 주시고 응원해 주신 KLDP 여러분들께 감사드리며 글을 마칠까 합니다.
그리고 보시는 분의 편의를 위해, 목차 링크를 달았습니다.
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (0) : http://kldp.org/node/109764
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (1) : http://kldp.org/node/109814
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (2) : http://kldp.org/node/109901
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (3) : http://kldp.org/node/110005
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (4) : http://kldp.org/node/110137
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (5) : http://kldp.org/node/110214
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (6) : http://kldp.org/node/110311
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (7) : http://kldp.org/node/110440
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (8) : http://kldp.org/node/110515
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (9) : http://kldp.org/node/110602
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (10) : http://kldp.org/node/110670
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (11) : http://kldp.org/node/110850
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (12) : http://kldp.org/node/111015
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (13) : http://kldp.org/node/111192
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (14) : http://kldp.org/node/111678
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (15) : http://kldp.org/node/112152
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (16) : http://kldp.org/node/112552
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (17) : http://kldp.org/node/112832
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (18) : http://kldp.org/node/113385
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (19) : http://kldp.org/node/113754
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (20) : http://kldp.org/node/113854
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (21) : http://kldp.org/node/113950
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (22) : http://kldp.org/node/114146
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (23) : http://kldp.org/node/114407
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (24) : http://kldp.org/node/114537
컴퓨터를 만듭시다. 어때요~ 참 쉽죠? (25) : http://kldp.org/node/114666
P.S. ekdmadps anjTmfRkdy? ^^
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
이런말해도 될런지 모르겠지만,
^^
잠깐 훓어봤는데요..이글 본인이 작성한거 맞나요?
페졸드의 code는 못봤지만, rogers young이란 사람이 쓴책하고 똑같네요..구성도 똑같고 그림도 비슷하고..
이렇게 쓰면 표절아닌지 모르겠네요..모..물론 100%번역한건 아니지만, 살을 붙인정도인고..만약 잘모르는 사람들이 보면 본인의 100%창작이라고
느껴지지 않을까요..물론 본인 생각이라고 할지 모르겠지만, 전 몇챕터 보는순간 바로 느꼈습니다. 로저스영 책을 참고했구만..
^^
로저스 영이
로저스 영이 누군지도 모르고 100% 제가 썼습니다.
그림도 몇개 인터넷에서 가져온것 외에는 리눅스에서 dia로 직접 그렸고요.
누구신지는 모르겠지만
힘들게 쓴 글을 가지고 표절이네 뭐네 하시는 글 보니 기분이 썩 좋진 않군요.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
이 책 말씀하시는
이 책 말씀하시는 건가요?
문득 헬렌 켈러의 표절의혹 이야기가 떠오르는군요
그 책이 뭔 책인지도 모르고 본적도 없지만
100% 개인의 지식과 생각과 아이디어로부터 나왔다는
"그 책" 말입니다.
아무래도 단정짓는건 좀 그렇군요 -ㅅ-;
이 이야기가 한참 진행되는 동안 그 어느 누구도 이런 이야기를 꺼낸적도 없었거든요 ...
웬지 다된 밥에 재 뿌리는듯한 느낌을 지울수가 없네요 -_-
그랬나요? 정도에서 끝났어도 적당한 의심인데 ...
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
그간 고생
그간 고생 많으셨습니다.
--
I think to myself...what a emerging world.
잘봤습니다.
수고하셨네요
좋은글 감사합니다.~
----------------------------
Let's Do It
감사합니다
그렇게 딱딱하든 글들이 물결처럼 느껴지네요
그 동안
그 동안 수고하셨습니다. 잘 봤습니다.
전선과 스위치로 컴퓨터를 만들어 보고 싶어요. ^^
※ ekdmadps anjTmfRkdy? == 다음엔 뭐쓸까요?
고생하셨습니다.
그동안 정말 수고하셨습니다.
잘 봤습니다. 언제나 감사합니다..
___________________________
I like Small Linux.
___________________________
I like Small Linux.
와 정말 수고
와 정말 수고 많으셨습니다, 감사합니다~
좋은 하루 되세요!
드디어
드디어 완결하셨군요. 축하드립니다. 그리고 수고하셨습니다.
냐아~빌 옹
냐아~빌 옹 감사합니다~
Neogeo - Future is Now.
Neogeo - Future is Now.
수고 많으셨습니다.
이제 한턱 쏘시면 ...
=3=3=3
---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도
즐겁게 놀아보자.
http://akpil.net
http://akpil.egloos.com
---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도
즐겁게 놀아보자.
수고 많으셨습니다.
이제 컴파일러 강좌도 기대하겠습니다 ^_^
수고하셨습니다.
수고하셨습니다.
...
감사합니다....^^
============================================
life is only one time
정말 대단한
정말 대단한 강좌였고, 공익을 위해 정말 큰 일을 하셨다고 생각합니다.
수많은 책에서 어렵게 다루는 내용을 정말 쉽게 설명해주셨고,
꼭 필요한 주제로 핵심을 잘 다뤄주셔서
저뿐 아니라 많은 이들에게 큰 도움이 되었으리라 믿습니다.
어셈러브에서 해야할 일이라고 생각하고 준비도했었던 주제였는데
게으르고 나태한 제가 부끄러울 뿐입니다.
정말 수고하셨습니다.
----
섬기며 사랑하면 더 행복해집니다.
나불나불 블로그 - http://gurugio.blogspot.com/
몸에 좋은 칼슘이 듬뿍담긴 OS 프로젝트 - 칼슘OS http://code.google.com/p/caoskernel/
수고하셨습니다.
사람들이 가장 헷갈리는 부분들이 있는데, 가려운데를 살살 긁어주시는 글을 써주셨습니다.
수고하셨습니다.
수고하셨습니다.
저도 컴퓨터공학과라 하드웨어 관련 지식이 많이 부족했는데 많은 도움이 되었습니다.
이제 책으로만 나오면 되나요? ㅎㅎ
책으로 나오면 바로 구입을... ㅎ
-----
Do It Now!
-----
Do It Now!
26편이라...
2쿨이군요.. ^_^
저도 책으로 나오면
저도 책으로 나오면 꼭 한권 사겠습니다. 수고하셨어요~
출판사와의 이야기가
출판사와의 이야기가 잘 이루어지지 않는다면 사람들이 더 쉽게 읽을 수 있도록 latex 등으로 형식을 바꾸어 pdf로 만드는 것도 좋지 않을까요?
고생하셨습니다. 공
고생하셨습니다.
공부하는데 많은 도움이 되네요ㅎ
------------------------------------------------------------
Get busy living, or get busy dying.
------------------------------------------------------------
Get busy living, or get busy dying.
중간에 .ㅉㅈ
완전 생초보
중간부터 너무어려워서 수박겉핥기 가 되었지만 그래도 좋은 글 잘보고갑니다.
감사드리고 수고하셨습니다.땀삐질삐질...이제부터는 건강챙기시고 재충전의 시간을 가지심이 어덜는지......ㅋ
완전 생초보
고생하셨습니다...
공부하는데 도움이 많이 되었습니다..
//1년만 더 참자~~
1년만 더 참자~~
다 긁어서 문서화
다 긁어서 문서화 시켜서, 스마트 폰에 저장 했습니다.
출퇴근시 집중시킬 무언가가 필요했던 찰나 였는데... 감사합니다
Malgrado Tutto .. L'angelo Azzurro
Malgrado Tutto .. L'angelo Azzurro
텍스트 문서로 만드셨으면 업로드해주시면 감사하겠습니다.
저도 스마트폰으로 보고 싶네요.^^;
어찌어찌 눈팅하다
어찌어찌 눈팅하다 왔는데 너무 멋진 강좌인듯 합니다.
1편만 봤는데 시간을 두고 보고 싶네요 :)
링크따갑니다. 감사합니다.
소스코드와 바이너리들이 소실될때의
그 피폐해지는 마음... 웬지 동감입니다. ㅠ _ㅠ)b ...
고생하셨습니다.
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
나빌레라님 강좌는 늘 재밌게 읽고 있습니다. 정말
나빌레라님 강좌는 늘 재밌게 읽고 있습니다.
정말 도움이 많이 되네요.
혹시 아직까지 책으로 출간할 마음이 있으시다면..
제가 조금 아는 분이 출판사에 근무하는데
그 출판사 홈피에 제안서 한번 올려보시는 것도 괜찮을거 같은데요.^^
판매부수에 비교적 연연하지 않는 곳이라 알고 있습니다.
계획 있으시면 답변 주세요^^
꼭 책으로 소장하고 싶습니다.
P.S. OS 만들기도 구입해서 잘보고 있습니다.^^
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
당연히 출판 생각 있죠. navilera at
당연히 출판 생각 있죠.
navilera at 지멜닷컴
으로 메일 보내주세요.
감사합니다..^^
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
메일 드렸습니다.
hyeongseo at 지메일 계정으로 메일 보내 드렸습니다.^^
현재 출판사 홈피가 서비스 장애로 AS 중이라고 하네요
혹시 접속 안되시더라도 당황하지 마시구요.
홈피 접속 되면 알려드리겠습니다.
좋은 결과가 있길 기원합니다.^^
컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러
오~ 수고하셨습니다. 잘 볼께요~ :-)
오~ 수고하셨습니다.
잘 볼께요~ :-)
Lum7671's Weblog
ㅋㅋㅋ대단하신 분이셨네요
작년에 우연히 알게된 이 블로그 ㅎㅎ 정말 알기 쉽고 재밌고 저같은 초보가 쉽게 이해할수 있어서
하드웨어의 기초 지식은 이 블로그를 통해 다 배웠다해도 과언이 아닐정도로 재밌고 잘 봤습니다
그러다 몇개월이 지나고 최근 한책을 지인이 소개해 주길래 책을 받고
집에서 몇장 넘기다보니...나빌보드?? 어디서 많이 봤던 이름이네 하고 넘겼죠 ㅋㅋ
몇장 더 읽다보니 아이디 나빌레라 이름을 따서 붙인 나빌보드란걸 알게 되었습니다 ㅋㅋ
아 너무 신기하고 대단함이 느껴지더군요.
아직 공부 초기라서 어려운지 쉬운지는 모르겠지만 나빌레라님을 믿으며 끝까지 공부해보렵니다 ㅎㅎ
이 댓글을 읽으실지 모르겠지만 정말 감사하고 또 감사합니다.
댓글 달기