기본 콘텐츠로 건너뛰기

9월, 2017의 게시물 표시

Shell Programming 총 정리

참고 사이트 : https://se.ifmo.ru/~ad/Documentation/Shells_by_Example/

linux : /bin, /usr/bin 과 /sbin, /usr/sbin의 차이

/bin, /usr/bin 과 /sbin, /usr/sbin의 차이  : 모두 명령어가 저장되는 디렉토리 /bin       : 기본적인 명령어 , (권한 : 일반사용자) /sbin      : 시스템 관리를 위한 명령어, (권한 : root) /usr/bin  : /bin에 있는 명령을 제외한 기본적인 명령어, (권한 : 일반 사용자) /usr/sbin : /sbin에 있는 명령을 제외한 시스템 관리를 위한 명령어, (권한 : root)

라즈베리파이 커널 컴파일

- 라즈베리파이의 부트절차 1. Power on 2. SoC Rom의 첫번째 부트로더(Firmware)을 읽음. 3. 첫번째 부트로더가 MicroSD의 두번째 부트로더( bootcode.bin )을 호출 4. 두번째 부트로더가 MicroSD의 config.txt 파일을 읽고 실행. 5. 두번째 부트로더가 세번째 부트로더 ( start.elf )을 호출 실행 ARM core 활성화 6. ARM core가 네번째 부트로더( kernel.img )을 호출 실행 7. module load 8. init 실행 (daemon 실행) 부팅에 필요한 최소한의 세가지 : bootcode.bin, start.elf(start_cd.elf / start_x.elf), kernel.img - 라즈베리파이 커널 크로스 컴파일 - 커널 소스 내려받기 : 커널 소스가 필요한 이유? 임베디드 환경에 맞게 커널을 축소하기 위해서. git : sw 버전관리& 페키지를 쉽게 다운받기 위해 사용. #atp-get install git -y #git init #mkdir /raspberrypi 필요한 커널 소스 다운 및 크로스컴파일러 다운. : www.kernel.org 에서도 다운 가능. #cd /raspberrypi #apt-get update #apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 libc6-dev-i386 lib32z1 #git clone --depth=1 https://github.com/raspberrypi/linux #export KERNEL=kernel7 make를 이용해 크로스 컴파일 시켜줌. #apt-get install gcc-arm-linux-gnueabi make #cd linux #make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_

오픈소스 라이센스

*이하 설명하고 있는 오픈소스 라이선스는 소스코드에 적용되는 라이선스이며 일반적으로 소스코드에 대한 문서나 콘텐츠에 대한 라이선스는 CCL 등 별도의 라이선스를 적용합니다. 라이선스 종류 Apache License – 아파치 라이선스는  아파치소프트웨어재단 이 자기네 SW에 적용하기 위해 자체적으로 만든 라이선스다. 소스코드 공개 의무 같은 의무사항은 없지만, 아파치 라이선스 소스코드를 수정해 배포하는 경우 아파치 라이선스 버전 2.0을 꼭 포함시켜야 하며 아파치재단에서 만든 소프트웨어임을 밝혀야 한다. – 적용 사례 :  안드로이드 (v2.0),  하둡 (v2.0) GNU(Gnu is Not Unix) General Public License(GPL) –  자유소프트웨어재단 에서 만든 라이선스다. GNU 프로젝트로 배포하는 소프트웨어(Emacs, GNU 디버거(GDB), GNU 컴파일러 모음(GCC) 등)에 적용하기 위해  리처드 스톨만 이 만들었다. 가장 큰 특징은 자유소프트웨어재단답게 가장 강력한 제약 조건을 포함하고 있는 카피레프트 조항이다. GPL 프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만 사용하거나 변경된 프로그램을 배포하는 경우 무조건 동일한 라이선스 즉, GPL로 공개해야 한다. – 적용 사례 :  모질라 파이어폭스 (v2.0),  리눅스  커널(v2.0),  깃 (v2.0),  마리아DB (v2.0),  워드프레스 (v2.0),  드루팔 (v2.0) GNU Affero GPL(AGPL) – GPL을 기반으로 만든 라이선스로 버전1, 2는 아페로, 가장 최신 버전인 버전3은 자유소프트웨어재단에 의해 개발됐다. 수정한 소스코드를 서버에서만 사용하는 개발자가 그 프로그램을 배포하지 않을 경우 사용자는 소스코드를 가질 수가 없는 문제를 해결하기 위해 마련됐다. 서버에서 프로그램을 실행해 다른 사용자들과 통신하면, 실행되고 있는 프로그램의 소스코드를 사용자들이 다운로드할 수 있게 해야 한다는 독특한

라즈베리파이(Raspberry Pi3 jessie) 와 PC 연결.

- 유무선 AP 공유기의 사설망 사용 파일공유 - 고정아이피로 변경 및 DNS 설정 및 tftp #vi /etc/network/interfaces 사용하는 네트워크에 추가 address 192.168.0.120 : 서버주소 netmarsk 255.255.225.0 gateway 192.168.0.1 #vi /etc/resolv.conf nameserver 192.168.0.1 : 도메인네임 서버 이전 - dhcp 데몬 사용안함 #systemctl disable dhcpd #systemctl enable networking #reboot - tfpt 사용 #find / -name tftp 2> /dev/null : tftp 서비스를 사용하는지 검색, 오류는 안띄움 #apt-get install tftp : 설치 #tftp 192.168.0.25 - PC와 유선으로 연결 - 라즈베리 파이에  Generic PL2303HX USB Transfer to TTL RS232 Serial Port Adapter Cable 연결. 빨강 :  +5V 검정 : GND 흰색 : TXD 녹색 : RXD - PC에 USB연결 후 드라이버 설치 - 윈도우에서 putty를 사용해 연결 드라이버 설치과정에서 드라이버를 찾지 못하는 이슈가 생길 수 있다. 윈도우즈 업데이트 드라이버 설치로 하면 설치 가능. 드라이버 설치가 완료되면 Putty를 이용해 연결하자. 로그인 하면 라즈베리파이 터미널처럼 사용 할 수 있음. 라즈베리파이 터미널과 pc putty 터미널간의 메시지를 주고 받을 수 있다. - 블루투스 사용 안하기 : 속도 증가, 통신속도 115200 맞추기 위해서. 자세한 내용 : https://arsviator.blogspot.kr/2016/08/3-raspberry-pi-3-uartbluetooth-problem.html

모든 프로그래머가 알아야 할 것들 목록.

Every Programmer Should Know Algorithms Big O Cheatsheet 📖   Grokking Algorithms Sorting Algorithms Numbers 📄   Floating Point Guide 📄   Basic Number Theory Every Programmer Should Know... 📄   Falsehoods Programmers Believe About Phone Numbers Strings Big List of Naughty Strings 📄   Unicode and Character Sets Homoglyphs Unicode Common Locale Data Repository Falsehoods Programmers Believe About Names Latency Interactive Latency Infographics 📄   Latency Numbers Every Programmer Should Know Time 📄   Falsehoods programmers believe about time 📄   More falsehoods programmers believe about time; “wisdom of the crowd” edition 📄   Some notes about time 📄   Falsehoods programmers believe about time and time zones Memory 📄   What every Programmer should know about memory Distributed Systems 📖   Designing Data-Intensive Applications 📜   Designs, Lessons and Advice from Building Large Distributed Systems 📜   Time, Clocks and the Orderi