[완료] Kernel공부 하려고 합니다만...ubuntu는 어떤가요..

chiar의 이미지

페도라, 데비안, 우분투를 써보기만 했는데요.. 제대로 아는건 없고 -_-;

운영체제 수업을 듣고나서 OS에 상당한 관심을 가지게 되었습니다.

그래서 혼자서라도 계속 파보려고 하는데요

가장 편하고 쉽게 썻던 우분투를 설치했는데 계속 말썽입니다...

커널 컴파일도 안되고.. nachos 컴파일도 안되고..

전에 데비안에서 했을땐 커널 컴파일은 무사히 했는데말이죠 -_-
(컴파일하고 커널 패닉떳지만;;)

아는게 개뿔도 없는데 드립다 맨땅에 헤딩하니 정말 삽질 포크레인질 다하고있고

검색엔진과 사이트만 죽어라 들락날락합니다... 후 -_-;

우분투로는 저같이 맨땅에 헤딩하는 초보자가 커널공부하긴 환경이 안좋은가요..

apt때문에 우분투를 버리지 못하고있긴한데...-_-;;

배포판을 바꿔야할까요... 정작 실습은 하나도 못해보고 몇일째 이러고만 있습니다..

haze11의 이미지

우분투에서 커널컴파일이 안되는 이유가 뭘까요?
sudo apt-get install build-essential 은 하셨죠?

dragonkun의 이미지

배포판 바꾸지 마시고 하나만 파시기 바랍니다..-_-
다 거기서 거기니까, 배포판을 바꾼다고 할 줄 몰랐던 커널 컴파일 기술이 생기는 것도 아니구요.
커널 컴파일 할 때 필요한 패키지가 다 설치되셨는지 확인해보세요.
make menuconfig 를 쓰신다면 일반적인 개발 패키지 외에 ncurses-dev 도 필요하니 설치해 주시고..
인터넷에 널려있는 커널 컴파일 문서도 참조하시기 바랍니다.
-------
Emerging the World!

Emerging the World!

chiar의 이미지

읔읔 감사합니다 ㅠ ㅠ 날카로운 채찍에 방금 컴파일 문제를 해결했습니다 ㅎㅎ ;ㅁ;
(패키지의 부재였습니다 으 창피 *-ㅠ-* )

근데 문제는 여전히 nachos인데... 이거는 참... 참조할 문서도 별로 없고

그나마 문서들도 죄다 영어인데 보면 대학 프로젝트같은거같고 -_-;;

MIPS로 크로스 컴파일 하라는데 그 문서들도 찾기 힘들고 ㅠㅁㅠ
(크로스 컴파일 뜻만 알지 뭘 어떻게 하는지 전혀 모르겠네요 -_-;;)

목마른 사슴에게 한모금 냉수가 되어줄 nachos에 관한 그런 문서가 어디 없을까요? ;ㅁ;

DebPolaris의 이미지

MIPS에 관한 내용은 이 사이트 한 번 들어가 보세요..
http://www.linux-mips.org/
여기에 보면 하시는 법 나와 있습니다... 아니면 KELP들어가서 MIPS로 검색해 보세요...
어떤분이 올린 글이 있더군요...

To follow the path: (이 길을 따르라)
look to the master, (달인을 찾으라)
follow the master, (달인을 따르라)
walk with the master, (달인과 함께 걸으라)
see through the master, (달인을 분석하라)
become the master. (달인이 되라)

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

chiar의 이미지

알려주신 문서들 감사합니다! 이것저것 실행해보면서 조금씩 나아가고는 있는데 -_-;;

threads에서 make가 안먹는군요...

root@coffee:~/NachOS/code/threads# make depend
g++ -I../lib -I../threads -I../machine -DTHREADS -Dx86 -DLINUX -DCHANGED -M ../lib/bitmap.cc ../lib/debug.cc ../lib/hash.cc ../lib/libtest.cc ../lib/list.cc ../lib/sysdep.cc ../machine/interrupt.cc ../machine/stats.cc ../machine/timer.cc ../threads/alarm.cc ../threads/kernel.cc ../threads/main.cc ../threads/scheduler.cc ../threads/synch.cc ../threads/synchlist.cc ../threads/thread.cc ../machine/elevatortest.cc ../machine/elevator.cc > makedep
makeecho '/^# DO NOT DELETE THIS LINE/+2,$d' >eddep
echo '$r makedep' >>eddep
echo 'w' >>eddep
echo 'q' >>eddep
ed - Makefile < eddep
rm eddep makedep
echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
echo '# see make depend above' >> Makefile

