이쁜왕자 만쉐~~

특명!! 마른 걸레를 쥐어 짜라!! 본문

낙서장

특명!! 마른 걸레를 쥐어 짜라!!

이쁜왕자 2007. 4. 19. 10:22

내가 다루는 네트웍 장비에는 OS 이미지 파일 저장을 위해서 8 MB 크기의 플래쉬 메모리가 달려 있다..
그중 1MB 는 부트로더와 환경변수 저장을 위해서 사용된다..
남은 7MB 중 JFFS 가 1MB 가 조금 안되게 사용한다.. 그래서 6MB 가 남는다..
여기에 백업용 OS 이미지 까지 2개의 OS 이미지가 들어가야 하므로,,
OS 이미지 1개당 대략 3MB 만큼의 여유가 있다..

이 장비를 처음 만들때는 3MB 는 충분한 공간이었다..
실제로 초기 OS 이미지는 2.5MB 가 안되었다..
하지만,, 시간이 지나면 지날수록 새로운 기능을 요구하는 ISP 의 요구에 따라,,
OS 이미지는 시간이 지날수록 슬금슬금 커지기 시작한다..
어느샌가 3.0MB 를 넘어 가 버렸다..

확인해 본 결과,, OS 이미지 크기가 3,090,000 바이트를 초과하면,, 플래쉬에 2개의 OS 이미지를 넣을 수 없다고 확인 되었다..

위기 의식을 느끼곤,, 각 모듈 담당자는 코드 사이즈 다이어트에 들어 갔다..

처음에는 불필요한 모듈을 삭제하고,, 디버그용 코드를 모두 빼버렸다..
사실 이 시스템은 elf 가 아니어서 strip 사용이 제한적이긴 했지만, strip 은 되는 만큼 마구 사용했다..
libm 같은 덩치큰 라이브러리를 삭제했다.. 이 덕분에 아주 약간 쓰이는 float 연산을 위해서 int 로 계산하는 함수 몇개를 새로 짰다..
하지만,, 또 다시 3.0MB 를 넘어가게 되자,, 컴파일 옵션을 -Os 으로 변경했다..
그 다음 방법으로 busybox 에서 사용하는 방식과 동일하게,, 몇몇 유틸리티를 하나로 묶었다..
거기에다가 압축 알고리즘의 미묘함도 써먹었다.. 더미파일이 한두개 있는 것만으로 최종 압축 파일이 몇십 KB 가 차이날 수 있다는 점을 발견하고,, 우연하게 압축 파일이 작아질 때까지 더미 데이터를 넣거나 빼는 방법도 사용했다..

하지만,, 아무리 다이어트를 열심히 해도,, 꾸준히 기능은 추가되고,, OS 이미지 크기는 한계를 향해서 커저만 가고 있었다..
뭔가 추가하는 것은,, 물이 가득 찬 컵에,, 스포이드로 물을 한방울씩 더 넣는 기분이었다..

매번 OS 이미지 생성할 때 마다,, 정말 피나는 다이어트를 했지만,, 오늘 생성된 OS 이미지는 3130000 바이트였다.. -_-
40KB,, 즉 40000 바이트.. 가 초과했다..
최근에 ISP 의 요청에 의해서 새로 추가된 모듈 덕분에 60KB 정도 증가해서 한계를 또다시 초과해 버렸다..

1 테라 사이즈 HDD 가 나오는 세상이고,, PC 에 기본적으로 1 기가 메모리를 달아서 쓰는 세상에서,,
겨우 40KB 때문에 좌절을 겪고 있다..

40KB 를 또 다시 다이어트 시켜야 하는데,, 마른 걸레를 쥐어 짜는 느낌이다..

- 이쁜왕자 -
- Valken the SEXy THief~~ ^_* -

728x90
반응형
Comments