리눅스 스터디 1회차 in KOSMOS
VM에 설치하므로 이미지 부분은 건너뛰세요.
on Onedrive:
https://onedrive.live.com/redir?resid=c4dd3c6db99e8d1a!11192&authkey=!ALtcH-dt9PGfl58&ithint=file%2cpptx
'이것이 리눅스다' 책을 일고 공부하면서 느낀점과 공부하면서 조사하였던 관련된 자료를 PPT로 만든 것입니다. (this is Linux, this PPT has Many Things that Resource Related the Linux and other) 감사합니다. Thank you
리눅스 스터디 1회차 in KOSMOS
VM에 설치하므로 이미지 부분은 건너뛰세요.
on Onedrive:
https://onedrive.live.com/redir?resid=c4dd3c6db99e8d1a!11192&authkey=!ALtcH-dt9PGfl58&ithint=file%2cpptx
'이것이 리눅스다' 책을 일고 공부하면서 느낀점과 공부하면서 조사하였던 관련된 자료를 PPT로 만든 것입니다. (this is Linux, this PPT has Many Things that Resource Related the Linux and other) 감사합니다. Thank you
한국게임학회 게임인공지능 분과
2019년 스터디 모임 준비자료입니다.
이 정보는 2019년 3월 1일 기준입니다.
설치에 사용된 프로그램 버전은 아래와 같습니다.
Windows 10
python 3
CUDA 9.0
cuDNN 7.5
tensorflow-gpu 1.10.0
Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...Jung Hyun Nam
Demo videos available at https://1drv.ms/u/s!Aj231qrFhIQxqbxbJCrSsQw443FOoA?e=nYebBM
이 세션에서는 Windows 기반 백엔드 애플리케이션 개발자들이 기존 백엔드 애플리케이션이나 명령줄 애플리케이션을 Windows 컨테이너 기반으로 마이그레이션하는 방법을 상세하게 설명합니다.
In this session, I will detail how Windows-based back-end application developers can migrate their existing back-end or command-line applications to a Windows container base.
가상 개발 환경 세팅(Virtual Development Environment Setting)
Studybee 2주차 스터디 - 가상의 개발 환경 세팅하기!
Vagrant, virtualenv를 이용해 가상 개발 환경 세팅하는 것을 다룹니다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
이 키노트에서는 기초적인 리눅스의 사용법에 대해 알려줍니다.
리눅스의 주 사용 용도인 date, cal 부터 git에 USB 디바이스 확인하는 명령어까지 소개합니다.
데비안 리눅스, 우분투 18.04 버전 기준으로 설명되었습니다. 또한 본 내용에서 특정 기업 명이나 특정 상표가 포함되었을 가능성이 있습니다. 하지만 이런 내용에는 고의성이 없음을 밝힙니다.
The document appears to be notes from a study session, listing topics covered on different dates from May 10th to June 28th including Raspberry Pi hardware control with node.js, Windows 10 IoT study, workload automation, Python and Raspberry Pi. References are provided for additional reading on basic mathmatics, times tables, learning the J programming language on GitHub, a J programming language forum, and meetup events for a J/APL programming group.
한국게임학회 게임인공지능 분과
2019년 스터디 모임 준비자료입니다.
이 정보는 2019년 3월 1일 기준입니다.
설치에 사용된 프로그램 버전은 아래와 같습니다.
Windows 10
python 3
CUDA 9.0
cuDNN 7.5
tensorflow-gpu 1.10.0
Origin Link : http://www.oss.kr/oss_information6/1435
세션2 : 공개SW개발과 우분투 환경의 개발툴
우분투 이야기
- 우분투 한국 이야기
- 우분투 장점
- 우분투 개발 환경
- 우분투에서의 협업 툴 활용
(강사) 강분도 (우분투한국사용자모임 대표)
[BRK30136] Windows 기반 백엔드 개발자를 위한 컨테이너 시작하기 / Introduction to Containers For ...Jung Hyun Nam
Demo videos available at https://1drv.ms/u/s!Aj231qrFhIQxqbxbJCrSsQw443FOoA?e=nYebBM
이 세션에서는 Windows 기반 백엔드 애플리케이션 개발자들이 기존 백엔드 애플리케이션이나 명령줄 애플리케이션을 Windows 컨테이너 기반으로 마이그레이션하는 방법을 상세하게 설명합니다.
In this session, I will detail how Windows-based back-end application developers can migrate their existing back-end or command-line applications to a Windows container base.
가상 개발 환경 세팅(Virtual Development Environment Setting)
Studybee 2주차 스터디 - 가상의 개발 환경 세팅하기!
Vagrant, virtualenv를 이용해 가상 개발 환경 세팅하는 것을 다룹니다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
이 키노트에서는 기초적인 리눅스의 사용법에 대해 알려줍니다.
리눅스의 주 사용 용도인 date, cal 부터 git에 USB 디바이스 확인하는 명령어까지 소개합니다.
데비안 리눅스, 우분투 18.04 버전 기준으로 설명되었습니다. 또한 본 내용에서 특정 기업 명이나 특정 상표가 포함되었을 가능성이 있습니다. 하지만 이런 내용에는 고의성이 없음을 밝힙니다.
The document appears to be notes from a study session, listing topics covered on different dates from May 10th to June 28th including Raspberry Pi hardware control with node.js, Windows 10 IoT study, workload automation, Python and Raspberry Pi. References are provided for additional reading on basic mathmatics, times tables, learning the J programming language on GitHub, a J programming language forum, and meetup events for a J/APL programming group.
This document provides instructions for managing Microsoft Azure with open source tools. It discusses Bash on Ubuntu on Windows, the Azure CLI, Juju, and running Docker on Bash on Ubuntu on Windows. Specific commands and steps are provided to install tools, connect to Azure, deploy services with Juju, and configure Docker.
This document summarizes common issues encountered when developing FPGA projects. It introduces FPGAs, the development process, and applications. Key issues discussed include timing violations from negative slack, hardware configuration errors affecting ADCs, DDR3 interface problems from hardware design faults like improper impedance matching, and excessive resource usage from unnecessary registers. Solutions involve optimizing code and hardware design, as well as adjusting compiler options.
This document discusses integrating Slack and IRC to address problems with using Facebook Groups and forums for an Ubuntu community in Korea. It notes issues with cost and surveys that showed preference for a single chat solution. The solution involved using a free Google Cloud VM instance with a Slack-IRC bot to connect the two systems. Working with an IRC manager, this resulted in a new way for the community to communicate across the different chat platforms.
The document summarizes the history of Ubuntu's Unity desktop environment from its debut in 2010 to its end in 2017. It started as an interface for netbooks and became Ubuntu's default desktop in 2011. Unity aimed for convergence across devices but ultimately failed to gain significant mobile usage. In 2017, Canonical announced it would shift Ubuntu back to GNOME and end development of Unity and the Mir display server. While some efforts have emerged to continue Unity, it and the Ubuntu mobile project were ultimately shut down.
This document discusses how open source development works in the Linux kernel project. It begins by explaining that the focus will be on the development mechanisms and open source process rather than technical kernel details. It then provides an overview of how development is done with Git and how the Linux kernel project actively develops through code review via mailing lists and discussion of patch submissions. Examples of the patch submission and review process for the perf subsystem are also given.
Synthetic aperture radar uses an antenna mounted on a moving platform like an aircraft or satellite to synthesize a large antenna aperture and collect radar data to produce high-resolution 2D images of target objects. It works by sending out narrow radar pulses and receiving the echoes to determine distance and Doppler shift for speed, and processing multiple images to map terrain, monitor environments, and support military systems through polarimetry and interferometry techniques.
This document discusses synthetic aperture radar (SAR) and pulse compression techniques. It explains that pulse compression allows radar systems to achieve fine range resolution using long duration, low power pulses by modulating the pulses with linear frequency modulation (chirp) and then correlating the received signal with a reference chirp. This improves the signal to noise ratio compared to using short pulses directly. The document covers topics such as range resolution, pulse compression, chirp waveforms, stretch processing, correlation processing, window functions, and how pulse compression affects signal to noise ratio and blind range.
OpenStack DevStack Install - 1부 (All-in-one)Ian Choi
OLC 온라인 강좌 중 DevStack에 대한 첫 번째 자료입니다.
( URL: http://olc.kr/course/course_online_view.jsp?id=480&cid=523 )
DevStack은 OpenStack을 실제 구성하는 대신, 개발 및 테스트 용도로 쉽게 설치 가능한 스크립트입니다.
1부에서는 All-in-one 모드 설치 과정을 설명하며, Icehouse Release 기반의 실습 내용을 포함하였습니다.
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
The Ubuntu Korea Community was established in 2005 and is the verified Local Community (LoCo) team for Ubuntu in South Korea. They organize local Ubuntu events and activities to promote Ubuntu and other open source technologies. Community members communicate through forums, social media, chat platforms, and mailing lists. Events include seminars, workshops and conferences. The team also partners with other local communities and contributes to projects like Hanjp-IM keyboard input method development. In 2021, they held the first UbuCon Asia conference. For 2022, they plan to focus more on local activities like Ubuntu 22.04 release parties and improving infrastructure, while the status of UbuCon Asia 2022 is still undetermined.
The document is a presentation on memory attack techniques given by Kim Seong Min. It covers 4 topics:
1. What are memory attacks and types of memory bugs and attacks.
2. Attacking the stack, including buffer overflows, control-flow hijacking, and mitigations like NX stacks and canaries.
3. The evolution of defenses like ASLR and techniques like return-oriented programming to bypass them.
4. Q&A portion to discuss the ongoing "eternal war in memory" between attackers and defenders.
1. Snaps on Ubuntu Desktop
Youngbin Han <sukso96100@gmail.com>
Leader, Ubuntu Korea Community
https://launchpad.net/~sukso96100
2. About me
• 한영빈(Youngbin Han)
• 성공회대학교 소프트웨어공학과 재학(2016.02~)
• 우분투한국커뮤니티 대표(2017.03~)
• 생각보다 많이 힘들더군요. 전 대표님들이 본인이 퇴물임을 강조하는 이
유를 알 거 같음…
• 그냥 이것저것 관심가는거 합니다.
• 요세는 Django, Electron, Docker 를 써보는 중입니다.
3. Index
• 전통적인 리눅스 패키지 사용과 문제점
• Snap 에 대한 소개 및 전통적인 리눅스 패키지와 비교
• Ubuntu Desktop 에서의 Snap 근황
• 데스크탑 앱을 Snap 패키지로 빌드하고 배포하기
5. Linux 에서 패키지를 설치하려면?
• 설치할 소프트웨어가 해당 배포판에서 패키지로 제공되는지 확인
• 저장소에서 패키지 검색
• 사용중인 배포판의 버전을 지원하는지 확인
• 우분투에서 제공하는 데비안 패키지의 경우 릴리즈별로 제공되는 패키지
가 다름(패키지 이름도 다른 경우가 있음.)
• 패키지 관리자로 패키지와 의존성 패키지 설치
• 설치 끝. 사용하면 됨.
6. 문제점
• 사용중인 배포판에서 패키지가 제공되지 않는다면?
• 직접 패키지를 빌드해서 설치?
• 제공이 되어도 사용중이 배포판 버전에 대해 지원하지 않는다면?
• 이걸 언제 다 패키징하냐…
• 개발자 입장에서는 사용자가 많아질수록 다양한 배포판을 지원해야 함
• 배포판별로 패키징 방식도 다르고, 제공되는 것도 조금씩 다르다.
• 배포판 버전별로도 패키징 해야함.
7. 문제점
• 의존성 문제
• 음… 의존성 패키지까지 잘 깔리면 참 좋은데, 꼭 그러란 법은 없다.
• 어떤 패키지는 의존성 패키지의 이전 버전을 요구하고, 또 어떤 패키지는
최신 버전을 요구한다, 그러나 두 버전을 동시에 깔 수가 없다.
• 배포판을 최신 버전으로 업그레이드 했는데, 이 버전의 배포판에는 내가
쓰던 프로그램이 요구하는 의존성 패키지를 제공하지 않는다. (으앜)
11. Click -> Snappy -> Snap
• 처음에는 Ubuntu Touch 를 위한 패키지 포멧인, *.click 으로 등장.
• Ubuntu 터치가 처음 등장한 Ubuntu 14.04 와 함께 등장.
• Click 패키지를 더 발전시켜서 Cloud 와 IoT 로 가져옴
• Click 이 진화하여 Snappy 패키지가 됨
• 범용 리눅스 패키지로 발전.
• 데스크탑, 클라우드, 사물인터넷 등 다양한 분야에서 사용.
• 이제는 Snap 이라고 불림.
12. 범용 리눅스 패키지(Universal Linux Package)
• Snap이 지원되는 모든 리눅스 배포판에서 사용 가능
• 데스크탑, 서버, 클라우드, 디바이스(IoT 등) 용으로 빌드 가능
• 웬만한 용도로는 거의 다 빌드 가능하다고 보면 됩니다.
• 한번 빌드해서 Snap 이 지원되는 모든 배포판으로 한번에 배포
• 배포판 버전별로 패키지를 관리 할 필요도 없음.
14. 컨테이너처럼 격리되어 있음
• 기존 리눅스 패키지 처럼 시스템 디렉터리 (/usr/share, /usr/bin
등) 이 아닌, 별도의 전용 경로 (/var/snap)에 모두 설치됨.
• 패키지에 필요한 의존성까지 모두 패키지에 포함되어 있음.
• 앱에 대한 정보(버전, 의존성 등)을 기술한 snap.yaml과 앱 코드를
포함한 SquashFS 로 구성되어 있음.
• Confinements 와 Interfaces 를 이용해서 패키지의 권한이나 동
작 등을 제한할 수 있음.
16. Transactional Updates
• 패키지가 리비전별로 디렉터리를 만들어 관리하며, 현재 쓰는 버
전을 각 패키지 디렉터리별로 있는 current 에 심볼릭 링크 함.
• 패키지의 파일은 /var/lib/snapd/snaps/(name)_(rev).snap 에 설치되고,
/snap/(name)/(rev) 에 SquashFS 로 마운트 되어, /snap/(name)/current
에 심볼릭 링크 됨.
• 패키지가 사용하는 쓰기 영역은 /var/snap/(name)/(rev) 로 생성되어,
/var/snap/(name)/current 에 심볼릭 링크 됨.
• 새 버전으로 업데이트 하나가 오류가 나면, 자동으로 롤백 됨.
• 심볼릭 링크를 변경해서 이전 버전으로 쉽게 되돌리는 방식.
17. Channels
• 용도에 따라 채널을 지정하여 배포 가능.
• grade 와 confinement 속성 값에 따라 정해짐.
18. grade, confinement 값에 따른 배포 가능 채널
grade / confinement strict classic devmode
stable 모든 채널 모든 채널 Beta, edge 만
devel Beta, edge 만 Beta, edge 만 Beta, edge 만
20. 2016.04 ~
• Ubuntu 16.04 LTS 부터 기본으로 탑제됨.
• 이전 버전은 따로 저장소에서 받아서 설치 가능.
• 우분투 소프트웨어 센터(gnome-software) 에서 snap 패키지를
설치 지원 시작.
• 완벽하지는 않음.
• Unity 연동 제공
• Snap Desktop Launcher
22. 2016.10 ~
• Unity 8 Snap (지금은 망한 Unity 8…)
• 그리고 더 많은 Snap 앱 : HexChat, Telegram, VLC, etc…
• 우분투 소프트웨어 센터에서 Snap 앱 스크린샷 조회 가능
• Ubuntu 14.04 에서도 Snap 사용 가능.(2017.02)
23. 2017.01~
• Ubuntu 14.04 에서도 Snap 사용 가능.
• Classic Confinement 도입
• 전체 시스템에 접근이 필요한 앱들이 Classic Confinement 를 이용해
Snap 으로 패키징 되어 배포됨.
• 예 : Atom, VS Code, PyCharm 같은 개발자 도구
• 우분투 소프트웨어 센터의 Editor’s Picks 부분에 Snap 앱도 표시
• KDE Discover 에서도 Snap 앱 설치 가능.
25. In Ubuntu 17.10?
• 우분투 소프트웨어 센터
• Editor’s Picks 부분에 오직 Snap 앱만 표시.
• Featured 부분에 Snap 앱도 표시.
• 당연하게도(?) 더 많은 앱이 Snap 으로 패키징 되어 배포됨.
26. Snapping your app
Let’s snap simplenote-electron for example.
https://github.com/Automattic/simplenote-electron
27. 미리 빌드된 Tarball 받고, 초기 파일 생성
wget https://github.com/Automattic/simplenote-
electron/releases/download/v1.0.8/Simplenote-linux-
x64.1.0.8.tar.gz
tar xvzf Simplenote-linux-x64.1.0.8.tar.gz
cd Simplenote-linux-x64.1.0.8.tar.gz
snapcraft init # snapcraft.yaml 생성