지하철 역 구내에서 종종 보게 되는 경구: 책이 없다면 신도 침묵을 지키고, 정의는 잠자며, 자연과학은 정지되고, 철학도 문학도 말이 없을 것이다. -- 토마스 바트린.
감상평: 가끔은 책이나 바트린 당신도 입을 다무는 편이 좋아 보인다. 책들은 내 인생에 많은 영향을 끼쳤지만 여행은 그보다 더 많은 영향을 끼쳤다. 바트린씨도 그 점을 설마 모르지는 않았을 것이다.
일 진행에 속도가 붙기 시작했다. 바쁜 와중에도 잊지 않고 짬짬이 닭짓 했다. i86 gcc으로 컴파일한 shared object 바이너리를 arm cpu에서 로드하는데 자꾸 실패했다. 에러 메시지(dlerror()) 한 번 보면 되는데, 커널의 elf 지원, objdump, glibc 버전 체크, ld.so.cache, LD_LIB_PATH 체크, 인터페이스 attach, 디바이스 드라이버 따위 등 별 관계없는 것들을 뒤지고 있었다. 그 얼마나 닭스러웠던가. 컴파일만 다시 하면 되는데. 며칠 전에는 컴파일한 c 소스를 어셈블리 하여 네이티브 코드 옵티마이즈와 d-cache가 memory mapped io access cycle에 끼치는 영향을 조사했다. 커널에서 io space를 엑세스하고 그것을 user로 넘기는 가장 빠른 코드를 찾기 위한 사전 조사 중 하나다. 임계상황을 예측하지 않으면 설계/구현 마진을 설정할 수 없으니까... 이걸 정확히 알아내려면... 음... 별 방법이 없어 로직 애널라이저를 cpu 인터페이스 측에 물리고 io cycle을 조사했다. 1ns 단위 skew는 측정할 수 있는 hardware measurement는 제공하면서 소프트웨어가 예측할 수 있는 facility를 제공하는데 인색한 것이 당나귀 같은 하드웨어 기술자들의 특징이다. arm은 연속적인 read cycle 중간 중간 code prefetch를 했다. 의도한 대로 작동하지 않는 cpu에 욕을 퍼부었더니 의외로 시원했다. 최종 목표는 버스 스피드를 달성하는 것이지만(10ns) 2m 플랫 케이블로 25개의 보드에 커넥터에 연결된 버퍼를 구동하는데 10ns의 엑세스 타임은 염소같은 기술자들이 듣기에는 택도 없는 소리일지도 모르겠다. 10주 안에 완전히 새로운 설계를 바탕으로 한 시스템을 제작하려는 부담스럽지만 익사이팅한 목표 때문이긴 했다. 프로젝트를 진행하는 팀원 중 아무도 게으름 피우는 사람이 없고, 열심히 일하니까 즐겁고 재밌다. 그 재미지. 하지만 나는 프리랜서고 지분도 주식도 책임감도 없는, 언제든 떠날 수 있고 언제든 대체할 수 있는 낭인일 따름이다. 그 점을 늘 잊지 않고 있다. 다음 기회에 이렇게 자기 일을 열심히 하는 사람들을 다시 만날 수 있을까?
글쎄.
mono 프로젝트는 진척이 좀 되었는지 갑자기 궁금해지는군.
핸드폰의 IrDA 포트가 망가진 것 같아 예전에 큐리텔 대리점에 수리를 맡겼지만 별 다른 이상이 없다며 다시 한번 은행에서 테스트 해 보고 알려달라고 말했다. 줄곳 잊고 있다가 테스트 해보니 역시 CD/ATM에서 적외선 통신이 되지 않았다. 들고 가서 기술자로 보이는 친구한테 사정을 얘기하고 IrDA 모듈을 교환해 달라고 부탁했다. 그는 은행에 블레임을 걸었다. 은행의 ATM 기기에 이상이 있거나 스마트칩 불량이라는 것이다. 난 테스트를 한 번만 하지 않는다. 그렇지가 않은 이유를 설명했다. 핸드폰의 IrDA에서 적외선이 흘러나오지 않았다. PDA에 옴니리모트 깔고 트레이닝 모드를 돌려보는 것으로 최종확인한 것이다. 그를 한참 납득 시킨 후에야 핸드폰의 기판을 교체했다. 부품이 없냐고 물었더니 없단다. 이번에는 ATM이 잘 되었다. 하지만 다른 문제가 생겼는데, 전화 걸기/받기가 되지 않는 것이다. 배터리가 빨리 닳는 것으로 미루어 보아 셀을 못 찾아 열나게 셀을 뒤지다가 배터리가 금새 닳아버리는 것 같다. 기술자 친구에게 그 얘기를 했지만 잘 안 믿었다. 핸드폰을 맡기고 테스트 해 보라고 하고 하루 지나 찾으러 갔더니 새 기판으로 갈았다. 다시 은행에 들러 ATM 테스트를 하고 하룻동안 전화가 잘 걸리나 점검했다. 그렇게 해서 1주일을 보냈다. 그 일주일 동안 대리점 뒷편의 엔지니어가 일하는 곳에서 그와 시간을 보냈다. 오실로 스코프나 부품함 따위는 보이지 않았다. 그가 하는 일이란, 안 되면 주 기판을 교환하고 왜 안 되나 테스트 해 보는 것 정도였다. 개나 소나 할 수 있는 일을 하는 엔지니어로서의 그의 청춘이 가엾어 보였다. 하지만 기운을 북돋워주기 위해 QC나 테스트를 하는 엔지니어의 역할이 가장 막중하다고 말하는 것을 늘 잊지 않았다.
날더러 티벳에 가지 않겠냔다. 지프를 빌려서 라사에서 신나게 내 달린단다. 카일라사에 갈 수 있는 절호의 기회라고. 조건이 좋지만 사양할 수 밖에 없었다. 성수기 중에서도 최성수기, 갑자기 여행가는 사람들이 늘어 항공권을 구하기 힘들다. 여행은 미뤘다.
감상평: 가끔은 책이나 바트린 당신도 입을 다무는 편이 좋아 보인다. 책들은 내 인생에 많은 영향을 끼쳤지만 여행은 그보다 더 많은 영향을 끼쳤다. 바트린씨도 그 점을 설마 모르지는 않았을 것이다.
일 진행에 속도가 붙기 시작했다. 바쁜 와중에도 잊지 않고 짬짬이 닭짓 했다. i86 gcc으로 컴파일한 shared object 바이너리를 arm cpu에서 로드하는데 자꾸 실패했다. 에러 메시지(dlerror()) 한 번 보면 되는데, 커널의 elf 지원, objdump, glibc 버전 체크, ld.so.cache, LD_LIB_PATH 체크, 인터페이스 attach, 디바이스 드라이버 따위 등 별 관계없는 것들을 뒤지고 있었다. 그 얼마나 닭스러웠던가. 컴파일만 다시 하면 되는데. 며칠 전에는 컴파일한 c 소스를 어셈블리 하여 네이티브 코드 옵티마이즈와 d-cache가 memory mapped io access cycle에 끼치는 영향을 조사했다. 커널에서 io space를 엑세스하고 그것을 user로 넘기는 가장 빠른 코드를 찾기 위한 사전 조사 중 하나다. 임계상황을 예측하지 않으면 설계/구현 마진을 설정할 수 없으니까... 이걸 정확히 알아내려면... 음... 별 방법이 없어 로직 애널라이저를 cpu 인터페이스 측에 물리고 io cycle을 조사했다. 1ns 단위 skew는 측정할 수 있는 hardware measurement는 제공하면서 소프트웨어가 예측할 수 있는 facility를 제공하는데 인색한 것이 당나귀 같은 하드웨어 기술자들의 특징이다. arm은 연속적인 read cycle 중간 중간 code prefetch를 했다. 의도한 대로 작동하지 않는 cpu에 욕을 퍼부었더니 의외로 시원했다. 최종 목표는 버스 스피드를 달성하는 것이지만(10ns) 2m 플랫 케이블로 25개의 보드에 커넥터에 연결된 버퍼를 구동하는데 10ns의 엑세스 타임은 염소같은 기술자들이 듣기에는 택도 없는 소리일지도 모르겠다. 10주 안에 완전히 새로운 설계를 바탕으로 한 시스템을 제작하려는 부담스럽지만 익사이팅한 목표 때문이긴 했다. 프로젝트를 진행하는 팀원 중 아무도 게으름 피우는 사람이 없고, 열심히 일하니까 즐겁고 재밌다. 그 재미지. 하지만 나는 프리랜서고 지분도 주식도 책임감도 없는, 언제든 떠날 수 있고 언제든 대체할 수 있는 낭인일 따름이다. 그 점을 늘 잊지 않고 있다. 다음 기회에 이렇게 자기 일을 열심히 하는 사람들을 다시 만날 수 있을까?
글쎄.
mono 프로젝트는 진척이 좀 되었는지 갑자기 궁금해지는군.
핸드폰의 IrDA 포트가 망가진 것 같아 예전에 큐리텔 대리점에 수리를 맡겼지만 별 다른 이상이 없다며 다시 한번 은행에서 테스트 해 보고 알려달라고 말했다. 줄곳 잊고 있다가 테스트 해보니 역시 CD/ATM에서 적외선 통신이 되지 않았다. 들고 가서 기술자로 보이는 친구한테 사정을 얘기하고 IrDA 모듈을 교환해 달라고 부탁했다. 그는 은행에 블레임을 걸었다. 은행의 ATM 기기에 이상이 있거나 스마트칩 불량이라는 것이다. 난 테스트를 한 번만 하지 않는다. 그렇지가 않은 이유를 설명했다. 핸드폰의 IrDA에서 적외선이 흘러나오지 않았다. PDA에 옴니리모트 깔고 트레이닝 모드를 돌려보는 것으로 최종확인한 것이다. 그를 한참 납득 시킨 후에야 핸드폰의 기판을 교체했다. 부품이 없냐고 물었더니 없단다. 이번에는 ATM이 잘 되었다. 하지만 다른 문제가 생겼는데, 전화 걸기/받기가 되지 않는 것이다. 배터리가 빨리 닳는 것으로 미루어 보아 셀을 못 찾아 열나게 셀을 뒤지다가 배터리가 금새 닳아버리는 것 같다. 기술자 친구에게 그 얘기를 했지만 잘 안 믿었다. 핸드폰을 맡기고 테스트 해 보라고 하고 하루 지나 찾으러 갔더니 새 기판으로 갈았다. 다시 은행에 들러 ATM 테스트를 하고 하룻동안 전화가 잘 걸리나 점검했다. 그렇게 해서 1주일을 보냈다. 그 일주일 동안 대리점 뒷편의 엔지니어가 일하는 곳에서 그와 시간을 보냈다. 오실로 스코프나 부품함 따위는 보이지 않았다. 그가 하는 일이란, 안 되면 주 기판을 교환하고 왜 안 되나 테스트 해 보는 것 정도였다. 개나 소나 할 수 있는 일을 하는 엔지니어로서의 그의 청춘이 가엾어 보였다. 하지만 기운을 북돋워주기 위해 QC나 테스트를 하는 엔지니어의 역할이 가장 막중하다고 말하는 것을 늘 잊지 않았다.
날더러 티벳에 가지 않겠냔다. 지프를 빌려서 라사에서 신나게 내 달린단다. 카일라사에 갈 수 있는 절호의 기회라고. 조건이 좋지만 사양할 수 밖에 없었다. 성수기 중에서도 최성수기, 갑자기 여행가는 사람들이 늘어 항공권을 구하기 힘들다. 여행은 미뤘다.