안녕하세요 미친감자 김주생입니다.


2015년 10월 8일은…(저녁 7시 경~~)


저는 또….재미없는 CPU에 대한 아주 기초적인 이야기를 했습니다.

고맙습니다. 여러분….들어주셔서^___^



세그먼트 레지스터에 대해서 이야기를 했네요…


기존에 했던 이야기 반복하고….말이죠~~~!!!


점점 지겨워 질 수 있는데….이럴 때 일 수 록……………...더 열심히 하셔야 합니당~~!

그래야 나중에 OS라도 만들 수 있어용~~


OS만들어서 뭐하냐고요???

ㅋㅋ그러게요…..


내가 만든 OS를 누가 사용이나 해줄까요?


그런 관점에서 OS를 생각하지 말고...그냥 CPU라는 녀석과 친해진다는 관점으로 보면…

앞으로 여러분 인생에(?) 많은 도움이 될것입니다.


리버서(역공학자)가 된다거나 포렌식 전문가가 된다거나 하실 경우에는

저에게 지금 배우는 내용이 엄청나게 도움이 될것임이 분명합니다.


여러분들의 초상권을 보장하기 위해 저는 기본적으로 모자이크를 해드립니다.^^(이게 더 이상한가???)



세그먼트 레지스터~~

세그먼트…(Segment)


사전적 의미중 제가 맘에 드는 의미는 ‘조각’입니다…

메모리를 조각으로 관리하기 위한 것입니다..


Segment에 있는 의미들이다.

출처 : http://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=8432d45409344666a247d0003f11b135#VerbO




덩어리라는  의미가 더 좋을 것 같네요~~~!! 덩어리는 의미는 없네요..이런

아이들에게 ‘덩이리’라고 했는데…’부분’이라는 의미가 가장 적합할 것 같네요…


i386이라는 CPU에는 여러 레지스터가 있어요…


레지스터란 뭐냐? 라고 하시면…


음.. 설명해 드려야죠~~!! 암용~!!!


명사적 의미로…..

[C] (이름・항목 등을 적은 공식적인) 기록[등록/등기]부, 명부


교구 기록부 → a parish register

선거인 명부 → the electoral register

호텔 숙박계 → the hotel register

흐흐흐 이렇게 register라는게 일상에서 사용됩니당~~!!


출처 : http://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=bdf7105431d8445fb60cee71affdbce1&query=register


그런데...CPU에서 register는...결국….

출처 : https://courses.engr.illinois.edu/ece390/books/artofasm/CH04/CH04-1.html#HEADING1-42

이런 이름을 가진 녀석들이고….

이 CPU에서 레지스터는

<-- 이 녀석^^에게 있어서 레지스터는

CPU를 사용하기 위해 필요한 값들을 저장하는 메모리같은 녀석입니당~~!


이중에서도… 세그머트 레지스터(Segment Register)는 다음 녀석들이종~!!


CS, DS, ES, FS, GS, SS

음. 이 녀석들이 나중에 설명할 것 이지만…………………

결국 GDT라고 하는 녀석을 가르키는 인덱스 역할을 한다는 것~~!!


ㅋㅋ 아직 GDT에 대한 설명을 잘 하지 않았는데….. GDT라는 용어를 써버렸네요…


암튼 인텔 계열 CPU..!! X86계열의 경우는 이렇게 되어 있습니당…


저도 잘을 모르지만...ARM에도 레지스터가 있지 않겠습니까???

한번 구글링해보겠습니당~!


출처:http://pds10.egloos.com/pds/200905/25/98/d0002098_4a1a81d8c9f79.jpg


구글링해서 찾은...자료인데...이곳에는 세그먼트 레지스터 같은 것은 없군요…


출처 : http://learnlinuxconcepts.blogspot.kr/2014/06/arm-architecture.html

다시 구글링해보았지만.. ARM CPU에는 세그먼트 레지스터 따윈(?) 보이지 않는군요…


오늘은 여기까지…


흐…

왜이리 시간이 없나?















음..안녕하세요^^

미친감자 김주생입니다.


