<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Chathmini Jayathilaka on Medium]]></title>
        <description><![CDATA[Stories by Chathmini Jayathilaka on Medium]]></description>
        <link>https://medium.com/@chathmini96?source=rss-d34dbb5d70d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*NFPQnC2iJed7dq7YqIxmUg.jpeg</url>
            <title>Stories by Chathmini Jayathilaka on Medium</title>
            <link>https://medium.com/@chathmini96?source=rss-d34dbb5d70d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 18 May 2026 03:00:28 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@chathmini96/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Future of User Interface Design]]></title>
            <link>https://medium.com/@chathmini96/future-of-user-interface-design-a4ff64397924?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/a4ff64397924</guid>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Mon, 28 Mar 2022 04:59:51 GMT</pubDate>
            <atom:updated>2022-03-28T04:59:51.102Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*az0_8Cv8X3y-VPlMLjgrJw.jpeg" /></figure><p>The User Interface, also known as UI, has played a huge role in computing during the last few decades. This entity was paved for by the development of operating systems such as Microsoft and Macintosh. With the introduction of mobile operating systems such as Android and iOS, the role of UI design has expanded even more.</p><p>While the job of UI was always thought to be restricted to the individual engaging with technology and the simplicity with which they could do so, it now appears that UI design has expanded to include the business side of things. Doesn’t it seem a little surprising? That’s the way things is, whether it’s unexpected or not. UI design, like everything else in the computer world, is experiencing a shift, and it’s a big one!</p><h3>What is UI Design</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/223/1*lFSo7oX14q8IddSQtVbInw.png" /></figure><p>Every visual feature of a smart device that allows the user to engage with the technology in a relatively seamless manner is referred to as the user interface. When it comes to User Interface design, it mainly refers to the way and manners in which a user interacts with a website or program. For what it’s worth, User Interface Design is quickly becoming the essential difference that gives a business that all-important competitive advantage!</p><h3>Different user interface designs in future</h3><h4>1. Wearable Computers</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/654/1*ItbHSLJ7dEWuyGKsNKteIA.png" /></figure><p>Wearable computers, also known as wearable interfaces (or wearables), are small electronic devices worn on the body (mostly the wrist). Smartwatches, wristbands, rings, pins, eyeglasses, and other such items are examples.</p><p>Wearables act like a helping hand when it comes to managing physical duties and reminding you of your daily routine. The majority of gadgets are employed for health-related functions such as monitoring heart rate, cholesterol levels, and calorie consumption, among others.</p><p>Combining a smartwatch with a smartphone, for example, allows it to emulate many of the smartphone’s capabilities. It provides calling, email, message, tweet, and other notifications once it is paired.</p><p>Google Glass and AI-powered hearing aids, for example, are two highly developed instances of wearable technology.</p><h4>2. Voice User Interface</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/316/1*zg3S6BsSY7T_H7Bk-mmRdg.png" /></figure><p>Voice User Interfaces, or VUIs, are audio, visual, and tactile interfaces that allow people to interact with devices using their voices. The presence of a visual interface is not required for a VUI.</p><p>Voice With smart assistants like Siri, Alexa, Google, and Cortana, user interface has achieved revolutionary success, with speech being the main mode of human communication. The future of user interface design is now, and it’s becoming better and better as machine learning capabilities expand with more engagement.</p><p>People prefer voice interfaces since it allows them to work faster and save time. Voice interfaces require less intellect and more intuitive responses, making it simple for users to complete tasks or simplify their work.</p><p>For example, using Google Assistant, you can type messages by speaking them out loud.</p><p>Voice technology is only the beginning; there is much more to this future of user interface that tech gurus have yet to discover.</p><h4>3. Augmented Reality</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/533/1*samvXpL3wSDRZQwB4qWfTA.png" /></figure><p>Augmented reality is no longer a new concept. Companies have been exploiting the AR experience in a variety of apps, games, glasses, and systems, despite the fact that acceptance levels are still low. It has yet to reach its full potential.</p><p>AR uses computer-generated input to enrich the real-world environment and add perceptual simulated or virtual material, transforming objects around us into an interactive digital experience. It has made inroads into a variety of industries, including healthcare, retail, gaming, entertainment, hospitality, tourism, education, design, and more.</p><p>AR has shown the potential for a wide range of applications, which is why the market has been saturated with and influenced by this technology. The future of UI design with AR is quite likely to have a significant impact on the market.</p><h4>4. Brain-Computer Interface</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/1*W7Y0tGfHDq-rySE9Y7G81w.png" /></figure><p>A brain-computer interface (BCI), also known as a direct neural interface or a brain-machine interface, is a tool that allows a person (their brain) to communicate with a system (an external technology).</p><p>Neurons in our brain send and receive signals from other nerve cells. These neurons produce brain waves, which operate the system in the brain-computer interface. The BCI captures brain waves and delivers them to a computer system to complete the work at hand.</p><p>The brain generates electric impulses in response to our ideas, and each thought has its own brain wave pattern. The wave signal is used to control an object and express a concept.</p><p>For example, Electrocorticography (ECoG) has become a promising signal platform for brain-computer interface research and application.</p><h4>5. Virtual Reality</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/277/1*F7L5BaH0_zyn_RVWC2F1Vw.png" /></figure><p>Virtual Reality, or VR, is a well-established technology, but it has recently risen to new heights with the advent of VR headsets.</p><p>Virtual Reality creates a three-dimensional artificial environment that a human can explore and interact with, providing a unique experience. The virtual environment is designed to give the user the impression that they are in a real setting.</p><p>VR’s potential to provide immersive and pleasurable experiences is propelling it into new fields such as medical, architecture, gaming, entertainment, hospitality, and the arts. It’s just that additional research and technological progress are needed for a high-potential interface to have a significant impact on our daily lives.</p><h4>6. Gesture Recognition</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/294/1*n2QrXQiPSvrRes1rzJInwg.png" /></figure><p>Gesture Interfaces refers to operating the interface using gestures of hand movements or touch like scrolling, tapping, pinching, tilting, shaking, etc.</p><p>In today’s computer world, gesture-based UI has come a long way and is becoming more prevalent in the future of user interface design.</p><p>The gesture recognition interface technology reads the movement of the body with sensors or a camera and sends the information to a computer that identifies gestures as input to control devices or apps.</p><p>Gesture recognition uses a hand-held controller, a camera that catches movement, or another input device like gloves to capture the movements.</p><p>This interface is commonly used to communicate or control video games, entertainment, and mobile devices.</p><p>Example: XBOX 360 Kinect uses gestures to navigate the home screen, sign in or play a game. The future of gestural user interfaces in gaming includes the use of gesture-capable movements and touch screens that provide greater gaming control, mostly for 3D gaming.</p><h3>Next-generation UI design tools</h3><p>Since the first generation of Adobe Photoshop, which was designed for altering photographs rather than designing dynamic user interfaces, UI design tools have gone a long way. Adobe XD, Figma, and Sketch, among other technologies, have made our tasks easier and faster.</p><p>However, inefficiencies abound in our daily routines, and we’re squandering time and resources that could be better spent creating things that people want to use. Although today’s design programs are better than what we had before, they fail to take advantage of contemporary technology, preventing us from reaching our full potential as UI designers.</p><h4>Integrating Design and Code</h4><p>Future user interface tools will combine design and coding to give designers and developers a more seamless experience. Our current technologies assist us in creating abstract representations of web UIs rather than actual online UIs. Figma and Sketch mock-ups are separate from the original code.</p><p>Many designers today are familiar with the fundamentals of HTML and CSS. Some hardliners create in code, but this isn’t practical for complex projects; designers need to be able to swiftly test a proof of concept before committing to it.</p><p>designers need a visual-development environment that provides full design capabilities yet also generates production-ready code.</p><h4>Parallel Creation Will Replace Designer/Developer Handoffs</h4><p>There’s a lot of back-and-forth between designers and developers, particularly during the handoff phase. Handoff might take so long and be so laborious that the quality of the work degrades. Developers will no longer be completely responsible for UI design, thanks to next-generation design tools that interact with source code. Instead, they will be free to concentrate on creating the logical architecture that connects a product’s user interface to its back end and allows it to function effectively.</p><p>Designers and developers will instead collaborate on more important concerns like whether a design approach is feasible given time and budget constraints, or whether all of a UI component’s states have been addressed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/738/1*ZxeyL7Rt_fa1u3-uDHP7xg.png" /><figcaption>Designers and developers will be able to collaborate on the same deliverable: the source code, thanks to next-generation design tools that directly interface with the source code. This eliminates throwaway deliverables and allows designers and developers to work on the same deliverable: the source code.</figcaption></figure><h4>Mock-ups Will Become Obsolete</h4><p>Mock-ups are a waste of time and money, as well. They take a long time to create and have fallen out of favor in the digital product design world. Mock-ups have been phased out in favor of responsive, interactive prototypes, according to Webflow. Throwaway deliverables may be appropriate during the ideation stage, but they are a waste throughout the solution stage.</p><h4>All System States Will Be Accounted For</h4><p>Every state must be taken into account, but existing UI technologies leave it to designers to do so, forcing them to produce multiple variations of a single component. Developers may simply adjust for all possible states of a component using the development technologies React and Vue.js. Design tools must follow suit, encouraging — even nagging — designers to guarantee that all component states are considered.</p><h4>Real Data Will Replace Placeholder Content</h4><p>Just as designers create components for multiple states, they also design for a wide variety of data. UI designers need to be able to test their components with the actual data they are working with. Currently, designers can only simulate data by manually copying and pasting it into artboards. There are plugins that can help automate this process, but they are cumbersome.</p><p>It’s also not the solution to ask developers to review how components handle data. It’s too late to redesign components by the time they reach the testing stage. And how would designers know whether a card works with a long title — or no title at all — if they can’t test and iterate components using real data? How will they know if a typeface doesn’t support Arabic characters or if a website doesn’t support languages read from left to right?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/897/1*l7Nq1yRSRHpTh1jtmH565w.png" /></figure><h4>Edge-case Testing Will Become Easier</h4><p>UI tools will enable designers to better anticipate edge cases. Once a component is created, designers will stress test its various states, blasting it with diverse data. In this way, the UI will become the designer’s domain, freeing developers to concentrate on other tasks.</p><h3>Its impact on everyday life</h3><p>Science fiction has a lot of influence on the world of technology because it shows us what is impossible. The iPad of today is essentially the Star Trek: The Next Generation tablet computer. Back to the Future II, released in 1989, got a number of things right about 2015 technology.<br>When it comes to technological advancements, the future is certainly exciting, and in many respects, the future has already arrived!</p><h4>GESTURE INTERFACES</h4><p>Minority Report and Iron Man had some of the most memorable futuristic user interfaces. John Underkoffler, the inventor, created these interfaces. With each new summer movie, he claims, the feedback loop between science fiction and reality gets tighter. He continues by saying, “Science fiction and the technology we utilize in real life have an overtly symbiotic relationship. The OS is the interface, and the two are one.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/346/1*NgmK4LxlycPlD8R3G8jGnA.png" /></figure><h4>LIGHT RING</h4><p>Microsoft Research’s LightRing turns any surface into an interface by using infrared to detect finger motion and a gyroscope to calculate direction. On a book, your knee, or the wall, you can tap, draw, flick, and drag. For the time being, the interactivity is limited to one finger, but it still gives a very appealing and natural-looking option for users to make movements.</p><p>Wearable computing is taken to a whole new level with this technology! Imagine being able to control your device from anywhere and in any way you like. The nature of using this technology is comparable to using a mouse, as shown in the video, so we are already familiar with how it works.</p><h4>ROOM ALIVE</h4><p>RoomAlive is the follow-up to Microsoft Research’s IllumiRoom, which debuted at CES 2012. Both are steps toward a Kinect future in which “this is our house right now.” By layering input-output pixels on top of everything in the room, the new method goes beyond projection mapping around a TV. RoomAlive overlays an interactive screen from which there is no escape using several depth cameras and spatially mapped projectors.</p><p>Consider “real-life” video games that turn your living room into the game’s universe. Imagine virtual home décor, where you may project your image of how you wish to rearrange or add to the decor of your home.</p><h4>SKIN BUTTONS</h4><p>Miniature projectors are used in the Skin Buttons project to show interactive icons on the skin around the watch face. This approach extends the interaction zone around a smartwatch without physically increasing its size. The projector parts are less than $2 and can even extend the life of the battery by diverting work away from the primary display.</p><h4>FLEXSENSE</h4><p>The FlexSense is a translucent plastic sheet with inbuilt piezoelectric sensors that detect its curvature. All kinds of intuitive, paper-like interactions are possible as a result of this. Toggling layers in maps or drawings, for example, by flipping up a corner to reveal what’s underneath.</p><p>Consider phone cases that react when the cover is peeled away. Or turn-of-the-page interactive books or children’s books.</p><h4>HAPTOMIME</h4><p>HaptoMime uses ultrasound to create tactile feedback in midair, so you feel like you’re touching a hovering image when there’s nothing there at all. It’s produced by a hidden LCD and an angled transmissive mirror. This technology has massive potential for any public display.</p><h4>ZERO UI</h4><p>The concept of a zero-UI is not new. If you’ve ever used an Amazon Echo, waved at a Microsoft Kinect to change the channel, or set up a Nest thermostat, you’ve already used a device that could be deemed part of Goodman’s Zero UI concept. It’s all about moving away from the touchscreen and interacting with technology in more natural ways. Zero UI introduces a whole new dimension for designers, with approaches like as haptics, computer vision, voice control, and artificial intelligence.</p><p>Reference</p><p><a href="https://www.yellowslice.in/bed/future-of-ui-design/#:~:text=Moreover%2C%20UI%20Design%20will%20also,AR)%20and%20other%20such%20technologies">https://www.yellowslice.in/bed/future-of-ui-design/#:~:text=Moreover%2C%20UI%20Design%20will%20also,AR)%20and%20other%20such%20technologies</a>.</p><ul><li><a href="https://www.quickreviewer.com/what-is-the-future-of-user-interface-ui-design/">The future of User Interface Design (UI) - QuickReviewer</a></li><li><a href="https://www.toptal.com/designers/ui/future-ui-design">The Future of User Interface Design: Next-generation UI Tools | Toptal®</a></li><li><a href="https://www.getwrecked.com/the-future-of-ui-design-and-how-it-will-impact-our-everday-lives/">› The Future of UI Design and Its Impacts on Everday Life</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a4ff64397924" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Software Licensing.]]></title>
            <link>https://medium.com/@chathmini96/software-licensing-141a0129c7a9?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/141a0129c7a9</guid>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Tue, 08 Sep 2020 14:52:35 GMT</pubDate>
            <atom:updated>2020-09-08T14:52:35.596Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/259/1*j7yEZHiPITJu4PCyD_A9gw.png" /></figure><h3>What Is a Software License?</h3><p>A software license is a contract between the entity that created and supplied an application, underlying source code, or related product and its end-user. The license is a text document designed to protect the intellectual property of the software developer and to limit any claims against them that may arise from its use.</p><p>A software license also provides legally binding definitions for the distribution and use of the software. End-user rights, such as installation, warranties, and liabilities, are also often spelled out in the software license, including protection of the developer’s intellectual property.</p><p>Most software falls under one of two categories that have distinct differences in how they are viewed under copyright law:</p><ul><li>Proprietary — also referred to as “closed source”</li><li>Free and open-source software (FOSS) — referred to as “open source”</li></ul><p><a href="https://snyk.io/learn/open-source-licenses/">FOSS software licenses</a> — give rights to the customer that include modification and reuse of the software code, providing the actual source code with the software product(s). This open-source type of licensing affords the user authority to modify the software functions and freedom to inspect the software code.</p><p>Proprietary software licenses — provide no such authority for code modification or reuse and normally provide software with operational code only, and no source code. A proprietary software license often includes terms that prohibit “reverse engineering” of the object code with the intention of obtaining source code by the licensee.</p><p>In both cases, the software license will most often specify limitations of liability from the use of the software product, any mutual responsibilities such as support, and any warranties or disclaimer of warranty.</p><p>Where software is not covered by any license, it is normally categorized as:</p><ul><li>Public domain software — freely available for use and not copyright protected</li><li>Private unlicensed software — such as business applications that still falls under copyright protection</li></ul><p>Open source and proprietary software licensing may also specify additional restrictions and terms:</p><ul><li>Transfer of ownership to the buyer or retention of ownership by the seller</li><li>Any authorization for copying, selling or distributing the software</li><li>Definition of whether the license constitutes purchase or leasing of the software</li></ul><h3>What Are the Types of Software Licenses?</h3><p>There are five main software license categories or types used to cover different kinds of software and various business arrangements. These encompass a wide spectrum of licensing scenarios, from free software (public domain) to paid commercial software (proprietary).</p><p>Between these two extremes, there are also three categories (GNU/LGPL, permissive, and copyleft) that apply to various forms of open-source projects. Failure to follow the terms and conditions of an open-source license can lead to revealing trade secrets or even legal action from the project’s developers.</p><h3>5 Types of Software Licenses You Need to Know About</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/0*y3wrYLmbUKq3MBP_.png" /></figure><h3>1. Public Domain License</h3><p>When software is defined as being in the public domain, anyone is free to use and modify the software without restrictions. This is a “permissive” license that allows adopting the code into applications or projects and reusing the software as desired.</p><p>For many reasons, businesses must exercise caution when adopting public domain software in projects or other important applications:</p><ul><li>Public domain software may not always adhere to best coding practices or may not be up to standards of secure software that the application requires.</li><li>Software that does not fall under specific licensing terms is not always public domain code. Be sure the software is truly public domain before copying, reusing, or distributing it.</li></ul><h3>2. GNU/LGPL — GNU Lesser General Public License (LGPL)</h3><p>Under an LGPL license, developers have the rights to link to open source libraries within their own software. The resulting code can be licensed under any other type of license — even proprietary — when projects are compiled or linked to include an LGPL-licensed library.</p><p>The caveat is that if any part of the library is copied into the code or modified, the terms of the original LGPL license will apply to the developed code that used the library.</p><h3>3. Permissive</h3><p>This type of license is one of the most common and popular among open-source software licenses. Under a permissive license — also referred to as “Apache” or “BSD style” — there are few restrictions or requirements for the distribution or modifications of the software. Another variation of a permissive software license is the “MIT” license.</p><p>Variants in permissive licenses include differences in requirements for preserving license notices and copyrights for the software, as well as how the software may be used (commercial or private), trademark requirements, and other stipulations.</p><h3>4. Copyleft</h3><p>This license’s terms are restrictive — known as reciprocal licenses. Under the terms of a copyleft license, the licensed code may be modified or distributed as part of a software project if the new code is distributed under the same software license.</p><p>This means that if the code included in the software product was specified to be for “personal use only,” the new product being distributed must carry that same designation/restriction.</p><p>Since the original software included with the new project allowed modifications and distribution, this may not be the best license for software developers because the resulting code must also carry the copyleft license type — including the availability of the source code.</p><h3>5. Proprietary</h3><p>These software licenses make the software ineligible for copying, modifying, or distribution. This is the most restrictive type of software license, protecting the developer or owner from unauthorized use of the software.</p><h3>How Does Software Licensing Work?</h3><p>New users of the software will normally enter into an end-user license agreement (EULA) that constitutes a legal definition of the relationship between the licensor (provider) and licensee (user or business). The EULA is a contract that establishes the rights of the purchaser for installing and using the software.</p><p>Every EULA contains a clause that stipulates when its conditions are activated by an end-user. This may be the moment the user opens the product packaging or, for example, when the user clicks on a button agreeing to accept the EULA’s terms to access it.</p><p>Cloud-based applications such as Software as a Service (SaaS) will often include license details in EULAs including:</p><ul><li>Monthly or annual charges per user</li><li>Duration of the agreement</li><li>Terms of cancellation of the agreement</li><li>Recovery of any charges if canceled during the agreement</li></ul><p>Additional use of software licensing is in cases where a software developer or firm grants authority for selling or distributing the software under the second party’s brand. The developer retains ownership, but the re-branding company is permitted to resell the software product. This method of licensing is called “white labeling.”</p><h3>What Is a Software License Agreement?</h3><p>A software license agreement is a legal document that stipulates several key conditions between a software company or developer and a user to allow the use of the software.</p><p>These conditions are designed to protect the developer’s intellectual property rights and to limit claims against them for potential damage resulting from the use of their software. In some cases, pricing and terms of payment may also be included, though this is often covered in a separate document. The primary purpose of the agreement, however, is to provide detailed ground rules for use of the software:</p><ul><li>Where the software may be installed and how many instances may be installed.</li><li>How the software can be used.</li><li>Whether the software may be copied, modified, or redistributed.</li><li>Any copyrights that apply to the software.</li><li>Ownership of the software — most often specifying that the provider retains all rights of ownership.</li><li>Duration of the terms of the agreement.</li><li>What constitutes the correct usage of the software.</li></ul><h3>What Are Software Licenses Used for?</h3><p>Developers release software for a number of reasons, whether it be to demonstrate a new idea, provide benefit to as many people as possible, or for financial and economic gain. In order to ensure that all parties involved in the process are able to benefit from the software, the terms and conditions for its use must be clearly defined.</p><p>These terms and conditions are expressed as a licensing agreement. Software licenses are critical for software providers and users alike for many reasons:</p><ul><li>Written authority for use of software — protects business users and individuals from liability and copyright infringement claims</li><li>Clarification of the number of eligible users of the software</li><li>Definition of what is included — maintenance, upgrades, support</li><li>Warranty agreements and problem mediation process</li><li>Distribution permission and limitations</li><li>Use rights, such as copying or modifications</li><li>Copyright definition, including software and any documentation</li><li>Dates — for installation, training, support assistance, and license duration</li><li>Termination terms, penalties, financial liabilities</li><li>Any performance guarantees and remedies</li></ul><p>Software licenses define the complete agreement between the licensor and licensee. The goal is to clarify the relationship from both a legal and technical viewpoint, so there are no surprises or guesswork regarding responsibilities while the agreement is in effect.</p><p>For mobile software, the license terms state how much of the user’s sensitive personal data stored on the device an application vendor is permitted to access. These agreements are designed to protect personal information such as financial statements, location, or health data and prevent its misuse.</p><h3>How Much Does a Software License Cost?</h3><p>Software license pricing varies widely, depending on the type of software, how it is provided, and the supplier’s cost to develop the software. SaaS providers typically provide a subscription model where the charge is based on the number of users. This grants businesses a great deal of cost control and flexibility.</p><p>Software license pricing will vary greatly among software providers that offer complete on-premises business solutions as opposed to those providing open-source objects for building internal applications and web functions. While these costs may seem unnecessary, much like an insurance policy, it will provide protection when you actually need it.</p><p>Under this type, there are lots of software licenses in the world like MIT, GPL, Apache, etc. These are the result of research done in 2016 about what are the software licenses that mostly used in the world.</p><ol><li>MIT, 25%</li><li>GPL 3.0, 19%</li><li>Apache 2.0, 15%</li><li>GPL 2.0, 15%</li><li>BSD 3, 6%</li><li>LGPL 2.1, 6%</li><li>Ms-Pl, 5%</li><li>BSD 2, 3%</li><li>Zlib, 1%</li><li>Eclipse 1.0, 1%</li><li>BSD 4, 1%</li><li>Other, 5%</li></ol><p>This is some information about some software licenses.</p><blockquote><strong><em>MIT :- </em></strong><em>The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license compatibility. It is compatible because it can be re-licensed under other licenses.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/0*kWgni98rOj9SVqK0.jpeg" /></figure><blockquote><strong><em>Apache :- </em></strong><em>The Apache License is a permissive free software license written by the </em><a href="https://en.wikipedia.org/wiki/Apache_Software_Foundation"><em>Apache Software Foundation</em></a><em> (ASF).</em><a href="https://en.wikipedia.org/wiki/Apache_License#cite_note-nmr-permissive-5"><em>[5]</em></a><em> It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software under the terms of the license, without concern for royalties. The ASF and its projects release their software products under the Apache License. The license is also used by many non-ASF projects.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/321/0*Kw3X8OiUyLyb74yt.png" /></figure><blockquote><strong><em>BSD licenses:- </em></strong><em>BSD licenses are a family of </em><a href="https://en.wikipedia.org/wiki/Permissive_free_software_license"><em>permissive free software licenses</em></a><em>, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD license was used for its namesake, the Berkeley Software Distribution (BSD), a Unix-like operating system. The original version has since been revised, and its descendants are referred to as modified BSD licenses.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/379/0*oBG8qWEq_oe0DfrB.jpeg" /></figure><blockquote><strong><em>Eclipse Public License:- </em></strong><em>The Eclipse Public License (</em><strong><em>EPL</em></strong><em>) is a </em><a href="https://en.wikipedia.org/wiki/Free_software"><em>free</em></a><em> and </em><a href="https://en.wikipedia.org/wiki/Open_source_software"><em>open source software</em></a><em> license most notably used for the </em><a href="https://en.wikipedia.org/wiki/Eclipse_(software)"><em>Eclipse IDE</em></a><em> and other projects by the </em><a href="https://en.wikipedia.org/wiki/Eclipse_Foundation"><em>Eclipse Foundation</em></a><em>. It replaces the </em><a href="https://en.wikipedia.org/wiki/Common_Public_License"><em>Common Public License</em></a><em> (CPL) and removes certain terms relating to </em><a href="https://en.wikipedia.org/wiki/Litigation"><em>litigations</em></a><em> related to </em><a href="https://en.wikipedia.org/wiki/Patent"><em>patents</em></a></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/1*VmVgzafSYEU9Oc6PEC5zGg.png" /></figure><p>references that I used.</p><ul><li><a href="https://snyk.io/learn/what-is-a-software-license/">What is a software license? 5 Types of Software Licenses | Snyk</a></li><li><a href="https://resources.whitesourcesoftware.com/blog-whitesource/top-10-open-source-software-licenses-of-2016-and-key-trends">Top 10 Open Source Software Licenses of 2016 and Key Trends</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=141a0129c7a9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Agile Methodology]]></title>
            <link>https://medium.com/@chathmini96/agile-methodology-30ec4cdf3fc?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/30ec4cdf3fc</guid>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Thu, 30 Jul 2020 12:34:20 GMT</pubDate>
            <atom:updated>2020-07-30T12:35:36.097Z</atom:updated>
            <content:encoded><![CDATA[<h3>Agile Methodology</h3><p>The agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time-critical applications. Extreme Programming (XP) is currently one of the most well known agile development life cycle model. Agile methodology is explained in more detail under the Agile Tester topics.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dGbdNhomubFlfvEPrQrGNQ.png" /></figure><p><strong>Advantages of the Agile model:</strong></p><ul><li>Is a very realistic approach to software development.</li><li>Promotes teamwork and cross-training.</li><li>Functionality can be developed rapidly and demonstrated.</li><li>Resource requirements are minimum.</li><li>Suitable for fixed or changing requirements</li><li>Delivers early partial working solutions.</li><li>A good model for environments that change steadily.</li><li>Minimal rules, documentation easily employed.</li><li>Enables concurrent development and delivery within an overall planned context.</li><li>Little or no planning required.</li><li>Easy to manage.</li><li>Gives flexibility to developers.</li></ul><p><strong>Disadvantages of the Agile model:</strong></p><ul><li>Not suitable for handling complex dependencies.</li><li>More risk of sustainability, maintainability, and extensibility.</li><li>An overall plan, an agile leader, and agile PM practice is a must without which it will not work.</li><li>Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.</li><li>Depends heavily on customer interaction, so if a customer is not clear, the team can be driven in the wrong direction.</li><li>There is a very high individual dependency since there is minimum documentation generated.</li><li>Transfer of technology to new team members may be quite challenging due to a lack of documentation.</li></ul><p><strong>When to use an Agile model:</strong></p><ul><li>When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced.</li><li>To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.</li><li>Unlike the waterfall model in an agile model very limited planning is required to get started with the project. Agile assumes that the end-users’ needs are ever-changing in a dynamic business and IT world. Changes can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.</li><li>Both system developers and stakeholders alike find they also get more freedom of time and options than if the software was developed in a more rigid sequential way. Having options gives them the ability to leave important decisions until more or better data or even entire hosting programs are available; meaning the project can continue to move forward without fear of reaching a sudden standstill.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=30ec4cdf3fc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Waterfall vs. Agile Methodology]]></title>
            <link>https://medium.com/@chathmini96/waterfall-vs-agile-methodology-28001a9ca487?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/28001a9ca487</guid>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Thu, 30 Jul 2020 11:51:17 GMT</pubDate>
            <atom:updated>2020-07-30T11:54:18.242Z</atom:updated>
            <content:encoded><![CDATA[<h3>Waterfall Methodology</h3><h3>Waterfall Methodology</h3><h4><strong>What is waterfall Method</strong></h4><p>The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.</p><p>The Waterfall model is the earliest SDLC approach that was used for software development.</p><p>The waterfall Model illustrates the software development process in a linear sequential flow. This means that any phase in the development process begins only if the previous phase is complete. In this waterfall model, the phases do not overlap.</p><p>The sequential phases in the Waterfall model are −</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*tGKCSfTfV8E8t4atqrLE4A.png" /></figure><ul><li><strong>Requirement Gathering and analysis </strong>− All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.</li><li><strong>System Design</strong> − The requirement specifications from the first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.</li><li><strong>Implementation</strong> − With inputs from the system design, the system is first developed in small programs called units, which are integrated into the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing.</li><li><strong>Integration and Testing</strong> − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration of the entire system is tested for any faults and failures.</li><li><strong>Deployment of system</strong> − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.</li><li><strong>Maintenance</strong> − There are some issues that come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.</li></ul><h4>Waterfall Model — Advantages</h4><p>The advantages of waterfall development are that it allows for departmentalization and control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one.</p><p>Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order.</p><p>Some of the major advantages of the Waterfall Model are as follows −</p><ul><li>Simple and easy to understand and use</li><li>Easy to manage due to the rigidity of the model. Each phase has a specific deliverable and a review process.</li><li>Phases are processed and completed one at a time.</li><li>Works well for smaller projects where requirements are very well understood.</li><li>Clearly defined stages.</li><li>Well understood milestones.</li><li>Easy to arrange tasks.</li><li>The process and results are well documented.</li></ul><p><strong>Waterfall Model — Disadvantages</strong></p><p>The disadvantage of waterfall development is that it does not allow much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.</p><p>The major disadvantages of the Waterfall Model are as follows −</p><ul><li>No working software is produced until late during the life cycle.</li><li>High amounts of risk and uncertainty.</li><li>Not a good model for complex and object-oriented projects.</li><li>Poor model for long and ongoing projects.</li><li>Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.</li><li>It is difficult to measure progress within stages.</li><li>Cannot accommodate changing requirements.</li><li>Adjusting scope during the life cycle can end a project.</li><li>Integration is done as a “big-bang. at the very end, which doesn’t allow identifying any technological or business bottleneck or challenges early.</li></ul><p><strong>When to use the waterfall model</strong></p><ul><li>This model is used only when the requirements are very well known, clear, and fixed.</li><li>The product definition is stable.</li><li>Technology is understood.</li><li>There are no ambiguous requirements</li><li>Ample resources with required expertise are available freely</li><li>The project is short.</li></ul><p>In the Waterfall model, very little customer interaction is involved during the development of the product. Once the product is ready then only it can be demonstrated to the end-users.</p><p>Once the product is developed and if any failure occurs then the cost of fixing such issues is very high because we need to update everything from the document till the logic.</p><p>In today’s world, the Waterfall model has been replaced by other models like iterative, agile, etc.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=28001a9ca487" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ethical Whistle-blowing]]></title>
            <link>https://medium.com/@chathmini96/ethical-whistle-blowing-321f93e2d896?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/321f93e2d896</guid>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Sat, 25 Jul 2020 17:36:30 GMT</pubDate>
            <atom:updated>2020-07-25T17:36:30.838Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/296/1*LabEZzQeptXrEdz6S_CUZQ.jpeg" /></figure><h3>What Is Whistle-blowing?</h3><p>What is whistle-blowing? Whistle-blowing is the term used when a person passes on information concerning wrongdoing, such as corruption, sexual harassment… This can be referred to as “blowing the whistle”, “making a disclosure”, “making a whistle-blowing report”, or otherwise. The person is usually closely associated with the organisation, often an employee, but also sometimes a supplier or a customer. They become a whistle-blower when they observe behavior or actions that they believe to be misconduct, illegal and not in line with the company’s Code of Conduct, and report that suspicion as a whistle-blowing matter.</p><p><strong>Whistle-blowing can take place either within an organisation, or publicly.</strong></p><p><em>Organisational whistle-blowing:</em> is a preventive tool for organisations to reduce the risks of malpractice and irregularities. Empowering employees and other relevant stakeholders to blow the whistle increases the chances of managers obtaining information on irregularities that should be acted upon at an early stage. Organisations that take their Code of Conduct seriously will therefore put in place mechanisms to enable organisational whistle-blowing, such as a secure corporate whistle-blowing system or hotline and a whistle-blowing policy or guidelines.</p><p><em>Public whistle-blowing:</em> In organisations where trust is low, the above mechanisms are not in place, or there is no possibility to be an anonymous whistle-blower, the person may be more inclined to blow the whistle publicly. This may include reporting to the police, media or through online social channels, which of course brings a greater risk of reputation damage for organisations. In some instances, though, there is a duty to blow the whistle to a professional body or regulator.</p><p>So, what counts as a whistle-blowing complaint?</p><p>Perspectives vary from organisation to organisation, and whistle-blower protection laws define whistle-blowing cases differently from jurisdiction to jurisdiction. The following list is a UK-based example, but these items are widely considered grounds for whistle-blowing.</p><ul><li>a criminal offence, e.g. fraud or corruption</li><li>a person’s health and safety is in danger</li><li>risk or actual damage to the environment</li><li>a miscarriage of justice</li><li>serious forms of discrimination or harassment</li><li>the company is breaking the law, e.g. does not have the right insurance</li><li>there is suspicion that someone is covering up wrongdoing</li></ul><p><strong>Why is whistle-blowing currently so in focus?</strong></p><p>The rise of whistle-blowing started with the 2007–08 global financial crisis, which re-awakened the world to the need for a crackdown on corporate corruption. Further, in the last two years, the #Metoo campaign has completely changed how whistle-blowers are viewed; from troublemakers to heroes.</p><p>Consequently we have seen a sharpened focus on anti-corruption and greater pressure on organisations to give employees a voice. At the same time, more and more governments are putting in place whistle-blowing laws that in some cases mandate the implementation of whistle-blowing systems, in other cases, enhance whistle-blower protection. As a result, organisations are increasingly choosing to set up whistle-blowing channels to better manage issues internally and to ensure compliance.</p><h3>Elements of ethical whistle-blowing</h3><p>Ethical whistle-blowing process has four elements.</p><ol><li><strong>Whistle-blower</strong></li><li><strong>The complaint ( Wrongdoing of the organization)</strong></li></ol><p>Whistle-blowing law support complaints regarding these wrongdoings.</p><ul><li>criminal offences,types of financial impropriety such as fraud</li><li>failure to comply with an obligation set out in law</li><li>miscarriages of justice</li><li>endangering of someone’s health and safety</li><li>damage to the environment</li><li>covering up wrongdoing in the above categories</li></ul><p>3. <strong>The party to whom the complain is made</strong></p><p>4. <strong>The organization against which the complaint is made</strong></p><h3>A 10-Step Guide to Whistle-blowing</h3><p>1. <strong>Shut up and get a good lawyer, fast.</strong> You can complain about the fraud internally, but we all know how that usually ends. Once you identify a fraud, immediately contact a lawyer to ask for guidance, including what documents and corroborating evidence that you can take with you. Do NOT ever take originals. You don’t want the real crooks to flex their muscle and convince authorities that your “theft” should negate their fraud. It’s also possible that as soon as you start thinking about the impropriety, people at the company know who you are. That means you could be escorted out of the building before you can grab your kids’ pictures off your desk.</p><p>2. <strong>Make sure you have a case. </strong><a href="http://en.wikipedia.org/wiki/False_Claims_Act">FCA</a>, <a href="http://www.irs.gov/uac/Whistleblower-Informant-Award">IRS</a> and <a href="http://www.sec.gov/whistleblower">SEC</a> cases are not based on rumor or hunches, but evidence. You have to prove fraud and the government is not paying awards for generalized tips, but for specific evidence. You are supposed to be doing the government’s work for it. Don’t assume that you will be able to prove your case by having your lawyer or the government subpoena documents from the defendant after the case is filed. Think about what you personally know right now. As the great philosopher <a href="http://www.youtube.com/watch?v=Gra9vwzMU5k">Tommy Boy said</a>, “I can get a good look at a T-bone by sticking my head up a bull’s ass, but I’d rather take a butcher’s word for it.” The government wants the butcher, but come prepared with meat in hand.</p><p>3. <strong>Welcome hard questions and difficult truths.</strong> Don’t blame a lawyer for questioning your case — convince them it has the necessary merit. If you have found a good lawyer and you can’t convince them, then maybe you don’t have a case. My <a href="http://www.phillipsandcohen.com/News-Reports-of-P-C-Cases/Omnicare-paid-19-8-million.shtml">first</a> (successful) case involved a novel theory — fraud that was obvious to me but not something that the Department of Justice had pursued before. My attorneys dug deep into the facts of my case and did a lot of legal research before they felt comfortable it was viable. Initial skepticism can save years of wasted time if the facts and/or law don’t work in your favor.</p><p>4. <strong>Get an honest lawyer who’s had some success in the whistleblower arena.</strong> Before divulging any specific details to a prospective lawyer, make sure they run a conflict’s check first to ensure they don’t have an ulterior agenda. For example, they could already represent a client that has a similar case and could be trying to suck information out of you. If a lawyer purports to have recovered billions of dollars in whistle-blower claims, ask them how much their relators’ shares have been. There are some <a href="http://www.phillipsandcohen.com/">great lawyers</a> who represent whistle-blowers, including some who are less well known but nonetheless very capable. Asking other whistle-blowers who they recommend and then talking to the lawyers is always a good way to approach a potential attorney-client relationship. The key, however, is to find an attorney with good judgment quickly.</p><p>Also, don’t pay someone an hourly fee to represent you on a whistle-blower case (unless they are only representing you in an employment case). The real whistle-blower lawyers all work on a contingency fee basis — meaning you pay nothing unless you win. The only lawyers I ever heard of who charge an hourly rate are ones who don’t know what they are doing — or ones who think you don’t have a case but are happy to take your money.</p><p>5. <strong>Prepare for the long haul.</strong> Most defendants don’t settle easily, and they never fear press as much as you think they will. Many lawyers have told me that every whistle-blower they talk to says “the company will settle this quickly to avoid the press.” They never do.</p><p>6. <strong>Be prepared to be “outed.”</strong> If any lawyer tells you that your anonymity is guaranteed, seek another counsel. Whistle-blower cases are filed under seal, and there are ways to potentially mitigate the risk of being revealed as a whistle-blower, like filing a case under the name of an LLC, but anonymity can never be assured. Once a district court clerk inadvertently lifted a seal in my case for ten hours and my co-relator and I were exposed. It shouldn’t have happened but it did. And similar things have happened to others. Once you file your case, you should assume you will get outted eventually. Stock up on Imodium.</p><p>7. <strong>Get another job.</strong> Cases, like anything in life, have ebbs and flows. Working while your case is on-going keeps you sane, stable, and protects your family’s welfare in the event your case crumbles. Cases can take years from start to finish. Sitting around waiting for a recovery can be counter-productive. And, sadly, if and when you are revealed as a whistle-blower, it will make finding a new job harder, not easier.</p><p>8. <strong>Plan for success.</strong> At the point at which you sense your case might be successful (for instance, the government intervenes), contact an estate planner so you don’t end up like so many lottery winners. Of course, a whistle-blower is the antithesis of a lottery winner. You must possess a tremendous work ethic, courage, and perseverance. Do your due diligence and find a great estate attorney and money manager so that success will last.</p><p>7. <strong>Don’t count your eggs before they hatch.</strong> The big print giveth, and the little print taketh away. Never assume your case will settle for the maximum amount. In a Medicaid case, assume you will not get any award for 25 percent of the case and that some portion of penalties will be allocated to criminal sanctions for which you will not get a share. Assume you are not the only relator — there could be other whistle-blowers who you will come to learn are going to split the award. And don’t think the gross penalty is your share. You have to pay lawyers’ fees and taxes still.</p><p>8. <strong>Find a friend.</strong> There is nobody better to meet who will understand your circumstance more than another whistle-blower. They will have empathy and be able to give you guidance. I have had several contact me before they even decided to approach an attorney. It’s a lonely line of work because the court mandated seal requires that the only people you can discuss your case with are your lawyers.</p><p>9. <strong>Be grateful. </strong>This will not be easy, because at the end of the day, the liars, cheats and thieves who stole from the American people and got you fired will probably keep their jobs, receive bonuses, and may even get promoted. Anger and resentment are termites for the soul, however. Gratitude is the cure, and it is something you need to cultivate. If you cannot find gratitude, find help.</p><p>10. <strong>Pay it forward.</strong> There are other whistle-blowers behind you, and they need the law that helped you in your hour of need. That law is under constant attack by powerful and well-funded pack lobbyists and lawyers. Support groups like <a href="http://www.taf.org/">Taxpayers Against Fraud</a> that seek to ensure that whistle-blowers are both protected and compensated</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=321f93e2d896" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[JS OS]]></title>
            <link>https://medium.com/@chathmini96/js-os-6ea5eb02d796?source=rss-d34dbb5d70d------2</link>
            <guid isPermaLink="false">https://medium.com/p/6ea5eb02d796</guid>
            <category><![CDATA[linux]]></category>
            <dc:creator><![CDATA[Chathmini Jayathilaka]]></dc:creator>
            <pubDate>Sat, 15 Jun 2019 12:29:23 GMT</pubDate>
            <atom:updated>2019-06-15T12:29:23.623Z</atom:updated>
            <content:encoded><![CDATA[<p>JS OS is the my first OS and I build it using Ubuntu Os. This following article is describing what I have done. That is the small Operating System which displays the Hardware Information of the computer.</p><p><strong><em>&gt;&gt;What is the OS</em></strong>-</p><p>An Operating System (OS) is a collection of software that manages computer hardware and provides services for programs. Specifically, it hides hardware complexity, manages computational resources, and provides isolation and protection. Most importantly, it directly has privilege access to the underlying hardware.</p><p>when I create OS first I build boot-load and secondly code kernel and finally build disk_image.</p><p>Before the building Os we want to install NASM and QUMU</p><ul><li><a href="http://nasm.us/">NASM</a> — the assembler used to build JS OS</li><li><a href="https://www.qemu.org/">QEMU</a> — excellent PC emulator for testing OSes</li></ul><p>My JS OS has build.Linux file and 3 folders. there are disk_image, programs and sources.</p><p><strong><em>Disk_image folder</em></strong>-:There are 2 files</p><p>JSos.flp — Floppy disk image containing JSOS and programs</p><p>OS.iso — CD ISO image built using the floppy disk image</p><p>these files are virtual disk images that you can write to real floppy disks or CD-Rs, or run in a PC emulator as described in a moment.</p><p><strong><em>programs folder</em></strong>-:There are 2 files</p><p>aquadev.inc-INC file</p><p>Sample-PCX file</p><p><strong><em>Source folder</em></strong>-: This is the most important folder. It has files and folders</p><p><strong>1) bootload foler-</strong> There are 2 files</p><p>bootload-ASM file</p><p>bootload.bin-BIN file</p><p>Bootloader is a piece of code that runs before any operating system is running.Bootloader are used to boot other operating systems, usually each operating system has a set of bootloaders specific for it.Bootloaders usually contain several ways to boot the OS kernel and also contain commands for debugging and/or modifying the kernel environment.In this talk we will concentrate on Linux bootloaders.Since it is usually the first software to run after powerup or reset, it is highly processor and board specific.</p><p><strong>2) features folder</strong>-There are 2 flie.</p><p>Keyboard-ASM file</p><p>Screen-ASM file</p><p><strong>3) kernel</strong>-ASM file</p><p>The kernel is the central module of an operating system (OS). It is the part of the operating system that loads first, and it remains in main memory. Because it stays in memory, it is important for the kernel to be as small as possible while still providing all the essential services required by other parts of the operating system and applications. The kernel code is usually loaded into a protected area of memory to prevent it from being overwritten by programs or other parts of the operating system.</p><p>Typically, the kernel is responsible for memory management, process and task management, and disk management. The kernel connects the system hardware to the application software. Every operating system has a kernel. For example the Linux kernel is used numerous operating systems including Linux, FreeBSD, Android and others.</p><p>4)kernel.bin-BIN file</p><p><strong><em>&gt;&gt;The process of starting the operating system kernel</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*0lksy76jXpIGpZiI7t1vVA.png" /></figure><p><strong>&gt;&gt;The kernel is the heart of the OS, and has access to the hardware. So this aspect is processor dependent.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/1*yb9Fvfla0fKZc4c8qILxVw.jpeg" /></figure><h4>&gt;&gt; Steps of the boot OS with a USB drive</h4><p>01. Format the USB drive as the FAT32 file system. The FAT12 file format can handle disks minimum than 32MB.</p><pre>sudo /sbin/mkdosfs -F 32 -I /dev/sdb</pre><p>02. Create a floppy disk image,</p><pre>sudo dd if=/dev/zero bs=512 count=2880 of=./floppy.img</pre><p>03. Format the floppy image,</p><pre>sudo /sbin/mkdosfs –F 12 ./floppy.img</pre><p>04. Override the floppy image,</p><pre>sudo dd if=./floppy.img of=/dev/sdc</pre><p>05. Move the boot file into the boot sector of the disk.</p><pre>sudo dd if=./boot.bin of=/dev/sdc</pre><p>After running OS in terminal I had following output</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qG85nPSrvao12XJFfMv7fg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*JaFda6C2oysVS-os9vhl0g.png" /></figure><p>Following git-hub link have my JS OS code-<a href="https://github.com/Chathmini/JS-OS.git">https://github.com/Chathmini/JS-OS.git</a></p><p>Reference-<a href="http://mikeos.sourceforge.net/">http://mikeos.sourceforge.net/</a> and <a href="https://www.cs.bgu.ac.il/~yagel/dolev/MinimalOS/josh/">https://www.cs.bgu.ac.il/~yagel/dolev/MinimalOS/josh/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6ea5eb02d796" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>