how students can contribute to free software: centrale nantes/openoffice.org education project...

32
static voi d sync_i cache_030( addr_t address, si ze_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1); l en+=of f ; l =l en; p=( c har * ) addr es s - of f ; as m v ol at i l e( " nop" ) ; as m vol at i l e( " movec %%cacr, %0" : " =r" ( cacr) : ) ; cacr| =0x00000004; / **/ do{ as m vol at i l e( " movec %0, %%caar\ nmovec %1, %%cacr\ naddq. l #4, %0\ nmovec %0, %%caar\ nmovec %1, %%cacr\ naddq. l #4, %0\ nmovec %0, %%caar\ nmovec %1, %%cacr\ naddq. l #4, %0\ nmovec %0, %%caar\ nmovec %1, %%cacr\ n" : : " r" ( p) , " r" ( cacr) ) ; p+= CACHELI NE; } whi l e( ( l - =CACHELI NE) >0) ; asm v ol a t i l e ( " nop" ) ; } s t a t i c void set_pgdir( void*rt) {l ong_page_di rectory_entry ent r y; * ( ui nt 64* ) &ent r y =DFL_PAGEENT_VAL; ent r y . t y pe=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _ t ) r t ) ) ; as m v ol a t i l e( " pmove ( %0) , %%s rp\ npmove ( %0) , % %cr p\ n" : : " a" ( ( ui nt 64*) &ent r y) ) ; } s t r uct m68k_ v m_ ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _ma How students can contribute to free software OpenOffice.org success story Eric Bachard (OOo) | Morgan Magnin (Centrale Nantes) [email protected] | [email protected] http://education.openoffice.org | http://tinyurl.com/magnin-ecn

Upload: morgan-magnin

Post on 05-Dec-2014

1.834 views

Category:

Education


1 download

DESCRIPTION