이번에 기획할 작품은……

미친감자의 OS만들기라고 일단 이렇게 이야기 하고 싶습니다.


음…


그런데...이야기를 저는 항상 이렇게 시작해요…


혹시 폰노이만 아세요???


폰노이만


컴퓨터의 연산을 위해 명령과 데이타를 메모리에 올려놓고 하자라 말한 천재가 있었죠~~!!


그분의 이름이 폰노이만이시구…


이 분이 폰노이만……..방식은 엄청난 것입니다...라고 말이다….


중요한 것은 폰노이만 이전에는….다른 방식이였다는 것이 중요하다….


폰노이만이….그 방식 말고 이방식을 말씀하신것이겠쥐…

음…



오늘은 googletest라는 녀석을 사용해보록 해보죠...

먼저.....다음 웹페이지를 들어가봅시다.


https://code.google.com/p/googletest/ <-- 이곳에 들어가보니 github페이지로 가보란다.;;;;


아니 이런… github에있다는 것이다……...

https://github.com/google/googletest/tree/master/googletest

어디에서 다운로드를 받을 수 있단 말인가?



일단 닥치고..(?^^^) 헤더랑 lib만 있으면 된다…

그런데 어디에서 받을 수 있는지….


아니 이런…


일단

https://github.com/google/googletest/tree/master/googletest 에 들어가서..저 밑 화살표를 다운받아보자….



음….



뭐지?

CMake가 있어야 하는가 보다…

에라 모르겠다...

할렐루야~

하자…

설치~~!!



CMake 의 홈페이지이다….

하단부에 보니..다운 받을 수 있는 곳이 있구만…

홈페이지 하단에 있는 버튼이다….


받자..받자…~~!!


음……..설치를 한다…

음…

이것은 CMake 아이톤이다. 삼각형이네..음...음….태극문향과 비슷하기도 하고…

무슨사상이 들어갔을까?

이상한 종교의 사상이 들어가지 않았겠쥐??

음…….설치하고 바탕화면의 것을 실행했더니...저런 놈이 나타난다….

소스파일이 어디있냐고?

빌드는 어디에 저장하냐고?

Grouped

Advanced

음…..

음….

음…

음….

일단 CMake설치했으니께…..


음….

다시 실행시켜보자…

https://github.com/google/googletest/tree/master/googletest



Using CMake

Google Test comes with a CMake build script ( CMakeLists.txt) that can be used on a wide range of platforms ("C" stands for cross-platform.). If you don't have CMake installed already, you can download it for free from http://www.cmake.org/.

CMake works by generating native makefiles or build projects that can be used in the compiler environment of your choice. The typical workflow starts with:

mkdir mybuild       # Create a directory to hold the build output.
cd mybuild
cmake ${GTEST_DIR}  # Generate native build scripts.

If you want to build Google Test's samples, you should replace the last command with

cmake -Dgtest_build_samples=ON ${GTEST_DIR}

If you are on a *nix system, you should now see a Makefile in the current directory. Just type 'make' to build gtest.

If you use Windows and have Visual Studio installed, a gtest.sln file and several .vcproj files will be created. You can then build them using Visual Studio.

On Mac OS X with Xcode installed, a .xcodeproj file will be generated.




음…

cmake

을………………………………...실행할 수 있다.


음…


mkdir mybuild       # Create a directory to hold the build output.
cd mybuild
cmake ${GTEST_DIR}  # Generate native build scripts.

오~~된다~~!!!


build가 되는 거 겠쥐~~!!!


Visual Studio 14 2015로 빌드한단다~~!!


컴파일러 찾았다!!라고 말한다.

ABI info 는 뭐냐?


PythonInterp...음…….파이션이 있어야 하는가?

음….

Build files have been written to

라고………...쓰여있네…

가보자…

음…

d:/mybuild~~로 가보자..


음…

.sln .vcxproj 파일 들이 생겼네…

이제 이 파일로 빌드를 하면 되는건가?(빌드가 만들어진게 아니고...빌드 파일이 만들어졌나보네…)



