This presentation gave an overview about Chinese information process progress on GNU/Linux. It covered input/output/printing mechanism for GNU/Linux. Also, some localized open source projects were introduced.
中文输入法介绍、发展及困难
A Talk in Gnome Asia 2012 and Hong Kong Open Source Conference 2013
Gnome Asia 2012 : http://www.youtube.com/watch?v=W_Y0u5XukD8
HKOSC 2013 : http://www.youtube.com/watch?v=wKKrEuZyYRI
GNU Toolchain is the de facto standard of IT industrial and has been improved by comprehensive open source contributions. In this session, it is expected to cover the mechanism of compiler driver, system interaction (take GNU/Linux for example), linker, C runtime library, and the related dynamic linker. Instead of analyzing the system design, the session is use case driven and illustrated progressively.
Some history about the Chinese font display under Linux with FreeType engine and the fracture problem on stroke-based composition fonts like the infamous MingLiu Dyna fonts.
PyPy takes a tracing just-in-time (JIT) compilation approach to optimize Python programs. It works by first interpreting the program, then tracing hot loops and optimizing their performance by compiling them to machine code. This JIT compilation generates and runs optimized trace trees representing the control flow and operations within loops. If guards placed in the compiled code fail, indicating the optimization may no longer apply, execution falls back to the interpreter or recompiles the trace with additional information. PyPy's approach aims to optimize the most common execution paths of Python programs for high performance while still supporting Python's dynamic nature.
This document discusses making Linux capable of hard real-time performance. It begins by defining hard and soft real-time systems and explaining that real-time does not necessarily mean fast but rather determinism. It then covers general concepts around real-time performance in Linux like preemption, interrupts, context switching, and scheduling. Specific features in Linux like RT-Preempt, priority inheritance, and threaded interrupts that improve real-time capabilities are also summarized.
GNU Toolchain is the de facto standard of IT industrial and has been improved by comprehensive open source contributions. In this session, it is expected to cover the mechanism of compiler driver, system interaction (take GNU/Linux for example), linker, C runtime library, and the related dynamic linker. Instead of analyzing the system design, the session is use case driven and illustrated progressively.
Some history about the Chinese font display under Linux with FreeType engine and the fracture problem on stroke-based composition fonts like the infamous MingLiu Dyna fonts.
PyPy takes a tracing just-in-time (JIT) compilation approach to optimize Python programs. It works by first interpreting the program, then tracing hot loops and optimizing their performance by compiling them to machine code. This JIT compilation generates and runs optimized trace trees representing the control flow and operations within loops. If guards placed in the compiled code fail, indicating the optimization may no longer apply, execution falls back to the interpreter or recompiles the trace with additional information. PyPy's approach aims to optimize the most common execution paths of Python programs for high performance while still supporting Python's dynamic nature.
This document discusses making Linux capable of hard real-time performance. It begins by defining hard and soft real-time systems and explaining that real-time does not necessarily mean fast but rather determinism. It then covers general concepts around real-time performance in Linux like preemption, interrupts, context switching, and scheduling. Specific features in Linux like RT-Preempt, priority inheritance, and threaded interrupts that improve real-time capabilities are also summarized.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
The promise of the IoT won’t be fulfilled until integrated
software platforms are available that allow software
developers to develop these devices efficiently and in
the most cost-effective manner possible.
This presentation introduces F9 microkernel, new open source
implementation built from scratch, which deploys
modern kernel techniques dedicated to deeply
embedded devices.
The document discusses how a "Hello World" program works behind the scenes. It covers topics like compilation, linking, executable file formats, loading programs into memory, and process creation. The key points are:
1) A C program is compiled into an object file, then linked with library files to create an executable. The linker resolves symbols and relocates addresses.
2) Executable files use formats like ELF that contain machine code, data, symbol tables, and sections. Object files have a similar format.
3) When a program runs, the OS loads pages of the executable into memory as needed and sets up the process with its own virtual address space.
4) System calls
Build a full-functioned virtual machine from scratch, when Brainfuck is used. Basic concepts about interpreter, optimizations techniques, language specialization, and platform specific tweaks.
Xvisor is an open source lightweight hypervisor for ARM architectures. It uses a technique called cpatch to modify guest operating system binaries, replacing privileged instructions with hypercalls. This allows the guest OS to run without privileges in user mode under the hypervisor. Xvisor also implements virtual CPU and memory management to isolate guest instances and virtualize physical resources for multiple operating systems.
This presentation covers the general concepts about real-time systems, how Linux kernel works for preemption, the latency in Linux, rt-preempt, and Xenomai, the real-time extension as the dual kernel approach.
The Mars Pathfinder mission successfully demonstrated new landing techniques and returned valuable data from the Martian surface. However, it experienced issues with priority inversion in its VxWorks real-time operating system. The lower priority weather data collection task would occasionally prevent the higher priority communication task from completing before the next cycle began, resetting the system. Engineers traced the problem to the use of VxWorks' select() call to wait for I/O from multiple devices, allowing long-running lower priority tasks to block critical higher priority tasks.
* Know the reasons why various operating systems exist and how they are functioned for dedicated purposes
* Understand the basic concepts while building system software from scratch
? How can we benefit from cheap ARM boards and the related open source tools?
- Raspberry Pi & STM32F4-Discovery
1. 回顧 GNU/Linux 中文資訊化
進展與未來機會
Jim Huang ( 黃敬群 )
Developer, 0xlab
jserv@0xlab.org
Oct 12, 2010
2. Rights to Copy
??Copyright 2010 0xlab
http://0xlab.org/
contact@0xlab.org
Latest update:Oct 13, 2010
Attribution – ShareAlike 3.0
You are free
to copy, distribute, display, and perform the work
to make derivative works
to make commercial use of the work
Under the following conditions
Attribution. You must give the original author credit.
Share Alike. If you alter, transform, or build upon this work, you may distribute the
resulting work only under a license identical to this one.
For any reuse or distribution, you must make clear to others the license terms of this
work.
Any of these conditions can be waived if you get permission from the copyright holder.
Your fair use and other rights are in no way affected by the above.
License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode
31. 語系 (Locale) 的概念 (2)
中文語系
zh_TW.Big5
zh_CN.GB18030
zh_HK.Big5-HKSCS
zh_TW.UTF-8
格式: language_territory.encoding@modifier
de_AT.ISO-8859-1@euro
root
Language en de zh
Script Hant Hans
Region US IE DE CH TW CN CN TW
49. 哀悼樋浦秀樹 (Hideki Hiura) 先生
? 因癌症逝世於美國 (Apr 7, 2010)
"Hideki Hiura is chief scientist and CTO of JustSystems, Inc.
He is a founder and chairperson of OpenI18N.org/Free
Standards Group, an independent, nonprofit organization
dedicated to accelerating the use of free and open source
software by developing and promoting standards. He is also
a founding member of W3C I18N WG. As an architect at Sun
Microsystems, he was involved with variety of standards and
standard organizations including ISO, W3C, OMG, The Open
Group, OSF, Unix International, X Consortium and Unicode."
? 整合過去在 Sun Microsystems 的成果,透過 OpenI18N 與 Free
Standards Group 等組織,推廣到開放的平台,為今日的資訊系
統做出了巨量的貢獻
58. XIM 與 IIIMF 的對比
XIM IIIMF
應 client 端需求,可能產生多個 Daemon 存在,只需啟動一次
Server
應用程式受 Locale 限制 與 Locale 無關
轉換狀態需更換 Locale 變數 直接切換
Locale 切換較麻煩 不需切換 Locale
輸入法引擎等同於 XIM Server 輸入法引擎以動態模組掛入
IIIM Server
必須有 X Window system 與視窗 / 操作環境無關
可相容於支援 XIM 之應用程式
[ 解釋 ] IIIMF 相當於抽離傳統 XIM server 的設計,分為平台相關的銜接部份
(IIIM X/Gtk/Qt framework) 與輸入法引擎 (Language engine) ,而開發者只要
專注於輸入法引擎本身即可
59. IIIMF 發展目標
? 許多徹底解決 XIM 弊端
? 去除對 Window System 的相依性
– 完全 Unicode 支援、實現真正多語文支援
? 完整的 IM 架構,可透過網路動態提供輸入法
– 在 UNIX 運作的 server 可讓 Windows 環境的
client 使用
? 可攜性與擴展能力
– 提供現有 XIM, GTK+ im-module, Qt im-module, Java
Input Framework 等架構的溝通介面
– 擴展性強的 client-side API
60. IIIMSF =
IIIM Server Framework
制定全新的 Protocol: IIIMP
AUX 是配合 Client 的輔助處理
機制,比方說候選字詞視窗
LE =
Language Engine ,由
IIIM Server 動態載入
銜接傳統 XIM 的方式,只要實做 IIIM X Client Framework