Nachos는 C++로 작성된 교육용 OS simulator.
MIPS 계열 binary application을 만들고, 이것을 불러서 simulation하는 OS로 알고 있습니다. 그럭저럭 볼만한...
단순한 OS 개념을 알기 위해서라면
Stevens Advanced Programming in the UNIX Environment랑, Bach의 The Design of UNIX Operating System을 보면서 가끔 Linux kernel source 아주 쪼끔.. 나머지는 system call interface를 쓰는 예제 프로그램 만드는 것이 더 도움이 될 듯...
아마 조금 힘든 OS수업을 들었던 분이라면 다들 한번씩 숙제로 만져보셨을 나초스이지요. 꽤 오래전 이야기이지만 숙제가 전부 5번까지 있었던 것으로 기억하는데, 확실히 꽤 도움이 됩니다. vmm 와 파일시스템 하나를 그래도 구현해야 하니까요. 간단한 소스분석으로 끝내지 마시고 제공되는 과제를 직접 구현해보시지요. nachos를 i386에 포팅한 nachos486 이라는 놈도 있습니다. 아쉽게도 공개는 아니군요.
북미 computer science 학부과정의 de facto OS 과목의 assignment로 쓰이고 있지요.
저는 nachos 를 C++로 했었구요, OS에 대해서 너무 너무 이해안가는 부분도
많고 궁금했었는데 nachos를 가지고 놀면서 정말 많이 배웠지요.
콘솔에 프린트 가능한 system 콜을 처음 만들었을때 기분이란 :-)
근데 숙제량이 꽤 많아서 생긴 추억도 많이 있습니다. 과제팀은 3명으로
구성되어 있었는데.. 한명은 열심히만 하고 실제로 도움은 되지 않는
사람이었고, 또 한명은 무지하게 코딩은 많이 하는데 잡기 어려운
버그를 만드는 일을 해서 저를 무지하게 괴롭혔고
저는 숙제를 똥줄 타기전까지는 시작안하는 버릇때문에 숙제 내기 전날은
밤새도록 아주 키보드가 부서지듯이 코딩했던 적도 있습니다. (결과는 no good)
하여간 이 과목으로 인해서 제가 OS 에 대한 관심이 많아졌고
지금도 kernel이 제 주 관심사가 된것 같습니다.
확실히 도움은 많이 되는 녀석이니까 열심히 하세요!!
덧: nachos 관련 문서를 읽다가 한참 웃은적이 있었는데 그 내용이
한 ambitious한 학생이 nachos에 emacs를 포팅하겠다고 하겠다고
한적이 있었다고 하더군요. 근데 nachos에 애정이 생기면 emacs까지는
아니더라도 자기만의 세계를 만들고 싶어하는 충동은 누구나 생기는것
같습니다. :-)
눈치 채신 분들도 계시겠지만, XINU는 UNIX의 반대가 되는 이름이고 상당히 오래된 OS입니다
Xinu도 recursive였던것 같은데요?
Xinu is not unix의 각 단어 initial로 만든거였던듯 합니다만...
대략 6-7년쯤 전인가 embedded os로 썼었던 같습니다.
확실히 uC/OS보다는 훌륭했고, eCos보단 가벼웠던것으로 기억합니다.
usb 올리느라 엄청 삽질했었던 암울한...ㅋㅋㅋ
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
.C (대문자).cxx.cc.cpp (DOS/Windows에서
.C (대문자)
.cxx
.cc
.cpp (DOS/Windows에서 쓰던..)
이상 C++ source file extension
.tex
이상 TeX source file extension.
Nachos는 C++로 작성된 교육용 OS simulator.
MIPS 계열 binary application을 만들고, 이것을 불러서 simulation하는 OS로 알고 있습니다. 그럭저럭 볼만한...
단순한 OS 개념을 알기 위해서라면
Stevens Advanced Programming in the UNIX Environment랑, Bach의 The Design of UNIX Operating System을 보면서 가끔 Linux kernel source 아주 쪼끔.. 나머지는 system call interface를 쓰는 예제 프로그램 만드는 것이 더 도움이 될 듯...
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
gg
자세히는 모르시더라도 조금이라도 정보를 주셨으면 고맙겠네요......^^;;
\(´∇`)ノ.大韓兒 朴鐘緖人
재미있네요.pjs0919님이 나초스라고 하셔서 왜 저렇게 읽나 했
재미있네요.
pjs0919님이 나초스라고 하셔서 왜 저렇게 읽나 했었는데..
사이트 들어가 보니까, 정말 나초가 있네요.-_-;
학교에서...
학교 운영체제 강의시간에 과제용으로 많이 쓰이던데요 ㅎㅎ
아주아주 기본적인 것만 되어있으므로,
파일IO, 프로세스 관리, 메모리 할당 등의 과제가 주어집니다.
그 홈페이지에 보면, assignment example인가.. 있을껍니다 ㅎㅎ
생각보다 거창하지도, 생각보다 만만하지는 않은 걸로 기억합니다.
아, c 버젼도 있고, c++ 버젼도 있고.. java버젼도 있을 껍니다 ㅎ
아마 조금 힘든 OS수업을 들었던 분이라면 다들 한번씩 숙제로 만져보셨을
아마 조금 힘든 OS수업을 들었던 분이라면 다들 한번씩 숙제로 만져보셨을 나초스이지요. 꽤 오래전 이야기이지만 숙제가 전부 5번까지 있었던 것으로 기억하는데, 확실히 꽤 도움이 됩니다. vmm 와 파일시스템 하나를 그래도 구현해야 하니까요. 간단한 소스분석으로 끝내지 마시고 제공되는 과제를 직접 구현해보시지요. nachos를 i386에 포팅한 nachos486 이라는 놈도 있습니다. 아쉽게도 공개는 아니군요.
http://www.cs.virginia.edu/~bah6f/nachos486/
전 먹는건줄로 알았습니다. ㅡㅛㅡ/여전히 배고픈 수다맨 . . .
전 먹는건줄로 알았습니다. ㅡㅛㅡ/
여전히 배고픈 수다맨 . . .
---------------------------------------------------------------
폐인이 되자 (/ㅂ/)
Re: 나초스..........
저희 학교 OS 시간에 5단계로 숙제로 했었는데,
참 제대로 된 교육자료입니다.
OS의 대부분은 구현되어 있고,
핵심적인 부분은 구현 안되어 있습니다.
그 부분을 구현하는 게 숙제죠.
예를 들면, VMM 라던가, OS service call 같은 것을 작성하게 됩니다.
단순히 코드를 읽는 것으로 도움이 될지는 의문입니다.
직접 작성해봐야, 어디와 어디가 맞물려 돌아가는지 이해하게 되니까요.
즐겁게 살아 볼까나~*
Nachos라... 참 오랜 만에 듣는 이름이네요...예전에 OS
Nachos라... 참 오랜 만에 듣는 이름이네요...
예전에 OS 수업들을 때 그걸 이용해서 Project를 했었는데요...
뭐... 좋습니다... 좋습니다만, Nachos의 Code는 OS Code만 있는 게 아니죠... 그 Machine을 Emulate하기 위한 Java Code가 상당수 들어있습니다...
사실, OS를 OS자체로만 놓고 공부하기에 최상의 교재로 보기는 좀 그렇더군요... 다른 Code가 많이 끼어 있기 때문이죠...
그런 의미에서 'XINU'라는 것을 상당히 높게 평가합니다...
얼마 전에 수업 시간에 썼었던 것인데요... PC를 순수하게 XINU COde만 가지고 Booting을 하고 이용합니다... OS 수업 시간에 배우는 개념들을 실제로
Machine이 동작하도록 짤 수 있습니다...
물론, Coding과 Compile을 하고 Binary를 이용해서 돌여야 하는 2중 구조로 인하여 Front-End와 Back-End로 나뉘어 있습니다...
정말 엑기스 OS Code만을 볼 수 있습니다...
(실제로 Machine을 동작시키는 Code로 되어 있기 때문에 INTEL CPU Manual을 좀 봐야 하는 부담이 있습니다... Registier를 제어해야 하기 때문이죠...)
아마 대학에서 교재로 사용하는 곳은 미국의 Purdue University라는 곳이 유일할 겁니다... 거기에 저자가 있어서요...
눈치 채신 분들도 계시겠지만, XINU는 UNIX의 반대가 되는 이름이고 상당히 오래된 OS입니다... 물론, 교육용으로만 국한되어 있지요...
Nachos!
북미 computer science 학부과정의 de facto OS 과목의 assignment로 쓰이고 있지요.
저는 nachos 를 C++로 했었구요, OS에 대해서 너무 너무 이해안가는 부분도
많고 궁금했었는데 nachos를 가지고 놀면서 정말 많이 배웠지요.
콘솔에 프린트 가능한 system 콜을 처음 만들었을때 기분이란 :-)
근데 숙제량이 꽤 많아서 생긴 추억도 많이 있습니다. 과제팀은 3명으로
구성되어 있었는데.. 한명은 열심히만 하고 실제로 도움은 되지 않는
사람이었고, 또 한명은 무지하게 코딩은 많이 하는데 잡기 어려운
버그를 만드는 일을 해서 저를 무지하게 괴롭혔고
저는 숙제를 똥줄 타기전까지는 시작안하는 버릇때문에 숙제 내기 전날은
밤새도록 아주 키보드가 부서지듯이 코딩했던 적도 있습니다. (결과는 no good)
하여간 이 과목으로 인해서 제가 OS 에 대한 관심이 많아졌고
지금도 kernel이 제 주 관심사가 된것 같습니다.
확실히 도움은 많이 되는 녀석이니까 열심히 하세요!!
덧: nachos 관련 문서를 읽다가 한참 웃은적이 있었는데 그 내용이
한 ambitious한 학생이 nachos에 emacs를 포팅하겠다고 하겠다고
한적이 있었다고 하더군요. 근데 nachos에 애정이 생기면 emacs까지는
아니더라도 자기만의 세계를 만들고 싶어하는 충동은 누구나 생기는것
같습니다. :-)
VM 구현할 때 버그로 너무 피봐서-_-;지금 생각하면 정말 웃긴 얘
VM 구현할 때 버그로 너무 피봐서-_-;
지금 생각하면 정말 웃긴 얘기입니다만..
하도 버그가 안 잡혀서(아마 3일쯤 고생-_-) 과제 제출이 바로 코앞인데
때려치고 친구 방에서 맥주와 나초-_-를 안주로 사다놓고 씹으면서;
아 이놈의 나초 두고보자;; 하면서 열심히 마시고 잤는데;
다음날 아침 일어나서 버그를 바로 잡았다는 무념한 에피소드....-_-
[quote="sDH8988L"]눈치 채신 분들도 계시겠지만, XINU는
Xinu도 recursive였던것 같은데요?
Xinu is not unix의 각 단어 initial로 만든거였던듯 합니다만...
대략 6-7년쯤 전인가 embedded os로 썼었던 같습니다.
확실히 uC/OS보다는 훌륭했고, eCos보단 가벼웠던것으로 기억합니다.
usb 올리느라 엄청 삽질했었던 암울한...ㅋㅋㅋ
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
언제나 보는거지만..저 아바타 너무 강렬해요 8)
언제나 보는거지만..
저 아바타 너무 강렬해요 8)
----
http://www.planetmono.org