Study
멀티태스킹 기능으로 여러 프로세스를 동시에 동작시키는 것, 메모리 페이징 시스템을 구현하여 적은 양의 메모리를 효율적으로 관리하는 것 등은 모두 Protected Mode에서 이루어진다. PC에 전원이 들어간 후 CPU의 초기 모드인 Real Mode와는 달리 Protected Mode로는 작성된 프로그램을 통해서 몇몇의 설정을 행한 뒤에 들어가야 한다. 16비트 Real Mode Real Mode는 PC가 부팅할 때 맨 처음 동작하는 CPU [...]
Continue reading about OS 커널의 구조와 원리 : 3. Protected Mode로 변환
PC에 전원이 들어오고 POST 과정이 끝난 후에는 OS 커널을 로드하는 과정이 실행된다. 커널의 로드는 모든 OS에서 비슷한 과정을 수행한다. 디스크의 MBR 이라는 좁은 곳에 커널 전체를 넣을 수는 없다. 따라서 모든 OS에서는 MBR에 있는 프로그램으로 하여금 디스크의 뒷부분을 RAM으로 더 읽어들이게 한 후 그 읽어들인 곳을 부터 프로그램을 점프시키는 방법을 사용한다.
Real Mode 와 Protected Mode Real Mode란 머퓨터에 전원이 들어온 후 CPU가 처음 움직이기 시작하면서 활동하는 모드. 리얼모드에서는 프로그램이 한 번에 한 개씩밖에 동작하지 못한다. 그리고, 한 프로그램은 현재 컴퓨터가 가지고 있는 램의 모든 영영ㄱ을 자기 마음대로 사용할 수 있다. 프로그램이 C 언어 함수 while(); 등으로 무한루프를 돌리면 도중에 사람이 인터럽트를 걸어서 멈추기 전에는 어느 [...]
리눅스에서는 여러가지 IPC(Interprocess Communication) 을 지원한다. 그 중, 메시지 큐의 경우 기본으로 잡혀있는 Open 가능한 최대 갯수는 16개로 지정되어 있는데, 간혹 여러 개의 메시지 큐를 사용하는 프로그램을 사용한다거나 등의 이유로 많은 갯수의 Message Queue가 필요한 경우 에러가 발생한다. 오늘 있었던 일도 그 중 하나였는데, 계속 해서 프로그램 구동시, Message Queue의 생성이 실패하며 자꾸 프로그램이 죽는 [...]
그놈 터미널을 사용하던 중, 터미널의 제목이 변경되지 않는 문제점을 발견했다. 평소에는 신경쓰지 않다가 꼭 한번씩 여러개의 창을 동시에 띄워 놓았을때, 헷갈려서 제대로 된 작업 공간을 찾기까지 꽤나 여러번 창을 이동해야 했던 불편함이 있었다. 며칠을 미루다 이번에 변경을 하여 그 내용을 포스팅한다. 간단하다. 위의 그림 처럼 자신의 홈디렉토리 내에 .bashrc 파일의 제일 아래쪽에 아래의 라인을 추가해주면 [...]
Continue reading about Changing gnome ternimal title on ubuntu linux
워드 프레스를 사용하던 중 아래와 같은 에러를 발견하였다. WordPress Error – Fatal error: Cannot redeclare class Facebook in /wp-content/plugins/simple-facebook-connect/facebook-platform/facebook.php 관리자 계정으로 로그인 하여 글을 수정 하려고 했는데 위와 같은 에러가 발생하면서 로그인이 안되는 현상이었다. 에러 메시지의 원인은 메시지 내용에 나타나있었다. Facebook 관련된 플러그인에서 오류가 발생하여 로그인을 할 수 없다는 내용이다. 오류가 발생한 이유는 중복 선언. [...]
APUE 예제를 따라하다가 이상한 부분을 발견했다. 예제 파일을 실행한 후 생성된 결과 파일을 Vi 에디터로 열었더니 아래의 스크린샷처럼 나온 것. 파일 안의 내용은 정상이다. 하지만 문제점은 마지막 부분 “file.hole” [noeol] 부분. 리눅스를 사용하기때문에 자주 Vi 에디터를 사용하는 나로서는 처음 보는 메시지였기에 관심이 갔다. 찾아보니 원인은 간단. http://www.computing.net/answers/unix/last-line-is-not-complete/7506.html 의 경로에서 그 내용을 확인할 수 있었다. 내용인즉, [...]
사내 테스트를 위해 VMware에 CentOS를 올려서 사용하던 중 자꾸 부팅시에 이상하게 네트워크 설정이 꼬이는 현상이 일어났다. 정확히는 부팅을 하는 과정에 계속 게스트 OS로 ping 을 보내고 있었는데 ping이 처음에는 잘 나가다가 어느 순간부터 ping이 끊이는 것이었다. 아마도 특정 프로세스가 실행되면서 설정된 네트워크 세팅에 영향을 주는 것 같았다. 완전히 부팅된 다음에 네트워크 재 설정을 시도하여 원래의 [...]
7: Lists and Mutability, Dictionaries, Introduction to Efficiency import math #Get baseinputOK = Falsewhile not inputOK: base = input(‘Enter base: ‘) if type(base) == type(1.0) : inputOK = True else: print(‘Error. Base must be floating point number.’) #Get HeightinputOK = Falsewhile not inputOK: height = input(‘Enter height: ‘) if type(height) [...]
Continue reading about Lec 7 | MIT 6.00 Introduction to Computer Science and Programming, Fall 2008
Ubuntu 10.04 에서 RDP, VNC 등등을 사용하기 위해 프로그램을 찾던 중, 우분투에서 기본으로 설치되어있는 Terminal Server Client(/usr/bin/tsclient) 를 사용하기로 했다. 사실 Ubuntu 10.04 에는 tsclient 말고 다른 접속 프로그램이 더 있다. vinagre(/usr/bin/vinagre)가 그것인데, 하지만 한가지 단점이 있었다. 이상하게, 원격 접속하려는 컴퓨터에 VMware가 올려져 있으면, 원격 컴퓨터로 접속되는 것이 아닌, VMware로 올려져 있는 컴퓨터로 접속되는 것이었다. [...]
Continue reading about Using full screen mode Termial Server Client


최근 답글