Talk of Eric Bachard (lead of the OpenOffice.org Education Project) and Morgan Magnin (Associate Professor, École Centrale de Nantes) at the Libre Software Meeting 2009 (http://2009.rmll.info/) During academical year 2008-09, a group of students from Centrale Nantes worked on the integration of annotation features in the slideshow module of OpenOffice.org. Two of them (Olivier Girardot and Frédéric Gélot) have become official OOo developers and interact with the other members of OOo team (like Thorsten Behrens). This talk summarizes the fruitful collaboration between Centrale Nantes and OOo Education project and gives guidelines for the contribution of students to free software developments. More information on https://pedagogie.ec-nantes.fr/tablet-pc/ and http://blog.educoo.org/dotclear/

TRANSCRIPT

Page 1: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

How students can contribute to free

softwareOpenOffice.org success story

Eric Bachard (OOo) | Morgan Magnin (Centrale Nantes)

[email protected] | [email protected] http://education.openoffice.org | http://tinyurl.com/magnin-ecn

Page 2: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes: key figures

● Member of the Group of Ecoles Centrales

● Combines three activities: – Education – 1350 students

● Graduate general engineering program (3 years, highly-selective admission procedure)

● Other specialized master program including two Erasmus Mundus Master programs

– Research: 4 laboratories

– Industrial Studies

Page 3: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Why free software in education?

Free software is not only a technical alternative to proprietary solutions, it promotes values such

that:

Freedom

Cooperation

Security

Durability

Page 4: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes and free software

● Research development: – OrbisGIS: http://tinyurl.com/orbisgis– Roméo: http://romeo.rts-software.org

– Trampoline: http://trampoline.rts-software.org/

● Educational use:– Linux : https://pedagogie.ec-nantes.fr/spip/

– OpenOffice.org

– FireFox, Gimp, …

Page 5: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes, free software and Tablet PC

● Recipient of the HP Technology for Teaching Grant 2008

– 21 Tablet PCs

– Innovative projects about education and tactile technologies

● A students' project to evaluate the usability of Tablet PC features under Linux... that led to OpenOffice.org

Page 6: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes and OpenOffice.org

● Annotation features in OOo/Impress: – Regular users demand about it for 3-4 years– Open tickets

● Students have worked on this issue: – From October'08 to now;

– Under the supervision of Thorsten Behrens and Eric Bachard

Page 7: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes and OOo: key figures

● Two different projects involving: – 7 students from September '08 to December '08– 4 students from January '09 to April '09

– 1 supervising teacher – Active collaboration of OOo team

● Other figures: – Students: avg 65 work-hours by student by

project

– Teacher: avg 3 supervising-hours by student by project

Page 8: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Centrale Nantes and OOo: factors for success

● Education environment willing to contribute to free software

● Motivation of both students and OOo teams● Win-win relation for every actor:

– Education: real-life projects with added value

– Students: contribute to a famous software

– OOo: perspective of contribution to new features

Page 9: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

… OpenOffice.org Education Project is

an incubator andINTERNATIONALproject type

Page 10: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

The Role of the « Incubators » projects is to ...

● Experiment● Validate a new need● Innovate and make the OpenOffice.org Project

progress

Page 11: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

The goals of the OpenOffice.org Education Project ?

This is a young project,Belonging to OpenOffice.orgwith the main goal tocreate a bridgebetween Educational World and OpenOffice.org

Page 12: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

' Who ' is the Education Project ?

Approximatively 100 members,Students, developers (mostly)From all countriesAll participate to OpenOffice.org

Page 13: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

The 3 main objectives of Education Project :

● Create a network of teachers using OpenOffice.org

● Provide a space for exchanging pedagogical contents, under free file formats

● Teach, provide young (core-)developers to write code for OpenOffice.org

Page 14: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

3rd Objective : provide new developers

Idea :

Associate : theory (the teachers)The know how (professional developers)The actors (students, profs, and so on)Mentors (OpenOffice.org Project developers)The needs (features for OpenOffice.org)

… and finally provide developers

Page 15: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Already started actions

● Online Courses « ClassRooms »● Projects with engineers schools students, and shools contributions

Page 16: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Education Project Effort● Mentored projects with active participation of the schools

http://wiki.services.openoffice.org/wiki/Education_Project/Effort

Page 17: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Schools who joined the project

Epitech/Epita (Paris, France)École Centrale Nantes (Nantes, France)UTBM (Sévenans, France) Seneca College (Toronto Canada)

Page 18: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

ExamplesMozilla 1.7.5 → Seamonkey 1.1.14 migration (Pierre Pasteau / Epitech Paris ) QA in progress, will be integrated

Developers who contributed : Frank Schönheit (Sun MicroSystems), Eric Bachard (unaffiliated)

Page 19: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

ExamplesAude Quintana, Olivier Girardot (École Centrale Nantes): implementation of the eraser features, with Tablet PC and Impress. Code review in progress.

Developers who contributed : Thorsten Behrens (Novell)

Managed by Morgan Magnin, for Ecole Centrale Nantes

Page 20: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

ExamplesFrédéric Gelot, Pierre-Jean Parot (École Centrale Nantes): annotations implementation with Tablet PC and Impress

Developers who contributed : Thorsten Behrens (Novell)

Managed by Morgan Magnin, for ECN

Page 21: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Other example : Seneca College, TorontoProfessor : Fardad Soleimanloo(4 projects started, expected for Summer 09)

All other proposed subjects :

http://wiki.services.openoffice.org/wiki/Education_Project/Effort

Page 22: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Scheduled Project (july to december 2009 ): Thomas Fontenay, Abdelkader Bellabes ( Epitech Paris ) : performance improvement of OOo4Kids on powerless machines (include backport to OpenOffice.org for the most interesting solutions), profiling, User Interface Improvement

Developers : Pierre Pasteau, Eric Bachard

Managed by Julien Ballet for Epitech Paris

Page 23: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

...

Page 24: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Guidelines for further projects: benefits of communication

● All documentation must be in english● Frequent communication

– Inside the education community

– Inside the free software community

● Use a maximum of media: – News on official websites

– Blog, Twitter, …

– Video

Page 25: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Guidelines for further projects

● Development team opened to students' contribution

● Supervising teacher to guarantee the project respects the educational expectations

● Team of students from 2 to... ?

Page 26: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Guidelines for further projects

● Find students – Interested in a first professional development

experience

– Having a good knowledge in technical matters

– Potentially willing to contribute beyond the given project

Page 27: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Timeline● Detailed specifications according to the

software standards– Features

– Test cases

● Learn the basics about the implementation– IRC courses

– Documentation

● Implementation on a Child WorkSpace w.r.t. software development rules

● Tests

Page 28: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Guidelines for further projects

● Be “transparent” yourself : – Do not lie about the difficulties! – Do not base your evaluation only on final

results.

– Take into account the methods and autonomy of students.

● Frequent (on-line or IRL) meetings between students and supervisors to keep up the motivation

Page 29: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Perspectives

● New collaborations between free software development teams and educational institution

● Towards teaching how to contribute to free software developments?

Page 30: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Special thanks to...● Thorsten Behrens● Group of students:

– Olivier Girardot

– Frédéric Gélot

– Aude Quintana

– Pierre-Jean Parot

– Guillaume Arfaoui

– Florent Rouvière

– Sashi Juganaikloo

Page 31: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

References

● EducOO : http://www.educoo.org

● Blog on the various projects involving Tablets PC at École Centrale de Nantes: https://pedagogie.ec-nantes.fr/tablet-pc/

● “Effort page”: http://tinyurl.com/effort-ooo-ecn

Page 32: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

s t at i c   voi d  s ync_i cache_030( addr _t   addr es s , s i z e_t   l en) { i nt   l , of f ; char *p; ui nt 32  cacr ; of f =( uns i gned  i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c   voi d  s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y   ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m  v ol at i l e( " pmove  ( %0) , %%s r p\ npmove  ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct   m68k_vm_ops   m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map

Auteurs : Morgan Magnin ([email protected])

Eric Bachard ([email protected]), www.educoo.org 2009

Document sous licence libre http://creativecommons.org/licenses/by-sa/3.0/deed.fr