root@coffee:~/NachOS/code/threads# make
g++ -g -Wall -fwritable-strings -I../lib -I../threads -I../machine -DTHREADS -Dx86 -DLINUX -DCHANGED -c ../lib/bitmap.cc
cc1plus: error: unrecognized command line option "-fwritable-strings"
make: *** [bitmap.o] Error 1
root@coffee:~/NachOS/code/threads#

make depend -> make시 오류화면인데요...

솔직히 depend가 제대로 먹는지 의문이지만 제쳐두고 man g++해봐도 fwritable-strings라는 옵션이 존재하지 않는데요...

환경설정을 어찌 해줘야하는건지 여전히...헤궁 ㅠ ㅠ 도움 부탁드립니다... 계속 삽질중 으쌰;;

wish의 이미지

나초스 하시는군요 ^^

제가 나초스를 했을 때, 파다가 보니까 나중에는 이상하게 에뮬레이터 코드까지 들여다 보게 되더군요 ㅡㅡ;;;

제 개인적으로는 무슨 OS 를 하든 생(raw) 하드웨어에 직접해 보는 것이 더 재미도 있고, 공부도 많이 되지 않을까 합니다.

시중에 x86 기반으로 만든 교육용 혹은 취미용 OS도 참 많구요 ^^;; 책도 적지 않죠. 특히 우리나라 책 중에 자체적으로 OS를 만들면서 설명하는 책이 제가 아는 것만 2개나 있습니다. 게다가 x86 아키텍쳐 매뉴얼은 매우 잘 되어 있는데가가, 요청하면 공짜로 전질을 보내줍니다. 웹으로 직접 요청하는 폼은 사라졌는데, 그냥 인텔에 메일로 "나 학생인데, PDF 보느라 눈 빠지겠다. 하나 보내주세요 ㅜㅜ" 라고 되지도 않는 영어로 보내고 잊고 1~2달 지나니, 어느날 배송 업체(?)에서 전화가 와서 매뉴얼 주고 가더군요 ^^

본론으로 넘어가서...

Quote:

unrecognized command line option "-fwritable-strings"

제가 방금 -fwritable-strings 를 google 에 딱 입력하니까,
http://www.laakshmi.com/aarre/wp/archives/26
요 블로그가 나오네요.

gcc 4.0 기준으로 더 이상 writable-strings 옵션을 허용하지 않고, 따라서

char *s = "I'm Ugly String!"

의 문자열을 더 이상 고칠 수 있게 하지 않는다는 뜻입니다.

결론은

1) 나초스가 이전 g++ 기준으로 만들어졌다.
2) 우분투 최신 버전은 gcc 4.0 이상이다
3) 그래서 컴파일 되지 않는다

해결책은

1) gcc 를 3.4 이전 버전으로 깔아서 쓴다.
2) make 에서 -fwritable-strings 옵션을 없애고, writable-strings 를 쓴 소스코드를 고친다.

두 가지 해결책이 있겠습니다. 이런 원칙적인 해결책 이외에 잘하고 있는 사람한테 가서 계정 하나 달라고 하고, 거기서 작업하는 방법도 있겠습니다 ^^;;;

제가 처음 말씀드린 나초스에 대한 것도 이런 부분의 한 종류인데, 이놈의 나초스는 하여간 하다 보면 make 문법보고 있고 머 이랬었기 때문에 ㅜㅜ 님께서도 좀 그런 마수에 빠지신듯한 느낌이 ;;;

chiar의 이미지

헐 감사합니다 ㅠ ㅠ 저도 완존 캐삽질하던중 xx대학교 홈피에서 저 옵션을 없애고
컴파일하는 요령이 올라와있던데

"옵션을 없애고 make할때 생기는 link.cc에서 뜨는 오류를 찾아 디버깅한다... this->로..."

라는 개략적인 내용인데...
솔직히 C만 제대로 배운 우인인지라... 모르겠습니다 후후 ㅠ ㅠ
디스포인터로 어떻게 하는지... 무식하면 손발이 고생한다고...
딱 제이야기군요... 일단은 3.4이하로 다운해서 해야겠군요 -ㅂ-;;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.