음…. 저 CMakeLists.txt 파일이 있어야 .sln .vcxproj 파일이 생성되는 구나~~!

음……………...


자 빌드해보겠습니다….

어여…..해보장~~!!!!!



음…

ALL_BUILD라는 녀석이 있네…

이놈을 빌드하자…~~!!


자 빌드 드려 ~~빌드~~!!!!


성공은 2개….

실패는 2개….

성공은 뭐고 실패는 뭐지????


음…...이런……………..실패 2개는 뭐지???



2>D:\googletest-master\googletest\include\gtest/internal/gtest-internal.h : error C2220: 경고가 오류로 처리되어 생성된 'object' 파일이 없습니다.

object 파일이 없다고???

뭐지???

경고가 오류로 처리되어 생성된 ‘object’파일이 없습니다.


2>D:\googletest-master\googletest\include\gtest/internal/gtest-internal.h : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.


음………표시할수 없는 문자가 있다고?

뭐냐????


음….


음...어떻게 하지?????

이런…


컴파일러 수준을 바꿔야겠다…


아니다. 구글링하자…(누군가 시행착오를 거쳤겠쥐….)


저기 저 옵션을 껴보자…..

‘아니요’로 말이다…. /WX-




1>------ 빌드 시작: 프로젝트: gtest, 구성: Debug Win32 ------

1>  gtest-all.cc

1>D:\googletest-master\googletest\include\gtest/internal/gtest-internal.h : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.

1>  gtest.vcxproj -> D:\mybuild\Debug\gtest.lib

========== 빌드: 성공 1, 실패 0, 최신 1, 생략 0 ==========


드디어 성공!!!!


흐…..

저 경고 warning은 그냥 무시하자……

음…


나머지 프로젝트 gtest_main도 …………….’경고를 오류로 처리’ 를 ‘아니요’로 하자…



1>------ 모두 다시 빌드 시작: 프로젝트: ZERO_CHECK, 구성: Debug Win32 ------

1>  Checking Build System

1>  CMake does not need to re-run because D:/mybuild/CMakeFiles/generate.stamp is up-to-date.

2>------ 모두 다시 빌드 시작: 프로젝트: gtest, 구성: Debug Win32 ------

2>  Building Custom Rule D:/googletest-master/googletest/CMakeLists.txt

2>  CMake does not need to re-run because D:\mybuild\CMakeFiles\generate.stamp is up-to-date.

2>  gtest-all.cc

2>D:\googletest-master\googletest\include\gtest/internal/gtest-internal.h : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.

2>  gtest.vcxproj -> D:\mybuild\Debug\gtest.lib

3>------ 모두 다시 빌드 시작: 프로젝트: gtest_main, 구성: Debug Win32 ------

3>  Building Custom Rule D:/googletest-master/googletest/CMakeLists.txt

3>  CMake does not need to re-run because D:\mybuild\CMakeFiles\generate.stamp is up-to-date.

3>  gtest_main.cc

3>D:\googletest-master\googletest\include\gtest/internal/gtest-internal.h : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.

3>  gtest_main.vcxproj -> D:\mybuild\Debug\gtest_main.lib

4>------ 모두 다시 빌드 시작: 프로젝트: ALL_BUILD, 구성: Debug Win32 ------

4>  Building Custom Rule D:/googletest-master/googletest/CMakeLists.txt

4>  CMake does not need to re-run because D:\mybuild\CMakeFiles\generate.stamp is up-to-date.

========== 모두 다시 빌드: 성공 4, 실패 0, 생략 0 ==========


드이어 빌드 성공했습니다…

뭐여????....한국어에서는 한번에 빌드가 안되는 것 같네요…..

왜그랬을까요???


한국 개발자들이………………..이 경고를 무시해주세요..라고 메일을 보내야 하는 건가?



음…

어떤 파일들이 생성 되었을까요?


gtest.lib라는 파일이 생성 되었다.

d:\mybuild\Debug 라는 폴더에 말이다.


