The document discusses Google Summer of Code (GSoC), a program that provides stipends for students to work on open source projects over three months. It notes GSoC's goals of increasing open source code, inspiring student involvement, and exposing students to real-world development. The document also outlines GSoC's workflow, including open source projects registering mentors, students submitting project proposals, and mentors ranking proposals and matching with students. Finally, it introduces the topic of enabling the ext4 file system as a boot partition using grub4ext4.
A KEYNOTE ON GOOGLE SUMMER OF CODE.
PS: I USED LOT OF CONTENT FROM FELLOW OPEN SOURCE CONTRIBUTORS OF SRILANKA. I AM VERY GRATEFUL TO THEM : SURANGA[OPENMRS] PRADEEBAN[ABIWORD] AND HARSHA[OPENMRS]
This is the presentation given to students to onboard them to Open source software while sharing the work I am currently working on with FOSSASIA and loklak in GSoC 2015. It also takes a small step to encourage students to jump into development, simple steps of how to do so and contribute to Loklak.org and FOSSASIA with a small demo of the working application
A KEYNOTE ON GOOGLE SUMMER OF CODE.
PS: I USED LOT OF CONTENT FROM FELLOW OPEN SOURCE CONTRIBUTORS OF SRILANKA. I AM VERY GRATEFUL TO THEM : SURANGA[OPENMRS] PRADEEBAN[ABIWORD] AND HARSHA[OPENMRS]
This is the presentation given to students to onboard them to Open source software while sharing the work I am currently working on with FOSSASIA and loklak in GSoC 2015. It also takes a small step to encourage students to jump into development, simple steps of how to do so and contribute to Loklak.org and FOSSASIA with a small demo of the working application
The GitHub Student Developer Pack is a collection of free tools, services, and resources curated specifically for students.It offers a wide range of benefits, including access to premium tools, cloud services, online courses, and much more. By signing up for the pack, you gain access to an array of tools that can boost your productivity, improve your skills, and facilitate your journey as a student developer.
Open Source and GitHub for Teaching with Software Development ProjectsDaniel Nüst
Experiences in using GitHub for collaborative software development in project seminars using and creating open source software.
Authors:
Daniel Nüst (d.nuest@52north.org, 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek (bartoschek@uni-muenster.de, Institute for Geoinformatics Münster)
Open source software is particularly suitable for teaching and organisations like Teaching Open Source (http://teachingopensource.org) present actively advertise this. In this talk we want to present some practical benefits that open source programming and publishing software on an open online platform has for teaching project-oriented software engineering seminars at university level. In these courses students together develop a new system for a specific task in form of a group project. For project groups, we suggest to use an adjusted variant of Scrum for project management (http://en.wikipedia.org/wiki/Scrum_%28software_development%29), git as source code management system (http://git-scm.com/), and GitHub as a collaboration platform (http://github.com/, https://education.github.com/). Thanks to GitHub’s collaboration models such as “fork & pull”, each student’s work, may they be in lines of code or contributions to a discussion, can be tracked. Students fulfil different tasks in a project setting: some develop, some spend their time issuing bugs or improving documentation. But for all of them GitHub allows to quantify contributions and set concrete goals, e.g. two pull requests created, one merged, and five issues written. GitHub also offers graphical overviews of project activities. The goal is of course not to expose the student but to create a transparent environment for evaluation and grading. Teachers can even weigh in on discussions and make suggestions on the same platform as the students.
In our experience, students estimate very well their performance in comparison with their colleagues. However, using Scrum as a development model is challenging for them. We adopted the classic Scrum schedule and defined two week long sprints. Students sometimes quarrel with the role of supervising other students and delegating tasks among their peers. But in the end, the clear schedule and the focus on the iterative and communicative aspects of project management are a key to ensure success. Teachers should be ready to step in a Scrum masters and to support the product owners and must be open to adjust plans and expectations in the same way that the students have to.
We think this approach can considerably increase quality of a course from both a teaching and a learning perspective.
For Information about technology and the Future technology
to read the article click links given below
https://www.informationtechnologys.world
https://bit.ly/3oUiNlr
Shipping to Learn and Accelerate Growth with GitHubOptimizely
Will 2020 mark the shift to a remote-first world in the long run? For GitHub, a distributed workforce is nothing new. Join Sha Ma, VP of Engineering, and Gregory Ceccarelli, Director of Data Science, to learn how they built and scaled a successful experimentation program. They'll share their experience implementing Optimizely across timezones, a remote workforce, and a new business model.
In this session, you'll learn how to:
Optimize UX for a freemium business model
Use data to deliver customer-centered products
Scale experimentation and accelerate growth
It is a guideline for Saurashtra University students to aware them about Google Summer of Code program and Open Source by sharing my own experience with Joomla Community, Open Source and Google Summer of Code.
All of us, as part of the technical sphere, have sometime or the other heard about the term 'open-source'. Even if we haven't, we have been using since the first time we learned an algorithm or downloaded a software for free from the internet. But for most of you, this term may still be shrouded in mystery. So DSC IIT Goa and InfoSec IIT Goa are here for the rescue.
In this introductory event, we will celebrate the existence of this ever-expanding and most welcoming open-source community. A brief overview of the topics we'll cover is as below:
1. Introduction to open-source and why is it so valuable?
2. Basics of Git, GitHub and how to make a Pull Request.
3. Everything you need to know before making your first contribution.
4. Challenges faced and how to resolve them.
5. How open-source brings a security mindset.
6. Guide to safe usage and contribution to the community.
7. Famous annual open-source events and how to participate in them.
This event will fully equip you make the most dashing entry into this amazing community.
The GitHub Student Developer Pack is a collection of free tools, services, and resources curated specifically for students.It offers a wide range of benefits, including access to premium tools, cloud services, online courses, and much more. By signing up for the pack, you gain access to an array of tools that can boost your productivity, improve your skills, and facilitate your journey as a student developer.
Open Source and GitHub for Teaching with Software Development ProjectsDaniel Nüst
Experiences in using GitHub for collaborative software development in project seminars using and creating open source software.
Authors:
Daniel Nüst (d.nuest@52north.org, 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek (bartoschek@uni-muenster.de, Institute for Geoinformatics Münster)
Open source software is particularly suitable for teaching and organisations like Teaching Open Source (http://teachingopensource.org) present actively advertise this. In this talk we want to present some practical benefits that open source programming and publishing software on an open online platform has for teaching project-oriented software engineering seminars at university level. In these courses students together develop a new system for a specific task in form of a group project. For project groups, we suggest to use an adjusted variant of Scrum for project management (http://en.wikipedia.org/wiki/Scrum_%28software_development%29), git as source code management system (http://git-scm.com/), and GitHub as a collaboration platform (http://github.com/, https://education.github.com/). Thanks to GitHub’s collaboration models such as “fork & pull”, each student’s work, may they be in lines of code or contributions to a discussion, can be tracked. Students fulfil different tasks in a project setting: some develop, some spend their time issuing bugs or improving documentation. But for all of them GitHub allows to quantify contributions and set concrete goals, e.g. two pull requests created, one merged, and five issues written. GitHub also offers graphical overviews of project activities. The goal is of course not to expose the student but to create a transparent environment for evaluation and grading. Teachers can even weigh in on discussions and make suggestions on the same platform as the students.
In our experience, students estimate very well their performance in comparison with their colleagues. However, using Scrum as a development model is challenging for them. We adopted the classic Scrum schedule and defined two week long sprints. Students sometimes quarrel with the role of supervising other students and delegating tasks among their peers. But in the end, the clear schedule and the focus on the iterative and communicative aspects of project management are a key to ensure success. Teachers should be ready to step in a Scrum masters and to support the product owners and must be open to adjust plans and expectations in the same way that the students have to.
We think this approach can considerably increase quality of a course from both a teaching and a learning perspective.
For Information about technology and the Future technology
to read the article click links given below
https://www.informationtechnologys.world
https://bit.ly/3oUiNlr
Shipping to Learn and Accelerate Growth with GitHubOptimizely
Will 2020 mark the shift to a remote-first world in the long run? For GitHub, a distributed workforce is nothing new. Join Sha Ma, VP of Engineering, and Gregory Ceccarelli, Director of Data Science, to learn how they built and scaled a successful experimentation program. They'll share their experience implementing Optimizely across timezones, a remote workforce, and a new business model.
In this session, you'll learn how to:
Optimize UX for a freemium business model
Use data to deliver customer-centered products
Scale experimentation and accelerate growth
It is a guideline for Saurashtra University students to aware them about Google Summer of Code program and Open Source by sharing my own experience with Joomla Community, Open Source and Google Summer of Code.
All of us, as part of the technical sphere, have sometime or the other heard about the term 'open-source'. Even if we haven't, we have been using since the first time we learned an algorithm or downloaded a software for free from the internet. But for most of you, this term may still be shrouded in mystery. So DSC IIT Goa and InfoSec IIT Goa are here for the rescue.
In this introductory event, we will celebrate the existence of this ever-expanding and most welcoming open-source community. A brief overview of the topics we'll cover is as below:
1. Introduction to open-source and why is it so valuable?
2. Basics of Git, GitHub and how to make a Pull Request.
3. Everything you need to know before making your first contribution.
4. Challenges faced and how to resolve them.
5. How open-source brings a security mindset.
6. Guide to safe usage and contribution to the community.
7. Famous annual open-source events and how to participate in them.
This event will fully equip you make the most dashing entry into this amazing community.
9-July-2014 Open Source Software Panel - Google Summer of Code & Code-In intr...Women Who Code
Presentation about the Google Summer of Code < https://developers.google.com/open-source/soc/ > and Code-In < https://developers.google.com/open-source/gci/ > programs at 9-July-2014 Women Who Code SF panel discussion about getting involved in free / open source software development.
Presenter: Carol Smith ( @fossygrl ), Program Manager for Google Summer of Code, Google Open Source Programs Office < https://developers.google.com/open-source/ >
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 3
gsoc and grub4ext4
1. GSoC & grub4ext4
Peng Tao
BUPT—Broadband Network Research Center
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 1 / 37
2. Agenda
1 Google Summer of Code
2 Google Summer of Code 2008
3 Grub4ext4: enable ext4 file system as boot partition
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 2 / 37
3. About Me
Peng Tao
Broadband Network Research Center, BUPT
Graduate at Apr,2010(expected)
bergwolf@gmail.com
Copyright c 2008.
No rights reserved except that of others.
Bergwolf
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 3 / 37
4. 1 Google Summer of Code
2 Google Summer of Code 2008
3 Grub4ext4: enable ext4 file system as boot partition
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 4 / 37
5. What is Google Summer of Code?
Google Summer of Code (GSoC) is a program that offers student
developers stipends to write code for various open source projects.
Google will be working with several open source, free software, and
technology-related groups to identify and fund several projects over a
three month period.
Kicked off in 2005. In 2005, 2006 and 2007, the program has brought
together over 1,500 students with over 130 open source projects to create
millions of lines of code.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 4 / 37
6. What is Google Summer of Code?
Google Summer of Code (GSoC) is a program that offers student
developers stipends to write code for various open source projects.
Google will be working with several open source, free software, and
technology-related groups to identify and fund several projects over a
three month period.
Kicked off in 2005. In 2005, 2006 and 2007, the program has brought
together over 1,500 students with over 130 open source projects to create
millions of lines of code.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 4 / 37
7. What is Google Summer of Code?
Google Summer of Code (GSoC) is a program that offers student
developers stipends to write code for various open source projects.
Google will be working with several open source, free software, and
technology-related groups to identify and fund several projects over a
three month period.
Kicked off in 2005. In 2005, 2006 and 2007, the program has brought
together over 1,500 students with over 130 open source projects to create
millions of lines of code.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 4 / 37
8. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
9. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
10. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
11. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
12. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
13. Goals of Google Summer of Code
Google Summer of Code has several goals:
Get more open source code created and released for the benefit of all;
Inspire young developers to begin participating in open source
development;
Help open source projects identify and bring in new developers and
committers;
Provide students in Computer Science and related fields the opportunity
to do work related to their academic pursuits (think ”flip bits, not
burgers”);
Give students more exposure to real-world software development
scenarios (e.g., distributed development, software licensing questions,
mailing-list etiquette).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 5 / 37
14. A Simple workflow
1. Open source projects who’d like to participate in Google Summer of
Code in 2008 should choose an organization administrator(s) to represent
them;
2. Organization administrators will submit the project’s application for
participation online;
3. Google will notify the organization administrators of acceptance, and
an account for the organization will be created in the Google Summer of
Code web app;
4. Students submit project proposals online to work with particular
mentoring organizations;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 6 / 37
15. A Simple workflow
1. Open source projects who’d like to participate in Google Summer of
Code in 2008 should choose an organization administrator(s) to represent
them;
2. Organization administrators will submit the project’s application for
participation online;
3. Google will notify the organization administrators of acceptance, and
an account for the organization will be created in the Google Summer of
Code web app;
4. Students submit project proposals online to work with particular
mentoring organizations;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 6 / 37
16. A Simple workflow
1. Open source projects who’d like to participate in Google Summer of
Code in 2008 should choose an organization administrator(s) to represent
them;
2. Organization administrators will submit the project’s application for
participation online;
3. Google will notify the organization administrators of acceptance, and
an account for the organization will be created in the Google Summer of
Code web app;
4. Students submit project proposals online to work with particular
mentoring organizations;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 6 / 37
17. A Simple workflow
1. Open source projects who’d like to participate in Google Summer of
Code in 2008 should choose an organization administrator(s) to represent
them;
2. Organization administrators will submit the project’s application for
participation online;
3. Google will notify the organization administrators of acceptance, and
an account for the organization will be created in the Google Summer of
Code web app;
4. Students submit project proposals online to work with particular
mentoring organizations;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 6 / 37
18. A Simple workflow
1. Open source projects who’d like to participate in Google Summer of
Code in 2008 should choose an organization administrator(s) to represent
them;
2. Organization administrators will submit the project’s application for
participation online;
3. Google will notify the organization administrators of acceptance, and
an account for the organization will be created in the Google Summer of
Code web app;
4. Students submit project proposals online to work with particular
mentoring organizations;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 6 / 37
19. 5. Mentoring organizations rank student proposals and perform any
other due diligence on their potential mentees; student proposals are
matched with a mentor;
6. Google allocates a particular number of student slots to each
organization;
7. Students are notified of acceptance;
8. Students begin learning more about their mentoring organization and
its community before coding work starts;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 7 / 37
20. 5. Mentoring organizations rank student proposals and perform any
other due diligence on their potential mentees; student proposals are
matched with a mentor;
6. Google allocates a particular number of student slots to each
organization;
7. Students are notified of acceptance;
8. Students begin learning more about their mentoring organization and
its community before coding work starts;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 7 / 37
21. 5. Mentoring organizations rank student proposals and perform any
other due diligence on their potential mentees; student proposals are
matched with a mentor;
6. Google allocates a particular number of student slots to each
organization;
7. Students are notified of acceptance;
8. Students begin learning more about their mentoring organization and
its community before coding work starts;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 7 / 37
22. 5. Mentoring organizations rank student proposals and perform any
other due diligence on their potential mentees; student proposals are
matched with a mentor;
6. Google allocates a particular number of student slots to each
organization;
7. Students are notified of acceptance;
8. Students begin learning more about their mentoring organization and
its community before coding work starts;
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 7 / 37
23. 9. Students begin coding work at the official start of the program,
provided they’ve interacted well with their community up until the
program start date;
10. Mentors and students provide mid-term progress evaluations;
11. Mentors provide a final evaluation of student progress at close of
program; students submit a final review of their mentor and the
program;
12. Student who passes final evaluation uploads completed code to a
Google Code hosted project. Program close up.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 8 / 37
24. 9. Students begin coding work at the official start of the program,
provided they’ve interacted well with their community up until the
program start date;
10. Mentors and students provide mid-term progress evaluations;
11. Mentors provide a final evaluation of student progress at close of
program; students submit a final review of their mentor and the
program;
12. Student who passes final evaluation uploads completed code to a
Google Code hosted project. Program close up.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 8 / 37
25. 9. Students begin coding work at the official start of the program,
provided they’ve interacted well with their community up until the
program start date;
10. Mentors and students provide mid-term progress evaluations;
11. Mentors provide a final evaluation of student progress at close of
program; students submit a final review of their mentor and the
program;
12. Student who passes final evaluation uploads completed code to a
Google Code hosted project. Program close up.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 8 / 37
26. 9. Students begin coding work at the official start of the program,
provided they’ve interacted well with their community up until the
program start date;
10. Mentors and students provide mid-term progress evaluations;
11. Mentors provide a final evaluation of student progress at close of
program; students submit a final review of their mentor and the
program;
12. Student who passes final evaluation uploads completed code to a
Google Code hosted project. Program close up.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 8 / 37
27. 1 Google Summer of Code
2 Google Summer of Code 2008
3 Grub4ext4: enable ext4 file system as boot partition
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 9 / 37
28. Google Summer of Code 2008
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 9 / 37
29. Google Summer of Code 2008
GSoC 2008 was officially announced on February 25 and concluded on
September 2, 2008.
177 open source organizations with more than 3000 ideas.
over 1000 students from all over the world participated. Eighty-three
percent of them received passing final evaluations from their mentors and
communities, the highest rate of success in all four years running the
program.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 10 / 37
30. Google Summer of Code 2008
GSoC 2008 was officially announced on February 25 and concluded on
September 2, 2008.
177 open source organizations with more than 3000 ideas.
over 1000 students from all over the world participated. Eighty-three
percent of them received passing final evaluations from their mentors and
communities, the highest rate of success in all four years running the
program.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 10 / 37
31. Google Summer of Code 2008
GSoC 2008 was officially announced on February 25 and concluded on
September 2, 2008.
177 open source organizations with more than 3000 ideas.
over 1000 students from all over the world participated. Eighty-three
percent of them received passing final evaluations from their mentors and
communities, the highest rate of success in all four years running the
program.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 10 / 37
34. openSUSE in GSoC 2008
openSUSE provided 30 project ideas this year. Ten of them became a
GSoC project and all ten projects passed final evaluation!
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 13 / 37
35. openSUSE mentors and students
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 14 / 37
36. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
37. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
38. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
39. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
40. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
41. GSoC 2008 and Me
Preparation: Started from last winter, I began to do the RTFC things. I
collected documents and manuals about GRUB legacy, got a slight idea
of how to patch GRUB from GRUB’s side.
Application: There was about two weeks to write my proposal(Officially
only one week, but there was one week’s delay). Communication is very
important while writing proposal, especially with the mentor.
Working on it: Reading kernel and e2fsprogs code, asking questions on
IRC, writing patch, bla bla. A lot of things happened.
Submitting: I submitted my code and documents to Coly Li on August
14.
The end: With Coly Li’s help, my patch is now in openSUSE 11.1 beta1.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 15 / 37
42. 1 Google Summer of Code
2 Google Summer of Code 2008
3 Grub4ext4: enable ext4 file system as boot partition
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 16 / 37
43. Introduction
The ext4 file system is merged into Linux kernel as ext4dev.
However, an ext4-formated partition can not be used as a boot partition,
because GRUB Legacy(referred to as grub in the following text), which is
the most popular bootloader nowadays, doesn’t yet support mounting
and reading ext4 partitions.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 16 / 37
44. Introduction
The ext4 file system is merged into Linux kernel as ext4dev.
However, an ext4-formated partition can not be used as a boot partition,
because GRUB Legacy(referred to as grub in the following text), which is
the most popular bootloader nowadays, doesn’t yet support mounting
and reading ext4 partitions.
As part of Google Summer of Code 2008 program, grub4ext4 aims at
enabling gurb to boot on ext4 partitions.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 16 / 37
46. Linux VFS concepts
Generally, Linux Virtual File System(VFS) accomplishes following tasks:
1 Manage kernel level file abstractions in one format for all file systems
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 18 / 37
47. Linux VFS concepts
Generally, Linux Virtual File System(VFS) accomplishes following tasks:
1 Manage kernel level file abstractions in one format for all file systems
2 receive system calls from user level(e.g.write, open, stat, link)
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 18 / 37
48. Linux VFS concepts
Generally, Linux Virtual File System(VFS) accomplishes following tasks:
1 Manage kernel level file abstractions in one format for all file systems
2 receive system calls from user level(e.g.write, open, stat, link)
3 Interact with a specific file system based on mount point traversal
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 18 / 37
49. Linux VFS concepts
Generally, Linux Virtual File System(VFS) accomplishes following tasks:
1 Manage kernel level file abstractions in one format for all file systems
2 receive system calls from user level(e.g.write, open, stat, link)
3 Interact with a specific file system based on mount point traversal
4 receive request from other parts of the kernel, mostly from memory
management
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 18 / 37
50. Linux VFS concepts(ctd.)
VFS data structures:
1 VFS handle for the file: inode
2 user instantiated file handle: file
3 the whole filesystem metadata: superblock
4 a name to inode translation: dentry
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 19 / 37
51. Linux VFS concepts(ctd.)
Inodes:
Inode object is the kernel representation of the low level file
Inode has operations:
const struct inode operations *i op;
const struct file operations *i fop;
Inodes contain an FS specific information
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 20 / 37
52. Linux VFS concepts(ctd.)
File:
Store the process’s information about the file
File information: use count, flags, mode, owner, uid, gid, file operations,
etc.
File operations are copied from the i fop field of the inode object to the
file object by the kernel
Two file operation tables are maintained per FS: one for directories and
the other for regular files
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 21 / 37
53. Linux VFS concepts(ctd.)
Superblock:
Handel metadata only
Responsible for retrieving and storing metadata from FS media or peers
Struct superblock hold things like:
– block device, blocksize, filesystem type, flags, list of (inodes, dirty
inodes, etc) – super operations – wait queue – pointer to the root dentry
of the FS – etc...
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 22 / 37
54. Linux VFS concepts(ctd.)
Dentry:
The kernel uses dentries to represent the file system structure
Dentry is a name to inode translation structure
Dentry has Pointers to store the parent-child relationship of the files
Cached aggressively by VFS
Eliminate lookups by FS & private caches, faster lookups for NFS
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 23 / 37
55. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
56. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
1 EXT4 FEATURE INCOMPAT EXTENTS
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
57. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
1 EXT4 FEATURE INCOMPAT EXTENTS
2 EXT4 FEATURE INCOMPAT 64BIT
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
58. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
1 EXT4 FEATURE INCOMPAT EXTENTS
2 EXT4 FEATURE INCOMPAT 64BIT
3 EXT4 FEATURE INCOMPAT MMP(not implemented yet)
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
59. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
1 EXT4 FEATURE INCOMPAT EXTENTS
2 EXT4 FEATURE INCOMPAT 64BIT
3 EXT4 FEATURE INCOMPAT MMP(not implemented yet)
4 EXT4 FEATURE INCOMPAT FLEX BG
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
60. From ext3 to ext4
There are four incompatible ext4 features against ext3 defined in
fs/ext4/ext4.h:
1 EXT4 FEATURE INCOMPAT EXTENTS
2 EXT4 FEATURE INCOMPAT 64BIT
3 EXT4 FEATURE INCOMPAT MMP(not implemented yet)
4 EXT4 FEATURE INCOMPAT FLEX BG
To enable grub to boot on ext4 filesystem is to provide grub with support for
these incompatible features.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 24 / 37
61. EXT4 FEATURE INCOMPAT EXTENTS
Ext2/3 uses Indirect mapping to store data on disk.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 25 / 37
62. extents
ext2/3 indirect block maps are incredibly inefficient for large files
one extra block read per 1024 blocks
very obvious when moving or deleting big CD/DVD image files
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 26 / 37
63. extents
ext4 introduces a new on-disk data storage structure: extents.
ext2/3 indirect block maps are incredibly inefficient for large files
one extra block read per 1024 blocks
very obvious when moving or deleting big CD/DVD image files
an extent is a single descriptor for a chunk of contiguous blocks
efficient to represent large contiguous files
fewer metadata IO, better CPU utilization
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 26 / 37
64. on-disk extent format
12 bytes ext4 extent structure
48 bit physical block number to address 1EB filesystem
15 bit extent to store at most 128MB in a single extent
32 bit logical block number to address 16TB filesystem
struct ext4 extent {
le32 ee block; /* first logical block extent covers */
le16 ee len; /* number of blocks covered by extent */
le16 ee start hi; /* high 16 bits of physical block */
le32 ee start lo; /* low 32 bits of physical block */
};
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 27 / 37
65. extent mapping
Ext4 uses extent mapping, which is an advantage when storing large
continues files.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 28 / 37
68. EXT4 FEATURE INCOMPAT 64BIT
Currently(kernel 2.26.1), only changes in group descriptor are marked
with this feature. Group descriptor is fixed sized(32 bytes) in ext2/3 but can
be flexible in ext4(at least 64 bytes).
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 31 / 37
69. size of group descriptor
size of group descriptor is stored in s desc size of ext4 superblock which
is not present in ext2/3 superblock.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 32 / 37
70. size of group descriptor
size of group descriptor is stored in s desc size of ext4 superblock which
is not present in ext2/3 superblock.
In grub4ext4, test EXT4 FEATURE INCOMPAT 64BIT bit to decide
whether to read s desc size.
#define EXT2 DESC SIZE(s)
(EXT4 HAS INCOMPAT FEATURE(s,EXT4 FEATURE INCOMPAT 64BIT)?
s–>s desc size : EXT4 MIN DESC SIZE)
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 32 / 37
71. EXT4 FEATURE INCOMPAT FLEX BG
flex bg feature allows bitmaps and inode tables for a block group to be
placed anywhere on the storage media.
greatly decrease fsck time
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 33 / 37
72. EXT4 FEATURE INCOMPAT FLEX BG
flex bg feature allows bitmaps and inode tables for a block group to be
placed anywhere on the storage media.
greatly decrease fsck time
grub doesn’t interfere with bitmaps but uses group desc structure to
access the inode table, so this feature is naturally supported.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 33 / 37
73. Solved problem 1
How about ext3 files that are left unchanged on ext4 file system?
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 34 / 37
74. Solved problem 1
How about ext3 files that are left unchanged on ext4 file system?
There might be nonextent files on ext4 filesystem.
i flag in each file’s inode should be checked before mapping its logical block
number to physical block number in grub.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 34 / 37
75. Solved problem 2
What if physical block number of a file exceeds 32bit limitation on a
48bit ext4 filesystem?
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 35 / 37
76. Solved problem 2
What if physical block number of a file exceeds 32bit limitation on a
48bit ext4 filesystem?
Physical block number is 64bit in ext4.
In grub4ext4, high 16 bits is checked to avoid reading files whose physical
block number exceeds 32bit limitation.
If a request for such files is received, grub will return ERR FILELENGTH
with error message ”Filesystem compatibility error, cannot read whole file”.
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 35 / 37
77. Thanks
grub4ext4 is originally Coly Li’s idea. Without his insightful guiding,
grub4ext4 would not be what it is today.
And special thanks goes to Aneesh Kumar, who have helped me a lot in
understanding new ext4 features.
Also, without Google Summer of Code program, this project would not
have been grown so quickly. Google, you rock!
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 36 / 37
78. Thank you!
Q&A
Peng Tao
Broadband Network Research Center
State Key Laboratory of Network and Switching Technology
Beijing University of Posts and Telecommunications
Beijing, 100876, China
bergwolf@gmail.com
Peng Tao (BUPT) Introduction to GSoC and grub4ext4 37 / 37