Low Level 의 Coding 을 파악을 해야 System 단위에서 Program 이 어떻게 동작하는 지? 를 알 수가 있기도 해야하는데 최근에 생각이 바뀜.. 


Low Level 에 대해서는 기계어와 1대 1 대응하는 어셈블리어로 구현을 한다는 것은 알고 있었는데 구체적으로는, 


Inner memory 개념으로 Programming 을 하는 것이 된다고 봄. ㅇㅅㅇ..


 


그래서, Linux Kernel 등에 대해서도 Inner memory 수준으로 연산조합을 제한시켜서 구현을 했다는 것이 보통 컴퓨터과학 등등에서 말하는 


기초언어인 C 언어의 Schema 로 구현이 되어있는 것으로 생각함. 


구체적으로는 자료구조의 Pointer 를 중심으로 하는 List/Stack/Queue/Tree/Graph 등등의 핵심이 되는 자료구조 Module 에 대해서 Memory 에, 


Inner Specific 한 조합의 List 으로 구현을 한다면 High Level 에서 작성하는 것도, 


최적화 수준의 CODE 가 되면서 동시에 Low Level 이 되는 것같음. ㅇㅅㅇ; 


컴퓨터구조를 공부하면 알겠지만 컴퓨터의 연산(Operation) 은 Memory 단위로 Hit table 의 조합으로 Pointer 로 연결되면서 


산술/논리의 CPU or GPU 하드웨어 연산에 연결되는 것이기도 해서 맞는 듯함. 




그래서 Java 나 Python 이 C 언어를 기초로 구현된 언어들 중 대표적인 것이라고 유명한 것같기도 한데,


일단 High 와 Low 의 차이는, 


1) 하드웨어의 Memory 에서 Hit table 의 Symbol 을 생각할 필요가 없고, 


2) High Level 에 나타날 수 있는 조합의 List 에 대해서 Low Level 이 조합의 List 에 대한 CODE List 를 알아서 처리해준다는 것에 있는 것같음. ㅇㅅㅇ.. 


결과적으로 High Level 에서 추상적인 관점이 가능한 것은, 


Inner memory 단위에서 Hit table 을 High Level 에서 List 단위로 신경을 쓰지를 않아도록 감추게 된다는 것에 있는 것같음. ㅇㅅㅇ..




그래서 OS(운영체제) 의 Kernel 에 대해서는, 


하드웨어의 IN/OUT 의 조합에 대해서 Stack 의 Queue 로 Table pointer 를 하드웨어의 연산기로써의 List table 에 대한 입출력의 조합에 대해서, 


Symbol 으로써 관리해주는 것이 장치도구로써의 OS(운영체제) 의 의미인 것으로 보임. ㅇㅅㅇ.. 




그러니까 운영체제(OS) 에서는 하드웨어의 IN/OUT (입출력) 조합에 대해서 연산기로써의 Push/Pop 의 List table 을, 


내부적으로 형식적 호환을 지원을 하는 소프트웨어이기도 하고 그런 의미에서, 


연산기 단위의 입출력 조합을 Symbol table 로 가지고 있어서 그것으로 부터 Stack 의 Queue 를 조합에 관해 Table pointer 를 구현한 것이 


되는 것으로 보아도 괜찮을 듯 싶음. 


ㅇㅅㅇ