빌드 구성이 총 4개로 되어 있네요….

  • Debug

  • MinSizeRel : 최소 사이즈로 만들어주는 구나~~

  • Release : Release 용~!

  • RelWithDebInfo : 디버그 정보를 가지고 있는 Release용~!


자…

이제 테스트 할 수 있을 것 같은디~~~~!


자.. gtester를 돌려보자…


음….




음…

이제 링크까지 왔다….

자…...lib 파일을 걸어주쥐~~!!




gtest.lib

이 놈을 사용하자…


음...이렇게 했더니…

또 에러가 발생한다…

이런..


심각도 코드 설명 프로젝트 파일

오류 LNK1169 여러 번 정의된 기호가 있습니다. gtest_test001 c:\users\jesus001\documents\visual studio 2015\Projects\gtest_test001\Debug\gtest_test001.exe 1

오류 LNK2038 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(gtest_test001.obj에 위치) 값과 일치하지 않습니다. gtest_test001 c:\Users\Jesus001\documents\visual studio 2015\Projects\gtest_test001\gtest_test001\gtest.lib(gtest-all.obj) 1

오류 LNK2005 "protected: __thiscall std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ)이(가) msvcprtd.lib(MSVCP140D.dll)에 이미 정의되어 있습니다. gtest_test001 c:\Users\Jesus001\documents\visual studio 2015\Projects\gtest_test001\gtest_test001\gtest.lib(gtest-all.obj) 1



음.. MTd MDd...음..어디에서 많이 본것이다…

멀티 쓰레드 용인지 아닌지를 선택하는 것이다…


음…

MTd 를 선택하고 다시 빌드….



1>------ 빌드 시작: 프로젝트: gtest_test001, 구성: Debug Win32 ------

1>  stdafx.cpp

1>  gtest_test001.cpp

1>d:\googletest-master\googletest\include\gtest\internal\gtest-internal.h : warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.

1>  gtest_test001.vcxproj -> c:\users\jesus001\documents\visual studio 2015\Projects\gtest_test001\Debug\gtest_test001.exe

========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========



드디어 성공~~!!!ㅎㅎㅎㅎㅎㅎ

실행해보자…


드디어 성공!!!!!

ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

흐……

gtester를 실행시켰다…..


음..그런데 어디가 테스트부분인지 알겠나?



TEST(GtestSampleTest, testSample) {

 EXPECT_EQ(1, 0); ← 이곳의 값을 틀리게 하면…….. 실패가 나옵니다.^^

}


이렇게~!!


1개를 테스트 했고………………..GtestSampleTset.testSample을 2ms동안….실행시켰고….

그놈은 실패했다는 것이다.~~!!흐흐흫….


음…...이놈을 가지고 테스트를 만들어야 한다….흐흐흐흐흐흐흐흐흐흐흐흐흐ㅡ흐흐



[참고 URL]

http://surpreem.com/archives/626#sthash.6OU7fBDf.dpbs

https://github.com/google/googletest/tree/master/googletest



미친감자 김주생입니다.

아침 차안에서 기도 말씀 영어 공부를 복합적으로 하면서 그냥 녹화를 해 보았습니다.




Live broadcast by Ustream

음...나도 stl을 쓰고 싶어서….

stl을 시작했다…

책에 이런 내용이 있어..나도 그대로 해보았다…

나도 그 흥분을 느끼고 싶어~~~


그대로 실행해 보았다.


그런데 왠걸~~!!!


에러만 나온다….


error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::wstring' (or there is no acceptable conversion)


이 내용을 번역해보면….

이런 이런 std::wstring을 어떻게 처리해야 할지 모르겠다는 것 같군요…

뭐지???

a right-hand operand를 처리할 수 있는 operator가 없다고~~!!!


이런 이런 뭐지????


그래서...여기 저기 뒤져보며..이전에 STL을 사용했던 것을 기억해보니…

이전에도 이런 에러가 발생했던 것 같다…


결국  .c_str() 을 string에 붙여야 한다.

자. string 변수에 .c_str()함수를 붙여서 해보겠습니다.

.c_str() 함수를 붙여서 하니….에러없이 아주 잘 작동합니다.^^


