'bash'에 해당되는 글 3건

  1. 2010.07.28 Humor for geeks(?) (6)
  2. 2010.07.24 트위터에서의 짤막한(...) 실험 (6)
  3. 2010.06.24 방학을 한달이나 까먹었는데 (9)

Humor for geeks(?)

분류없음 2010.07.28 01:16
A cat was walking on the wonderland. One day, Alice asked the cat. "Hey, what's your name?" It answered, "Hey, what's your name?" Alice was a little disturbed. "I beg your pardon?" It answered, "I beg your pardon?" Being frustrated, Alice asked Bob for help. Bob gave a piece of paper to the cat. Suddenly, the cat just stopped talking. Being amazed, Alice asked Bob: "Fantastic! How did you do that?" Bob showed her the piece. It said, '>/dev/null'.

이걸 알아보실 수 있다면 여러분은 이미 저 이상으로 리눅서<<<<
신고
Posted by 애쉬군
초저녁 쯤이었습니다.
전 항상 머리속에 위키백과에서 봤던 bash fork bomb라는 셸 스크립트를 외워(...) 두고 다니죠.[각주:1]
그래서 한 번 그 스크립트를 트위터에 뿌려 봤죠.

예전에 그걸 본 분 들의 반응("뭥? 이게 뭔가여?" 라든가 "왜 유용한 쉘 스크립트를 짜지 않고 이런 걸로 잉여력을..." 이라든가.)이 있기 때문에 이번에도 반응은 별로 크지 않을 것이다(...)라고 생각했습니다.

그런데 이번엔 무려 세 명이나 낚였죠(...)

일단 그 세 명의 실험 결과를 각각 말씀드리기 전에 제가 두 번 했던 실험의 결과부터 말씀드리려고 합니다.

1. 저의 1차 실험(Windows 7 + msysgit 사용)
1차 실험은 "에이 설마, 이게 (아예 메모리 구조 같은 게 다른 윈도에서도) 먹히겠어?"라는 의혹이 있었기에 그냥 아무런 대비책 없이 코드만 쳐 봤습니다.
그리고 잠시 후, 저는 절망하고 말았습니다.
작업 관리자의 프로세스 탭을 열어 보니까 보이는 것은 엄청난 양의 sh.exe들[각주:2]이었고, 그걸 끄려고 뭔가 실행하려고 했을 때는 이미 늦은 상태였거든요.

결국 콜드 리붓해버렸습니다.

2. 저의 2차 실험(Windows 7 + msysgit, 옆에는 대응책으로 cmd도 같이.)
2차 실험에서는 이미 1차 실험을 통해 포크밤의 파급력(...)을 알기에 이제 옆에는 taskkill /f /im "sh.exe"[각주:3]라는 명령어가 항시 장전된 cmd.exe를 띄워 놓았죠.
그리고 sh.exe에서는 포크 밤이 돌아가기 시작했고, 그 0.1초 뒤로 저 taskkill을 돌렸습니다만...

다행히도 빠른 대처로 이번에는 "bomb" 수준으로 가는 것을 막는 데 성공했지만,
이후에 메모장을 이용해 로그 분석을 해 보니 무려 프로세스 245개가 킬된 흔적이 보이더이다.


...이런 제 실험 결과까지 첨부했는데도 이싸람들이 SM플레이 기질이 있는 건지(?) 그 코드를 사용하겠다고 생떼(...)를 부리는 통에 결국 3명의 유저의 실험값을 얻게 되었습니다.

3. 맥 유저의 실험
타임라인상에서 더이상 말하지 않아도 될 정도로 유명한(...) 맥 유저 한 분이 실험에 동조.
결과는...
sh: fork: resource temporarily unavailable
sh: fork: resource temporarily unavailable
sh: fork: resource temporarily unavailable
(무한 반복...)
...그렇습니다.
맥은 애초에 저런 포크밤 같은 사태를 막기 위해 대비책이 매우 잘 되어 있었던 것이었습니다......

덧: 그분이 바로 일전에 좀 그런 반응을 보이신 그 분이었습ㄴ(밟힌다)

4. iPod Touch 유저의 실험
그리고 위 3번 분과는 지인 관계(...)인 한 분이 무려 팟 터치(...)를 이용해서 실험을 하시는 대담함을 보여주셨습니다.
그 뒤로 무려 yfrog video에 올리시는 대담함(...)을 선보이셨죠.
물론 ssh를 사용했지만 bash 사용이라는게 중요합니다.

결과요?

비슷합니다.
sh: retry: fork: resource temporarily unavailable
sh: retry: fork: resource temporarily unavailable
sh: retry: fork: resource temporarily unavailable
sh: fork: resource temporarily unavailable
무한 반복하다가 함수가 성공적으로 종료됐다는 뜻의 말이 스쳐지나갔긴 합니다만, 결국 그의 팟은 멀쩡했습니다(...)

5. Fedora 유저 한 명의 실험
그쪽엔 항상 killall -STOP sh를 다른 셸에 장전하라는 소리를 해두고 "하려면 해. cold reboot으로 인한 리스크는 책임지지 않아.[...]"라고 말을 했습니다만... 활동 잘 한 거 보면 말해둔 대로 잘 한 듯.

6. 이 실험의 진짜 결론
저는 이 실험을 통해서 컴퓨터 마니아들의(물론 저도 포함인지도 모르겠습니다만) 이해할 수 없는 특성을 하나 알아버렸습니다.

바로 이 싸람들이 왜인지는 몰라도 자기 컴퓨터를 망가뜨리는 코드에 열광하는(...) 경우가 있다는 거죠.

대체 이건 뭘 암시하는 걸까요.(......)

 - 트위터에서 렌 취급 받고 있는(...) 애쉬군, 로그를 정리하며
  1. bash를 사용하는 컴퓨터에서 :(){ :|:& };: 라고 치면 재앙이 일어납니다. sh의 무한포크로 인해서 메모리와 CPU가 언젠가 꽉 차게 되거든요. 이걸 막을라면 다른 tty에서 killall -STOP sh를 쳐놓는가 하는 대비책이 필요합니다. [본문으로]
  2. msysgit이 윈도용으로 재컴파일한 리눅스용 도구들인 msyswin을 컨버팅한 것이기에 당연히 sh.exe입니다.(...) [본문으로]
  3. 프로세스명이(/im) "sh.exe"인 프로세스를 강제로(/f) 종료하라 [본문으로]
신고
Posted by 애쉬군
  • 식봉사 멘토링이라는 것을 신청했습니다만.
    뭐... 까놓고 말하면 무보수 과외죠.
    7~8월 해서 15만원 들어오긴 하지만 그건 사실상 교통비(...) 의미고.
    더 중요한건 보상으로 뭐가 들어오냐죠. AU를 까먹을 수 있으면 좋으련만.
  • 새는 던파를 하는 빈도가 높아지고 있습니다.
    그에 발맞추어 마비 하는 빈도는 감소.(...)

    ...심지어 피씨방 피로도까지 풀로 태운 적도 있는걸요 orz
  • , 일, 일, 일, 일! 일 해야 하는데! 휴가기간이라 일거리가 안들어와! ㅠㅠ!
  • 인적으로 하겠다던 "선형대수학 라이브러리"는 대체 언제쯤에야 만들게 될까요.
  • 넷으로 BASH를 포팅하려다가 이미 "msyswin"이라는 것이 있다는 것을 깨닫고 절망.
    ...저는 역시 근성없는 놈이죠 orz.

신고
Posted by 애쉬군


티스토리 툴바