자 보이시죠~~!!!!!!

흐...


뭐지...책이 잘못된 것일까????



책이 잘못된것 일까?

gcc는 될지 모르지...확인해보자..

linux gcc에서 말이다.


이렇게 하고 컴파일을 했습니다.

그랬더니….

뭐지~~

리눅스에서는 .c_str()을 붙이지 않아도….잘되네….

뭐지???

윈도우의 컴파일러 버전이 낮아서 그런가???

음… linux의 g++이라는 녀석의 cout에는 string을 처리할 수 있는 operator 가 있는가 보다.


새로운 버전인 Visual Studio 2015를 설치해보자…


그러고 보면….나는 아직도 string이라는 녀석을 모린다.


STL의 string말이다……


Visual Studio 2015를 웹으로 받아 설치하는데 시간이 조금 거리네요^^

그래서 이전에 노트북에 설치해 놓았던 Visual Studio 2013으로 테스트 해 보았습니다.


그랬더니~~!!!


해 보았더니~~!

에러가 발생하지 않네요….

잘되네요~~

그렇다면 결론은 Compiler 버전이 낮아서 발생한 문제였는가 보네요…

성공한 그림입니다. “test”라고 잘 찍혔습니다….


c_str()함수를 붙여야 했던 Visual Studio Version은 2008(9.0 Version)이였습니다.


그리고, .c_str()을 붙이지 않아도 됐던 Visual Studio Version은…2013(12.0)이였습니다.


음. 아무튼 최신 C++에서는 붙이지 않아도 되는 것 같습니다.

오늘은 여기끼자..

다음에는 string에 대해서 좀더 자세히 뜯어 먹어봅시다.

다들 추석 명절 잘 보내세요~~!


추석 명절에도 저에게 블로깅 할 수 있는 기회가 생길기 모르겠습니다.

주님께 기도해보겠습니다.

할렐루야~~!









오늘은 6명이 왔다….


그리고 나는 시스템 부분에 대해서 이야기 해주는 거라고 말하면서…

이런 저런 이야기.. CPU에 대한 이야기등을 말하기 시작했다…


나는 OS라는 녀석을 만들고 싶었다.

왜냐하면, 그 당시 2005년 당시에도 OS만 만들어도….뭔가 알아 주는 때였다……


그래서 나는 OS라는 녀석을 만들고 나의 실력을 인정받고 싶었다….


그래서, 나는 어디에서 주어 들은 “프로텍티드”모드에 대해서 사람들에게 말하기 시작했고….


프로텍티드 모드로 전환하기 위해서는 어떻게 해야 하죠?


고수에게 물어보니...아주 당연하다는 듯이 이렇게 말씀하셨다…..


“씨알 쓰리” 레지스터를 건들어줘야 쥐라고~~!!!

“씨알 쓰리가 뭔가요?”라고 물어보고 싶었지만, 그것도 모르냐는 소리를 들을 까봐 두려워 물어보지 못했다……..


그리고, 인터넷을 뒤져보았다…


씨알이라는 것은…..인텔 CPU의 아주 중요한 녀석이였습니다.


위키에도 있더라구요~~~(https://en.wikipedia.org/wiki/Control_register)

Control Register라는 녀석을 말하는 것이였어요


CR (콘트롤 레지스터) 인텔 CPU에만 있는 녀석 같아요~~

다른 ARM이니.. 다른 CPU에는 없는 것 같아요~~~!!!


A control register is a processor register which changes or controls the general behavior of a CPU or other digital device. Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and coprocessor control.

출처 : https://en.wikipedia.org/wiki/Control_register

위키에 이렇게 쓰여져 있어요~~!

프로세서 레지스터이다….프로세서 레지스터는 뭐 특별한 것일까?


변경하거나(changes) 콘트롤(controls)을 하는 것이다….뭐를?

the general behavior of a CPU or other digital device….

CPU의 일반적인 비해이비어(behavior)  

음….아니면. 어더 디지털 디바이스의 제너럴 비헤이비어(일반적인 behavior)를 변경하거나 콘트롤 하는 프로세서 레지스터!!!

뭔말이야~~!!

CR이...즉 CPU의 온각 설정을 세팅하는 것입니다…..


음….위 두문장이 굉장히 중요하구나~!!!


Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and coprocessor control.

이 문장 해석 가능하겠죠^^?

ㅎㅎㅋㅋ

일반적인 테스트들은 퍼폼드….퍼폼드…. 실행된…. 콘트롤 레지스터들에 의해…..

포함해요….

아..이제 해석되는군요…


콘트롤 레지스터에 의해 실행되는 Common tasks는


  1. 인터럽트 콘트롤

  2. 어드레싱 모드 스위칭

  3. 페이징 콘트롤

  4. 코프로세서 콘트롤

이다. 즉.. CR(Control Register)가지고 할 수 있는 것들을 말한다~~!


인터럽트, 어드레싱, 페이징, 코프로세서까지...말이다!!!

이것을 CR이 하는 것이다!!! 씨알이 말이다!!!





프로세스에 대한 이야기를 하다 말았다…


프로세스에 대해서 좀더 썰을 풀고 싶었지만….생각 나는 것이 없었다…


프로세스는 환경을 만드는 것이다...라고 말해 주었다……


프로세스…




오늘은 여기 까지~~!!


음…

뭘해야지?

성령님 뭘해야햐죠?

뭘그리죠?


오늘 본 단어를 확인해보자…


원룸에 살다…

를 영어로 해보자..

live in a studio


이것도 저작권에 문제가 있나?

모르겠다.



저작권은 영어로 뭔가?

What is 저작권 in english?


저작권 is ‘copyright’

copy 복사할 수 있는 권한(right)인가?

음...아무나 복사할 수 없다는 것인가?

그렇지….말되네…


아니면 말구요..죄송합니다.

하나님이 주신 저의 뇌를 마음대로 굴려 보았습니다.


자..그럼 말 나왔으니까..

남은 시간동안은...copyright의 어원에 대해서 아아 보도록 하죠~!!



판권이라고도 표현하는군요~~


그러면 판권은 뭐죠^^?


이런 무식쟁이여~~

검색을 하자~~


판권은 또 뭐야?



저작권(著作權, copyright 카피라이트[*])은 창작물을 만든이(저작자)가 자기 저작물에 대해 가지는 배타적인 법적 권리로, 많은 국가에서 인정되는 권리이다. 저작권은 만든이의 권리를 보호하여 문화를 발전시키는 것을 목적으로 한다. 저작권자는 법에 정하는 바에 따라 다른 사람이 복제·공연·전시·방송·전송하는 등의 이용을 허가하거나 금지할 수 있다. 저작권은 지식 재산권의 하나로, 인격권과 재산권으로 나뉜다. 저작권의 내용은 나라마다 다르며, 국제법베른 협약에 바탕을 두고 있다.

작권을 표시하기 위해 ©, (C) 또는 (c) 심볼을 이용하기도 한다.
출처 : 위키

배타적 법적 권리???


복제/공연/전시/방송/전송등을 허가하거나 금지할 수 있는 것~!!!


지식 재산권

인격권

재산권

이런 새로운 단어들이 나오는 구나~~!!!

아니구 머리야~~!!


베른 협약은 또 뭔가?


이탈리아에서 처음으로 만들었구만~~!!


오늘은 여기까지…

흐~~블로깅은 참 어렵구만…


그런데 다음달 마소는 무슨 내용으로 글을 쓰나?

음….

포인터는 했으니……….

뭐 재미있는 내용은 없나?


포인터 배열…

이제 뭐까 또인까?

음….

언어란 무엇인가?

음…

무슨 내용으로 해야 한단 말인가?




https://ko.wikipedia.org/wiki/%EC%A0%80%EC%9E%91%EA%B6%8C ← 저작권 위키내용!!!



하루에 꼭 한개의 포스팅을 할 것이다.

내용은 일단 상관없다…

저작권에 문제가 없는 글..

수순한 개인적인 것으로 다..


+ Recent posts