text:
Deeper draft VLCC's can now be berthed, and facilities for handling and storing crude oil in the Port of Rotterdam are also being further expanded.
At Shell Europoort, the jetty has been adapted to handle ships with an even deeper draught.
Following the Maasvlakte Oil Terminal (MOT), where three new tanks went into use at the end of 2011, Maatschap Europoort Terminal (MET) is now also expanding its tank capacity.
The extra tank capacity is not particularly related to an increase in supply, but gives the refineries greater flexibility, which makes them more competitive. As the extraction/production of North Sea oil is declining, crude oil will be brought in from still other areas in the future. These different types will be blended to specifications at MET.
In the past 10 years, supplies of crude oil have fluctuated between 92 and 102 million tons (98 million in 2012). During this period, the proportion of 'North Sea oil' fell from over 40 million tons to less than 20 million tons.
Since 2003, most crude oil has come from Russia. In 2012, 'liquid bulk', which includes crude oil, made up almost 50% of throughput in the port of Rotterdam.
Recently, the deepened berth at Shell jetty 104 in the Beneluxhaven was completed. The 'pocket' for the jetty (an area of 400 m x 80 m) was recently deepened by two metrsr to -23.65 m NAP. The bottom depth here is now identical to that of the MOT jetties.
The navigation path to the jetty has been dredged by 0.5 meters to -22.15 m NAP. This means that Shell can accommodate the very largest oil tankers, with a draught of 22 meters, allowing for more than 30,000 tons more crude oil per ship.
Maritime Today
The Maritime Industry's original and most viewed E-News Service
The first liquefied natural gas vessel from the lower 48 U.S. states is on its way to China, according to a Reuters interactive map on Friday, the latest sign that
Libyan oil exports from closed ports should resume in no more than one to two weeks after a deal was signed between the government and an armed brigade controlling the terminals,
MidEast, West Africa rates hit 11-month low.
Freight rates for very large crude carriers (VLCCs), which hit an 11-month low this week, could slide further next
Freight rates for shipping containers from ports in Asia to Northern Europe jumped 58 percent to $1,125 per 20-foot container (TEU) in the week ending Friday, a
CMA CGM has introduced its new Bengal Bay Express service, operated with 11 vessels of 6,500 TEU on a weekly basis, in a continuous effort to provide its customers with the best quality service.
The North Carolina Department of Transportation recently took delivery of a new, fully customized cutter suction dredge, which it christened the Dredge Manteo in a ceremony held April 28,
Royal Boskalis Westminster N.V. (Boskalis) has been awarded the Offshore Balance of Plant contract by Vattenfall for the construction of Aberdeen Offshore Wind Farm,
Great Lakes Dredge & Dock Corporation announced that it was recently awarded four contracts with an approximate value of $93 million.
Great Lakes received two
Singapore oilfield services company Swiber Holdings Ltd said on Friday it has applied to place itself under judicial management instead of liquidation.
U.S. drillers this week added oil rigs for a fifth consecutive week, Baker Hughes Inc said on Friday, but the oilfield services provider and some analysts cast
Wilson Sons Ultratug Offshore, a joint venture between Wilson Sons and the Chilean maritime services provider Ultramar, has taken delivery of a Damen PSV 5000.


text:
|Showing 1-20
County previews 2014
Hampshire need to lift Championship game
Mar 25, 2014: ESPNcricinfo previews Hampshire's prospects for 2014
England news
Hampshire confident despite construction delays
Oct 4, 2013: Work on the development of Hampshire's Ageas Bowl ground, including the construction of a hotel and media centre, has been halted after the contractor went into administration
Hampshire v Surrey, FLt20 South Group, Ageas Bowl
Holders Hampshire make winning start
Jun 27, 2013: Adam Wheater won the game with a six as Hampshire saw off Surrey in emphatic fashion on the opening night of the Friends Life t20
Hampshire v Lancashire, YB40 Group B, Ageas Bowl
Carberry form too hot for Lancashire
May 22, 2013: Michael Carberry continued his excellent form in the Yorkshire Bank 40 as holders Hampshire extended their lead at the top of Group B with a nine-wicket victory against Lancashire at the Ageas Bowl.
Apr 18, 2013: Another county season gets underway. It won't be the same without Christopher Martin-Jenkins and Tony Greig
County news
Dec 21, 2012: Hampshire have pulled off a coup by signing Saeed Ajmal, the Pakistan spin bowler, for the later stages of the 2013 season.
County news
Hampshire name stand after Warne
May 1, 2012: Hampshire old and new will come together as two stands are named after two former famous former players later this season
County news
Hampshire sell Rose Bowl naming rights
Feb 27, 2012: Hampshire have announced a sponsorship deal that will see their Rose Bowl ground officially rebranded as the Ageas Bowl
County news
Local council to buy the Rose Bowl
Dec 19, 2011: Hampshire's Rose Bowl will be bought by the local council to save the club from its second financial crisis in a decade.
Rod Bransgrove
Hampshire's knight in shining armour
Jun 16, 2011: Today the Rose Bowl's patrons are getting to watch the first Test at the venue thanks to a pharmaceuticals millionaire who put a lot of his own money into developing the Southampton stadium
England & Wales Cricket Board
Durham awarded Ashes Test in 2013
Jul 30, 2009: Ashes cricket will be heading to the North-East for the first time in 2013, after the England & Wales Cricket Board accepted the recommendation of the independent Major Match Group
County news
Rose Bowl transformation gets go-ahead
Jul 17, 2009: The Rose Bowl will undergo a multi-million pound development project ahead of its first Test in 2011
County news
Feb 21, 2009: Work has begun on the first phase of development at Hampshire's Rose Bowl aimed at easing long-standing problems regarding spectator access
The Ashes 2009
2009 Ashes itinerary announced
May 5, 2008: The ECB have confirmed Australia's full itinerary for their tour of England next year, which includes seven one-dayers in addition to the usual five Tests
ECB unveils major match allocations
Rose Bowl lands maiden Test in 2011
Apr 11, 2008: Hampshire's Rose Bowl will host its maiden Test match in 2011 when Sri Lanka tour England for a three-Test series in May and June
ECB international hosting arrangements slammed
County treasurer warns 'a club will go into administration'
Mar 6, 2008: Warwickshire's honorary treasurer has warned that there is every possibility that a county will go to the wall
County news
Dec 6, 2007: The Rose Bowl has been granted planning permission for an additional entrance. This new entrance should ease the access problems that have occurred when the ground has hosted international matches
England's Test venues
Enjoy cricket-style entertainment at The Rose Bowl
Nov 30, 2006: More and more venues around England aspire to acquire Test status
Transport and pitch will be scrutinised
Rose Bowl a step closer to Test cricket
Nov 24, 2006: Hampshire's home ground, the Rose Bowl, has moved one step closer to hosting Test matches after being granted provisional category A status
Hampshire chairman pours cash into venue
Bransgrove invests £35 million in Rose Bowl
Nov 2, 2006: Rod Bransgrove, Hampshire's high-profile chairman, will today announce a £35 million redevelopment of The Rose Bowl, a move clearly aimed at making its claims to be considered for Test status irresistible
|Showing 1-20
West Indies need to paper over bowling cracks
The hosts' pace attack, with a combined experience of 31 Tests and 56 wickets, is a candidate for being their weakest ever, yet India cannot simply show up and expect to win
Yasir's 13 going on 100, and 42-year-old centurions
Also, losing ten-fors, and back to back Tests at Lord's
Ashwin emulates Botham with ton and seven-for
Stats highlights from the fourth day's play in Antigua where Ashwin's maiden five-wicket haul outside Asia bowled India to an innings victory
Stats highlights from the first day of the Antigua Test, where Virat Kohli and Shikhar Dhawan stole the show from the hosts
Loose West Indies succumb to Ashwin's wiles
One after another, the hosts' batsmen attempted questionable flicks and drives in their second innings, disregarding the drift and dip the offspinner was generating
West Indies need to paper over bowling cracks (62)
The hosts' pace attack, with a combined experience of 31 Tests and 56 wickets, is a candidate for being their weakest ever, yet India cannot simply show up and expect to win
Herath versus the mighty Australians? (45)
Sri Lanka's lead spinner must feel like a bus driver in charge of a spluttering vehicle as the hosts strive to challenge a strong Australian side
Cook braves criticism as England play it safe (39)
There was enough logic in Alastair Cook's decision not to enforce the follow-on to make it understandable at worst and reasonable at best
Australia seek returns on Mitchell Marsh investment (37)
Australia will be hoping that Mitchell Marsh grows from an emerging allrounder into a top-quality allrounder by the end of the Sri Lanka tour
Why close-catching standards have dropped (26)
Technique and anticipation are important for close-in fielding. Many of today's fielders lack both

subset: commoncrawl


text:
This research allowed understanding which words consumers and, more generally, the market, use. Adjectives like "sustainable", "green", "eco", "responsible", "conscious", "and ethical" are commonly associated with the word "fashion". The question is: are certain words more popular than others? Or are some others nowadays outdated? How does consumer talk about sustainable fashion? And the industry?
For a brand willing to be recognized for its ethical credentials, using the right words is essential to communicate efficiently to stakeholders. Knowing which words are most popular allows to understand how consumers think, and communicate adequately and efficiently. Comparing the most used words to search for "sustainable fashion" between 2004 until today, texSture found that:
- "Green fashion", recalling environmental credentials, has been the most popular search term since 2004. This trend is forecasted to continue this year.
-"Organic fashion", with association to organic certifications, is the second most popular search term, indicating that the association with organic fibres like cotton is very strong.
- "Fair trade fashion', stressing the maximization of the benefits of the people involved in its production and distribution, has never taken off as a term in popular internet searches. The term has remained niche. A peak can be observed in 2004 in concomitance with the launch of Fairtrade Cotton certification by Fairtrade Foundation. However, since then, the term has been continuously decreasing in online popularity until the present.
- "Eco fashion" has had its peak in 2008 when the discussion around sustainability in the fashion industry was going mainstream. A clear sign that major fashion brands started taking risks in their supply-chain seriously were the releases of corporate responsibility reports.
- Other terms, such as "conscious" or "responsible" fashion, have only emerged after 2007. These terms have the objective of giving a more comprehensive definition including both environmental and social issues. They remain however very niche.
All of these terms show decreasing search intensities since about 2009. It remains to be investigated what the exact reason behind the decrease is. It can be said though with high probability that the economic recession of Western markets is the likely root cause of this phenomenon.
In line with the relative popularity of "organic fashion", "organic cotton" is still today the most searched for term related to clothing fibres. This is not surprising as all major fashion retailers have made a point of buying regularly organic cotton and indicate clearly on tags and label if a garment is made of, or includes, organic cotton.
Textiles | On 27th Jul 2016
Powerloom weavers affiliated to the Southern Gujarat Chamber of...
Apparel/Garments | On 27th Jul 2016
Online retailer Amazon said it has planned to open a seventh 855,000...
Textiles | On 27th Jul 2016
Developer of silk based fibres Kraig Biocraft Laboratories has...
Anshul Sood
'Indian footwear market is nascent and largely a trend follower'
Giovanni Pizzamiglio, Paolo Crespi & Riccardo Robustelli
Epson, For.Tex & F.lli Robustelli
'The percentage share of printing in the global textile market is pretty...
Binoy Ravjani
Hero's Fashion
'One of the recent trends in hand block printing is the indigo process,...
Kai Poehler
Voith Paper GmbH & Co. KG
The glass mat industry is growing by five to eight per cent annually. Kai...
Kevin Nelson
Kevin Nelson, Chief Scientific Officer, TissueGen discusses the growing...
Mark Paterson
Technical Absorbents Ltd
Mark Paterson, R&D manager of Technical Absorbents Ltd talks about Super...
Mike Hoffman
Gildan Activewear SRL
Gildan Activewear, a manufacturer and marketer of branded clothing and...
Bani Batra's couture wedding collection is inspired by traditional Indian...
Silvia Venturini Fendi
Fendi s.r.l
"Yes, my confidence and positive attitude are my strengths and should be...
Textiles | On 26th Jul 2016


text:
Join FREE | Login
+ Celebrations
+ How-To
+ Deals
Herb-Crusted Pork Tenderloin
Easy Garlic Pork Roast
Italian Pork Tenderloin with Roasted Sweet Potatoes
Savory Grilled Pork Tenderloins with Herbed Vegetables
Roasted Herb Pork Tenderloins
Pork Tenderloin with Caramelized Onions
The mouth-watering aroma will give you a preview of the fabulous flavor.
PREPARED GARLIC Ready-to-use garlic is a timesaver for recipes calling for minced or cushed fresh garlic. It is available in small jars in the produce sections of most supermarkets. One teaspoon usually equals 2 to 3 garlic cloves.
© 2016 ®/TM General Mills All Rights Reserved


text:
Kids & Womens Sale
Showing 1 - 24 of 33 Results
- 1
- 2
Reg. $130.00
The K2 Kinetic 78 women's inline skate is the introductory skate in K2's line up making it great for beginner or first time skaters. The comfort of K2's original Softboot technology offers a warm hug for hours of skating enjoyment. An antimicrobial foo... Read More
{boxId:"compare1c9b90ddf3275aff82b78ba9cc", id:"410431P"}
Reg. $160.00
Check out the K2 Kinetic 80 women's inline skates from K2! You'll find some of K2's best tech on this wallet friendly skate including K2's softboot, stability plus cuff, and quick speedlace closure system. The softboot is going to offer a great fit whi... Read More
{boxId:"compare70d20bd7a6011e45ce5ccf47b1", id:"410445P"}
Reg. $89.99
Literally the best bang for your buck, the 5th Element Lynx LX Inline Skates are a slick looking, stylish and well constructed skate when you're looking to go out and have fun while perfecting your skills. It has a subtle yet cool style and the comfor... Read More
{boxId:"comparea159c7a6f2d90fdb716ae047a8", id:"307792P"}
Reg. $139.99
Inline skating is supposed to be fun, and when getting your child his first skate you want the best. The best is what you get when you get him the Rollerblade Spitfire XT inline skates. The Spitfire XT is lightweight and will expand up to four sizes so... Read More
{boxId:"compare06c3a122ddd15e7da5de663126", id:"411583P"}
Reg. $130.00
With the K2 Raider Pro Inline Skates, your child with have the convenience and comfort of a K2 Softboot along with the ease of lacing with Speed Lacing. If your child loves skating, these are a great option. Built with a Speed Lacing System, your child... Read More
{boxId:"compareeb2d17c311619ded5934dd38bf", id:"370957P"}
Reg. $169.99
If you love skating and can't wait to hit the trails on those beautiful summer weekends then you'll love these Rollerblade Zetrablade Inline Skates. Featuring 80mm Rollerblade Wheels, you'll find that you have greater traction, better shock absorption ... Read More
{boxId:"compare04a09d8ad1c9b1f6f579a90790", id:"371629P"}
Reg. $69.99
The 5th Element B2-100 Inline Skates are the perfect pair of skates for your young guy. He will love these inline skates that are sure to keep his feet comfortable as he continues to pick up the skills to become an awesome skater. There is a buckle, ... Read More
{boxId:"compare759c6fed4c7bdaa8994388dacc", id:"307797P"}
Reg. $220.00
The K2 Velocity Sport inline skates offer great performance and comfort for those looking for a fitness skate to take their skating to the next level. Great for taking on some light training or for skating up to the local ice cream shop, the Velocity S... Read More
{boxId:"compare9e488c8bdb37d36481d0691498", id:"441841P"}
Reg. $129.99
Get increased bang for your buck, the 5th Element Stella Inline Skates are a slick looking, stylish and well-constructed skate when you're looking to go out and have fun while perfecting your skills. It has a subtle yet cool style and the comforts to m... Read More
{boxId:"compare9b7dd335e9d23d08a61be4e62f", id:"424866P"}
Reg. $165.00
When your child wears these K2 Sk8 Hero X Pro Inline Skates they'll have the features and performance to allow them to skate like the true hero they want to be.The Speed Lacing System makes entry and adjustments on these skates super quick and easy. A ... Read More
{boxId:"comparedb062354d18855af1f1e6e53f1", id:"370972P"}
Reg. $139.99
The Bladerunner Dynamo Kids Adjustable Inline Skates are a must have for the beginning player. These skates have ideal features and benefits that are all rolled into on to make this a must have skate. The Dynamo is adjustable by up to four sizes so t... Read More
{boxId:"compare3d07db8a76aef4ad4cb76f928d", id:"257373P"}
Reg. $109.99
When you watch your child roll down the driveway for the first time on his new pair of Bladerunner Phoenix Inline Skates, you'll be happy to know that these comfortable pair of skates will help them improve their skating skills and will last them quite... Read More
{boxId:"comparee5ac36ac38be01b18a059c538b", id:"411528P"}
Reg. $129.99
If you're new to inline skating or it's been a while since you've put on a pair of skates, the Bladerunner Pro 80 Inline Skates are a good beginner/entry level skate. A first skate needs to have several features that you need to really enjoy inline ska... Read More
{boxId:"compare35155bb3df3abc7f019682dac9", id:"411522P"}
Reg. $129.99
Get increased bang for your buck, the 5th Element Stella Plus Inline Skates are a slick looking, stylish and well-constructed skate when you are looking to go out and have fun while perfecting your skills. It has a subtle yet cool style and the comfort... Read More
{boxId:"comparea1ab898adf1ec07d16cf80d5de", id:"424871P"}
Reg. $100.00
The K2 Raider Kids Inline Skates are great for the new young rider who you want to excel at the sport of skating and plan for them to skate for years to come. These adjustable skates move up five sizes so that as your child's foot grow, you can increas... Read More
{boxId:"comparecded0867ac66970ca1e87b97c9", id:"370951P"}
Reg. $126.00
Designed to get people started in inline skating and then on to the next level comes the Roces Flos skates. This skate is made with glass fiber reinforced HQ polypropylene that makes this a lightweight and comfortable skate. An orthopedical footbed w... Read More
{boxId:"comparefd7163d804ed977bd85fba1997", id:"345835P"}
Reg. $139.99
The Bladerunner Performa ABT inline skates are a great quality skate with loads of features geared towards the beginner to intermediate skater. The Performa ABT has a stylish look and is fast and comfortable. Bladerunner products are built with everyth... Read More
{boxId:"compare6c1f3efdfc16450c474398d6d1", id:"257367P"}
Reg. $75.00
Beautifully crafted, the Fleurie Pant from Craghoppers is one of a kind. Designed with the traveler in mind, these pants are light weight and feature tons of pockets to hold on to your essentials; the zippered security pocket is perfect for ID's, cash ... Read More
{boxId:"compareb863b25d3309e186d2d9e0a627", id:"422996P"}
Reg. $215.00
K2's Athena Womens Inline Skates, featuring the Technology of Comfort, come equipped with the revolutionary Softboot. This patented technology provides skaters with the precision and accuracy of a hardshell boot in a new, comfortable and lighter weight... Read More
{boxId:"compared4eeeff5ebb957107ab09e5845", id:"330165P"}
Reg. $79.00
The Patagonia Ahnya Pullover for women is a fan favorite this year. This cozy Organic cotton, polyester and spandex knit fleece hoody is super soft on your skin and has a brushed interior for added warmth. The 3-button Henley-style closure and scallope... Read More
{boxId:"compare9f8202463854dd8aa4a05833dd", id:"417955P"}
Reg. $99.00
Your favorite hoodie just got better with the Patagonia Up Here Midweight Full-Zip. The knit fleece fabric is made from an Organic cotton/polyester blend which provides a cozy interior and lasting comfort. The face fabric is 100% Organic cotton and it'... Read More
{boxId:"comparedf82ab3f232283432c2b3c9e22", id:"417972P"}
Reg. $118.00
Designed for skaters who are just starting out and that are looking for comfort comes the Roces Tattoo skates. This skate is made with glass fiber reinforced HQ polypropylene making it lightweight and comfortable. The Roces anatomical footbed will add ... Read More
{boxId:"comparebea0b1541d5357c1c8bccd4d17", id:"420054P"}
Reg. $99.95
The Resin Bonded Sherpa full zip up hoodie is a favorite sweater in the Roxy Snow collection. The tribal style and colors are this years popular fashion. The Resin Bonded Sherpa is lined and very soft and comfy from the inside out. Equipped with Hand ... Read More
{boxId:"comparebc3d86e7fa7f1e1a6fd84eb413", id:"408465P"}
Reg. $75.00
The Wear It Everywhere Hoodie from Columbia is a perfect addition to your spring and summer wardrobe. 3/4 length sleeves and a drawcord adjustable hem give this hoodie a unique look that works for any occasion and the modest v-neck cut also adds to the... Read More
{boxId:"compare76bec7eb73fe59958d7bd738cb", id:"416693P"}


text: Home Gallery Video Victoria's Secret Giselle at Night Victoria's Secret: Giselle at Night Victoria's Secret taps Pearl Harbor director Michael Bay and Brazilian supermodel Giselle to ask, "What is sexy?" Published on Oct 02, 2002 Editor's Pick Victoria's Secret taps Pearl Harbor director Michael Bay and Brazilian supermodel Giselle to ask, "What is sexy?" Rate this Ad You must be registered to rate the ad. Please Login or Register Now About CreditsDateOct 02, 2002Agency:In-houseArt Director:Tom RamseyCreative Director:Ed RazekEditor:Peter KaskoDirector:Michael BayMusic Company:Bang Music + Sound DesignProduction Company:Institute for the Development of Enhanced Perceptual AwarnessEditorial Company:Moondog EditorialClient:Victoria's Secret Latest Creativity News on Ad Age Smuggler, Bullitt and Robber's Dog All Sign New Directors Agency Boss José Mollá on Saying No to Clients and Cannes: Ad Age Small Agency Conference John Cena's Pecs Do All the Talking in Hefty's New Ad Advertisement Ad Age Creativity $142.5B 2015 U.S. ad spending for 200 LNA Learn more Related work Victoria's Secret: Super Bowl XLIX Commericial In-house Victoria's Secret: Super Bowl '08 In-house Victoria's Secret: Pink Panty Party Crispin Porter + Bogusky Want to see your work in our gallery? Submit now


text:
|Publication number
|Publication type
|Application number
|Publication date
|Oct 19, 2010
|Filing date
|Sep 14, 2005
|Priority date
|Sep 14, 2005
|Fee status
|Also published as
|Publication number
|Jonathan Appavoo, Andrew Arnott Baumann, Dilma Menezes da Silva, Orran Yaakov Krieger, Robert William Wisniewski
|Original Assignee
|International Business Machines Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (2), Non-Patent Citations (12), Referenced by (34), Classifications (6), Legal Events (4)
|External Links: USPTO, USPTO Assignment, Espacenet
This invention relates to the field of computer operating systems and particularly to software updates to such operating systems that are loaded and implemented without having to reboot the operating system.
An operating system is a computer program that is the first piece of software that a computer executes when a computing device is turned on. Operating systems are no longer limited to mainframe and desktop computers: mobile telephones and various other portable devices now use operating systems to enable and manage multiple different functionalities of their host device, so the term computer system is not limited to a traditional mainframe/desktop device. In certain networked arrangements, one operating system may manage and be accessed by multiple user stations simultaneously, which is considered within the definition of a single computer system. The operating system loads itself into memory and begins managing the resources available on the computer. It then provides those resources to other applications that the user wants to execute. Typical services that an operating system provides include a task scheduler, a memory manager, a disk manager, a network manager, other I/O services manager, and a security manager. These services are exemplary only. The core operating system functions, the management of the computer system, lie in what is termed the kernel of the operating system in a traditional computer architecture. In a micro-kernel architecture, core operating system functionality can lie on system servers, outside the kernel. The kernel is often considered as how the operating system is displayed to the user of a device, but in fact the kernel lies below the display manager (though is often tightly tied to it).
At the simplest level, an operating system manages the hardware and software resources of the device or system (e.g., processor, memory, disk space, etc.), and it provides a stable, consistent way for applications to deal with the hardware without having to know all the hardware details. The first task, managing the hardware and software resources, is very important, as various programs and input methods compete for the attention of the central processing unit (CPU) and demand memory, storage and input/output (I/O) bandwidth for their own purposes. In this capacity, the operating system ensures that each application gets the necessary resources and ensures proper interfacing between applications, as well as husbanding the limited capacity of the system for maximum usage by the various users and applications. The second task, providing a consistent application interface, is especially important if there is to be more than one of a particular type of computer using the operating system (e.g., a single operating system for computer systems made by different manufacturers), or if the computer system hardware is changed or updated. A consistent application program interface (API) allows developers of application software to write code on one computer system and have a high level of confidence that it will run on another computer system using the same operating system, even if the amount of memory, the quantity of storage, or even the computing architecture is different on the two computer systems.
As computing infrastructure becomes more widespread, updates to various software programs have become more common. These are generically termed patches, and there have been an increasing number of patches for functionality, performance, and especially security reasons. To take effect, these patches traditionally require either restarting system services, or often rebooting the operating system, resulting in downtime. Sometimes this downtime can be scheduled, if for example the patch adds a feature, improves performance, etc. In other situations such as applying a security patch, delaying the update is not desirable. Users and system administrators are forced to trade off the increased vulnerability of a security flaw against the cost of unplanned downtime. Dynamic update is used to avoid such downtime, and involves on-the-fly application of software updates to a running system without loss of service.
In addition to the above-mentioned impact on availability, dynamically updatable operating systems have other benefits. Such operating systems provide a good prototyping environment. They allow, for example, a new page replacement, file system, or network policy to be tested without rebooting. Further, in more mature computer systems such as mainframes, some user constraints prevent the operating system from ever being shutdown. In such an environment, users can only get new functionality into the operating system by performing a dynamic update.
An operating system is a unique environment with special constraints as compared to an application, and additional challenges must be solved to provide dynamic update functionality. An important piece of prior art is described in U.S. Patent Application Publication No. 2005/0071811 A1 to Appavoo et al. (hereinafter, the Appavoo publication). The Appavoo publication discloses how to swap an individual object instance and discusses other prior art references detailed below. The Appavoo publication is hereby incorporated by reference, and it is noted that each inventor of the Appavoo publication is an inventor of this application.
One reference detailed in the Appavoo publication is entitled: "Dynamic C++ Classes: A Lightweight Mechanism to Update Code in a Running Program," by Gisli Hjalmtysson and Robert Gray (Annual USENIX Technical Conference, June 1998, pps 65-76, USENIX Association). The Hjalmtysson and Gray reference describes a mechanism for updating C++ objects in a running program, but, in the disclosed system, client objects need to be able to recover from broken bindings due to an object swap and retry the operation, so the mechanism is not transparent to client objects. Moreover, the Hjalmtysson and Gray approach does not detect quiescent state, and old objects continue to service prior calls while the new object begins to service new calls.
Another reference detailed in the Appavoo publication is entitled: "Optimistic Incremental Specialization: Streamlining a Commercial Operating System," by Calton Pu, Tito Autrey, Andrew Black, Charles Consel, Crispin Cowan, Jon Inouye, Lakshmi Kethana, Jonathan Walpole and Ke Zhang (ACM Symposium on Operating System Principles, Copper Mountain Resort, Colo., Dec. 3-6, 1995, Operating Systems Review, vol 29, no 5). This reference describe a replugging mechanism for incremental and optimistic specialization, but the reference assumes there can be at most one thread executing in a swappable module at a time. In later work, that constraint is relaxed but does not scale.
As mentioned, the Appavoo publication and the works discussed therein describe how to hot-swap an individual object. For a true dynamic upgrade, all objects of a given class need to be swapped.
Another reference, entitled "Mutatis Mutandis: Safe and Predictable Dynamic Software Updating" by G. Stoyle, M. Hicks, G. Bierman, P. Sewell and I. Neamtiu (POPL '05, Jan. 12-14, 2005, Long Beach, Calif.) describes a formal model for dynamic update in C-like languages using pre-computed safe update points present in the code.
Some commercial operating systems offer features similar to Sun® Microsystems' Solaris Live Upgrade, which allows changes to be made and tested without affecting the running system, but requires a reboot for changes to take effect. Other approaches are limited to perform an upgrade on a single threaded user-space applications cite.
What is needed is a dynamic upgrade approach that is scalable for both upgraded objects and new objects, for both single CPU computer systems and those with hypervisors and multiple instances of operating systems, that has the capability to track objects and to dynamically upgrade all objects of a particular type in a running operating system, without the need to shut down or reboot that operating system.
The present invention enables dynamic updates to operating system software, and as compared to the prior art of which the inventors are aware, provides much greater flexibility in that it is scalable to update the operating system kernel, update one or more objects, and/or add one or more objects to the operating system. It is particularly valuable for adding security patches, in that reboot is unnecessary for the patch to be implemented and accessible by the operating system, and any patch may be incorporated dynamically without interrupting access to the operating system as a whole.
In one embodiment, the present invention is a signal bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations to dynamically update an operating system. The operations include loading a new factory object that has at least one updated object instance within an object class. All object instances of the new factory object are within the same class. Then, an old factory object that has at least one old object instance within that same object class is located. The old factory object is identified by the new factory object. A dynamic update procedure is then executed, which includes (a) changing a factory reference pointer within the operating system from the old factory object to the new factory object, (b) hot swapping the old object instance for the updated object instance, and (c) removing the old factory object.
In another embodiment, the present invention is a method of dynamically updating an operating system that includes loading a new factory object having at least one new object instance and one updated object instance, determining that a version identifier of an old factory object meets what is termed a versioning evolution requirement (e.g., compatibility with the new factory object, detailed below), and setting a pointer that goes between a factory reference and an old factory object to go between the factory reference and the new factory object. For the case of the updated object instances, the method involves several steps: establishing a safe point (e.g., a quiescent state) for an old object instance that corresponds to the updated object instance; changing a factory reference pointer within the operating system from the old factory object to the new factory object; hot swapping the old object instances for the updated object instances; and deleting the old object instances. For the case of all new object instances, the method includes establishing a pointer from the new factory object to the new object and deleting the old factory object.
According to another embodiment, the present invention is a method of dynamically updating an operating system that includes loading a new class definition corresponding to an update implementation of at least one existing old class definition, determining that version of the updated class meets a versioning requirement, and setting data structures to indicate that new object instantiations of the old class are satisfied by the new class. Any object instances of the old class are then replaced by instances of the new class. A safe point is established for each old object instance that corresponds to an updated object instance, the old object instances are hot-swapped for the updated object instances, and the old object instances are deleted in order to perform the method.
These and other embodiments are detailed further below.
The present invention is more fully understood with reference to the following drawing figures.
The present invention is not limited to the following described embodiment. It provides a most common implementation, but one skilled in the art will see enhancements that are still keeping within the scope covered by the embodiment.
Dynamic update is a mechanism that allows software updates and patches to be applied to a running operating system without loss of service or downtime. Dynamic update on an operating system places unique demands on its implementation, as compared to dynamic update of applications. These demands stem from the event-driven nature of operating systems, from their restricted run-time execution environment, and from their role in simultaneously servicing multiple clients, whether those clients are different user stations or different applications (in a multi-tasking environment). Various embodiments of the present invention support updating both kernel code and data structures. Some terms are now defined in order to more particularly describe the invention and its operation.
Updatable unit: In order to update an operating system, it is necessary to identify an updatable unit. Depending on the class of update supported, and the implementation of the system, an updatable unit may consist of a code module, or of both computer code and encapsulated data. In both cases, the updatable unit must have a clearly defined interface to the operating system as a whole (e.g., to other portions of the operating system apart from the particular updatable unit being considered). Furthermore, external code should invoke the updatable unit in a well-defined manner, and should not arbitrarily access code or data of that unit.
While creating updatable units is straightforward with support from languages such as C++, it is still possible without such support. Primarily, providing updatable units means designing the operating system with good modularity, where the various updatable units obey module boundaries. The structure of the operating system dictates what is feasible. As detailed in the Appavoo publication, objects may share a back end such as an underlying data structure, but are carefully constructed to avoid sharing a front end through which they are invoked by other system resources.
Safe Point: Dynamic updates should not occur while any affected computer code or data is being accessed. That is, an updatable unit should not be updated while any part of that updatable unit is in use. To do otherwise would cause undefined behavior. It is therefore important to determine when an update may safely be applied, while minimizing any delay in applying that update. In general however, this is undecidable because the computer system generally does not know in advance whether an object is to remain quiescent or is soon to be invoked. Thus, operating system support is required to achieve and detect what is termed a safe point. Dynamic updates may involve requiring the operating system to be programmed with explicit update points or safe points, or by detecting when an updatable unit becomes idle or quiescent and blocking accesses to that updatable unit by other non-updating functions while that particular object is being updated. Each safe point applies to a specific updatable unit. When an updatable unit reaches a safe point, it is no longer being invoked by the computer system.
An operating system is fundamentally event-driven, responding to application requests and hardware events. This differs from most applications, which are structured as one or more threads of execution. As detailed below, this event-based model can be used to detect when an updatable unit of the system has reached a safe point. Additional techniques can be employed to handle blocking I/O events or long running daemon threads. A daemon thread works in the background to support the runtime environment (e.g., a clock handler thread, an idle thread, a garbage collector thread, a screen updater thread). Since the safe point is by definition that point when an updatable unit is no longer active, daemon threads as well as user-initiated threads that apply to a specific updatable unit must not cross a safe point for that updatable unit. Determining and establishing a quiescent state or safe point is detailed in the Appavoo publication further. Generally, an indirection virtual entity (termed a mediator in the Appavoo reference) is disposed in advance of the object in question. Current threads are allowed to continue accessing the object, newly invoked threads are blocked at the mediator, and when all current threads expire, the quiescent state is established.
State Tracking: For a dynamic update system to support changes to data structures, it must be able to locate and convert all such structures. This requires identifying and managing all instances of state maintained by an updatable unit (particularly those that include data structures, but preferably all updatable units) in a uniform fashion. This functionality is usually provided in software systems using what is termed a factory design pattern, or for brevity, factories. Note that two classes of updates, dynamic update to code and dynamic update to single-instance data, are still possible without state tracking. A state tracking mechanism enables dynamic updates that affect multiple-instance data, that data that is present in more than one updatable unit.
State Transfer: When an update is applied that affects data structures, or when an updated unit maintains its internal state without change (e.g., the updated unit and the original unit are substantively identical, perhaps changing only in version number), the state of that updated unit must be transferred so that it may be invoked transparently from the updatable unit it replaced without interruption or discontinuity. The state transfer mechanism performs this task, and is how changes to data structures can be supported.
Redirection of Invocations: After the update to an updatable unit occurs, all future requests affecting the old updatable unit should be satisfied by the replacement updated unit, including invocations of computer code in the updated unit itself (which may include portions of the original updatable unit that remain unchanged, but which need not always be copied in the update process as detailed below). Redirection of invocations is detailed further in the Appavoo publication under the headings "Transfer Phase" and "Completion Phase". Furthermore, in a system supporting multiple-instance data structures, creation of new data structures of the affected type should produce the updated data structure.
Version Management: In order to package and apply an update, and in order to debug and understand the running system, it is necessary to know what code is actually executing prior to the updates being applied. This is inherent in the concept of performing updates after reaching a safe point for a particular updatable unit. If a current update depends on another update having previously been applied, then some means is required to verify which previous updates have already been applied. Absent this, the current update may cause an error, such as replacing a segment of code that should have been modified by a previous update that, in fact, may have never been executed. Furthermore, if updates may come from multiple sources, the versioning may be non-linear, causing the interdependencies between updates to become complex and difficult to track.
The level of support required for version management is affected by the complexity of update interdependencies, but at a minimum, Version Management should track a version number for each update present in the system, and for these version numbers to be checked before a current update is applied. A version evolution requirement is merely satisfying the criterion for version management, and may include that the old version precedes in sequential number the updated version, or falls within a certain date of most recent revision, or other version checking mechanisms known in the art.
Having now described the context and terms, implementations of dynamic updating of operating systems according to the present invention are now detailed. According to certain embodiments, dynamic updating is scalable for open-source operating systems incorporating innovative mechanisms and policies, and for modern programming technologies. Preferably, these scalable dynamic update protocols run on 64-bit, cache-coherent PowerPC systems, and supports the Linux API and ABI. These use a modular object-oriented design to achieve multiprocessor scalability, enhance customizability, and enable rapid prototyping of experimental features (such as different implementations of dynamic update).
Object-oriented architecture is used throughout the design of the operating system to enable dynamic updating. Each resource of the computing system (for example, virtual memory region, network connection, open file, or process) is managed by a different set of object instances. Each object of an object instance encapsulates the meta-data necessary to manage the resource as well as the locks necessary to manipulate the meta-data. This architecture avoids global locks, data structures, and policies that are present in some operating systems that might otherwise prevent isolation of individual objects by safe points. The object-oriented nature enables adaptability, because different resources can be managed by different implementations. For example, each running process in the system may be represented by an in-kernel instance of the process object Process (analogous to the process control block structure present in other operating systems). Presently two implementations of the "process" interface exist: ProcessReplicated and ProcessShared. ProcessReplicated is the default and ProcessShared is optimized for the case where a process exists on only a single CPU. In these embodiments of the present invention, the kernel defaults to creating replicated processes, but allows for a combination of replicated and shared processes.
Dynamic updating according to some embodiments of the invention uses clustered objects, which is a mechanism that enables a given object to control its own distribution across processors. Clustered objects are detailed further in the Appavoo publication. The inventors successfully hot-swapped objects using the object translation table facility provided by clustered objects. Hot-swapping allows an object instance to be transparently switched from an older version to an updated version of the object while the overall computing system is running, and is an important aspect of the present dynamic update implementation. As the name implies, transparent switching is invisible to a user. While all users may be denied access to the particular object being updated once that object reaches a safe point and further access is blocked while it is being updated, the users retain access to all other unblocked objects and instances during that time.
Preferably, the dynamically updatable unit is the same as for hot-swapping, namely the object instance. The operating systems that use the present invention use a coding style that enforces encapsulation of data within objects. It is important to note that all data lies within an object, typically the back end that does not uniquely differentiate over other objects. Each object's interface may be declared in a virtual base class, allowing clients of an object to use any implementation, and for the implementation to be changed transparently by hot-swapping.
Respecting safe points, embodiments of the present invention can detect quiescent states using any of various mechanisms, such as a read copy update (RCU) found in the Linux operating system. Using the RCU as a safe point makes use of the fact that each system request is serviced by a new kernel thread, and that all kernel threads are short-lived and non-blocking. Each thread belongs to a certain epoch, or generation, which was the active generation when it was created. A count is maintained of the number of live threads in each generation, and by advancing the generation and waiting for the previous generations' counters to reach zero, it is possible to determine when all threads that existed on a processor at a specific instance in time have terminated.
While waiting for the currently running threads to a particular object to finish, new invocations of that object are blocked and the generation-count mechanism above is used to detect quiescence of that object. Once all those threads have terminated, a safe point is reached and the object instance may be swapped or otherwise updated, and afterwards made immediately available for access by other resources of the operating system without the necessity of a reboot.
State tracking is preferably provided by factory objects, which is detailed with particularity below for the case where multiple objects in a class are added or updated. State transfer, on the other hand, relates to changing an indicator for a specific object to indicate that it has indeed been updated with the current patch. Factory objects use state transfer also but on a repetitive basis for each of the objects that are updated by that particular factory. Once the object being swapped is quiescent, the update framework invokes a state transfer mechanism which transfers state from the old object to the new object, using a transfer negotiation protocol to allow the negotiation of a common intermediate format that both objects support. There are several common intermediate formats that object developers currently use to implement patches. These common intermediate formats enable data to be converted from the old object to the new object, as the updated object may sometimes be in a different format that that of the old object. The Appavoo publication details the use of a mediator to record the most desirable format derived from two lists, obtained prior to a hot-swap, from the old and new object instance, and using a most significant bit taken by logically AND'ing bit vectors of the two different protocols resolves the most desirable format in the most significant bit. While the inventors prefer the mediator embodiment of the Appavoo publication, the specifics of the intermediate format are a design choice, and will not be explored further in this description.
The transfer negotiation protocol is a generalized technique that was developed to support hot-swaps between any arbitrary implementations of an object. In the case of dynamic update, the replacement object is typically only a slightly modified version of the original object, with similar state information, so the conversion functions perform either a direct copy, or a copy with slight modifications.
Invocations of the new or updated object instances use a per-address-space, or an object translation table. Each object has an entry in the table, and all object invocations are made through this reference. In the process of performing a dynamic update, the translation table entries for an object are updated to point to the new instance, which causes future calls from clients to transparently invoke the new code. The object translation table can be used to support clustered object multi-processor scalability (such as multiple user stations running a single instance of an operating system), and also for hot-swapping for one or more object instances in a single-processor environment. This is true whether the object instances are newly added by the current patch or updated versions of a pre-existing object instance. For multi-processor systems where multiple user stations run from a common operating system, there is a global translation table and at each user station a localized translation table. The easier implementation for those environments is seen to be at the local translation tables, since each different local translation table will have the same virtual address on each of the different processors but may be backed by different physical addresses.
When an object that has multiple instances is updated, creations of that type of object are also redirected. This redirection is provided by the factory mechanism, described in detail below. When only one instance of an object is present, the factory mechanism may be used (where the factory has only one object) but can be avoided by replacing the object singularly as a module.
Preferably, the present invention uses a versioning scheme for dynamic updates. In a simple implementation, each factory object carries a version number, and before an update proceeds these version numbers are checked. Where mandatory prior versions are not present, at least those objects not bearing all of the mandatory prior versions are not updated. Preferably when at least one object of a factory does not reflect all mandatory prior versions, no objects of that factory are updated. The latter preference is to avoid having multiple but incomplete patches input to an operating system, which over time would be difficult to resolve given that installing the later patches to version-acceptable objects may act to prevent installing the missing patches to the version-not acceptable objects at a later time, rendering increasing numbers of object instances unusable and un-patchable through normal means.
Because hot-swapping forms an important subsection of dynamic updating according to the present invention, various implementations are outlined immediately below.
As noted above, the inventors characterize the object translation table as adding an extra level of indirection on all object invocations. This indirection enables a mechanism to be imposed above the object itself, whereby an object's entry in the object translation table (the pointer to the object) is modified. Because all accesses of an object are through the object translation table, this mechanism causes all accesses of that object to transparently invoke a different interposer object. The interposer can then choose to pass the call along to the original object. This "interposer" mechanism may be used by the hot swapping and dynamic update implementations, and is detailed as a mediator in the Appavoo publication.
Hot-swapping operates by interposing a mediator object in front of the object to be hot-swapped. The mediator passes through several phases, first tracking incoming calls until it knows (such as through the generation-count mechanism described above) that all calls are being tracked, and then suspending further calls until the existing tracked calls are complete. At this point the object is quiescent. This idle state is assured for the duration of the hot-swapping by blocking further invocations to the object instance, and blocking may be done as active threads are running and their completion is awaited, or after all active threads are completed. The former is preferable, as the mediator may enable re-access of a particular object by an existing thread while still blocking other new threads. This avoids the error of blocking all threads to the object while an existing thread requires re-access of the object to close. The mediator then performs state transfer format negotiation as above, followed by the state transfer between the old and the new object instances. Finally, it updates the object translation table reference to the new object, and forwards the blocked calls to the new object instance according to the updated object translation table.
The present invention uses in certain embodiments a module loader to avoid the need for rebooting. The module loader described above has some similarities to that used in Linux, but is seen as a simpler implementation. Specifically, it is believed that Linux must maintain a dynamic symbol table and support interdependencies between modules. The module loader implemented for this invention avoids this because all objects are invoked indirectly through the object translation tables. A module can (and to be useful should) contain code that is called by the existing kernel without requiring its symbols to be visible. Its initialization code simply instantiates replacement objects and performs hot-swap operations to invoke the code in those object instances. The present module loader performs the relocations and symbol table management preferably at the user-level (e.g., at the local translation table for a multi-CPU environment).
The factory mechanism touched on above is now described. Hot-swapping allows updating of the code and data of a single specific object instance. However, the above description is predicated on the concept that each instance of a resource is managed by a different instance of an object. To dynamically update an operating system object, the infrastructure must be able to both locate and hot-swap all instances of that object, and cause any new instantiations to use the updated object code. As noted above, this is a recognized problem; to support dynamic updates affecting data structures requires a mechanism to track all instances of those data structures and update them.
The above embodiments of the invention track object instances in a class-specific manner, and objects are typically created through calls to statically-bound methods. For example, to create an instance of the ProcessReplicated object (the implementation used by default for Process objects), the call used might be:
This leads to problems for dynamic update, because the Create call is bound at compile-time, and so cannot easily be redirected to an updated implementation of the ProcessReplicated object. Relying on the caller to track a newly created object instance will be ineffective unless the Create call can be redirected, and one of the inventors' goals is to enable the installation of new objects (as well as updating old objects) without rebooting the system.
To track object instances and to control object instantiations, the inventors have found that using the factory design pattern is particularly advantageous. As characterized in the prior art, the factory method is an abstraction for creating object instances. In the present invention, factories also track instances that they have created, and are themselves objects. Each factory object provides an interface for creating and updating/destroying objects of one particular class, and maintains the set of objects that it has created. A factory may be considered as a frame within which one or more objects of a single class lie. In that respect, a factory may be considered as the entries in an object translation table that point to a particular class of object instances. Preferably, all objects within a single class lie in one factory, and that factory includes no other objects from other classes. All invocations of the object go through the factory, but the objects themselves exist independently of the factory in which they lie. Deleting the factory does not necessarily mean deleting the objects within it, though pointers that previously went through the deleted factory may have to be reset to a new factory in order to invoke those objects directly.
The majority of the factory implementation is factored out using inheritance and preprocessor macros, so that adding factory support to a class is relatively simple. Using the above example to create an instance of the ProcessReplicated object, after adding the factory, the creation call may be changed to:
The macro above hides some implementation details, whereby the default factory for a class is referenced using a static member. It expands to the following:
To provide basic support for configuration management, factories carry a version number identifying the specific implementation of the factory and its type. Typically, the factories in the base or original operating system all carry version zero, and updated factories have unique non-zero version numbers. Assuming a strictly linear model of update is employed, when an update occurs the current version number of the factory is compared to the version number of the update, and if the update is not the immediately succeeding version number, the update is aborted. To support reverting updates in this scheme, the previous factory version with an increased version number are preferably applied.
The inventors' implementation of the factory patterns enables increased performance and adds a high dimension of scalability. For example, in a multi-CPU environment where either processing is shared among multiple CPUs or multiple clients access a central unit where the operating system resides, object instances are tracked for dynamic update in a distributed fashion using per-CPU instance lists. Moreover, adding factories offers other advantages apart from dynamic update. For example, in order to choose between ProcessReplicated and ProcessShared, the present invention may use a configuration flag that is consulted by the code that creates process objects to determine which implementation to use. Using the factory model, this flag is removed so that the scheme supports an arbitrary number of implementations, by changing the default process factory reference to the appropriate factory object.
To perform a dynamic update of a class of object instances, the software code for the update is compiled along with some initialization code into a loadable module. When the module is loaded, its initialization code is executed. The steps that this initialization code executes to dynamically update an operating system are shown graphically at
As shown in
Once the factory hot-swap of
To update the old instances, the new factory object 16 traverses the set of old object instances a and b that it received from the old factory object 14. For each old object instance a and b, the dynamic update code creates an updated object instance a′ and b′, and then initiates a hot-swap between the old object instance a and b and the updated object instances a 'and b', as shown in
Implementation of dynamic updating is simpler in certain cases, for example when an update adds new objects to the system that do not replace any existing objects, or when an update affects an object with only a single instance.
Following are some examples of dynamic updating that the inventors have implemented on an experimental scale. A first example is adding a new kernel interface for a partitioned memory region. Benchmarking of a memory-intensive parallel application showed poor scalability during the initialization phase of the above factory object approach. The inventors then determined that a bottleneck occurred during an object instance update that resized a shared hash table structure. A new partitioned memory management object was developed that did not suffer from the problem, and was added in a dynamic update as a new object instance. This new object added a new interface to the kernel, allowing user programs to create a partitioned memory region if they specified extra parameters, resolving the bottleneck.
Adding a new piece of code to the kernel and making it available through a new interface is the simplest case of dynamic update, because it avoids replacing old code or transferring state information. This update was implemented as a simple loadable module, consisting of the code for the new region object and some initialization code to load it and make it available to user programs. This module could be shipped with programs requiring it, or could be loaded into the kernel on demand when a program requires the new interface, either way avoiding a reboot.
This first example demonstrates the use of the module loader combined with an extensible kernel interface to add new functionality to a running kernel. The loader module is detailed above to effect dynamic updates without requiring a reboot. Prior art update systems also allow modules to be loaded, for example to provide new file systems or device drivers. However, the modularity of the present invention makes it possible to replace a portion of the page-fault path for a critical application with a new set of requirements, which could not be done on an existing system such as Linux.
A second example is a patch for a memory allocator race condition. This scenario involves a bug fix to a kernel service, one of the key motivations for dynamic update. In the course of development, the inventors discovered a race condition in the core kernel memory allocator that could result in a system crash when kernel memory was allocated concurrently on multiple CPUs.
Fixing this bug required adding a lock to guard the allocation of memory descriptors, a relatively simple code change. In fact, only two lines of code were added, one to declare the lock data structure, and another to acquire (and automatically release on function return) the lock. A recompile and reboot would have brought the fix into use. However, even with continual memory allocation and deallocation occurring, the update was applied dynamically using the added object technique above, without having to reboot.
The replacement code was developed as a new class inheriting almost all of its implementation from the old "buggy" object, except for the declaration of the lock and a change to the function that acquired and released it. This caused the C++ compiler to include references to all the unchanged parts of the old class in the replacement object code, significantly avoiding programmer errors. Simple copying implementations of the state transfer functions were also provided to allow the object to be hot-swapped. The key parts of the new class implementation are shown in
The new class was compiled into a loadable module, and combined with initialization code that instantiated the new object and initiated a bot-swap operation to replace the old "buggy" object instance. Because this object was a special case object with only a single instance, it was not necessary to use the factory mechanism, though of course the factory mechanism could be used with only one new object to add and none to update. This second example demonstrates the use of hot-swapping as part of the present dynamic update mechanism, combined with a kernel module loader, to dynamically update live code in the system.
A third example is optimization of a file cache manager and its implementation of file cache manager objects. The inventors instantiated a file cache manager in the kernel for each open file or memory object in the system. They discovered that the unmapPage method did not check if the page in question was already unmapped before performing expensive synchronization and IPC operations. These were unnecessary in some cases.
In this third example, the inventors developed a new version of the file cache manager object that performed the check before unmapping, and prepared it as a loadable module. Applying this update dynamically required the factory mechanism, because the running system had file cache manager instances present that needed to be updated, and because new instantiations of the file cache manager needed to use the code in the updated module.
This scenario demonstrates all major components of the present dynamic update implementation, using a module loader to load the code into the system, a factory to track all instances of state information that are affected by an update, and hot-swapping to update each instance.
Next, a safe point is sought and established 316 for each of the old objects, such as by blocking access to each, and determining when all threads accessing each of the old objects are terminated. Once quiescence is established for all of the affected old object instances (e.g., all those with a companion updated object instance in the new factory), the pointer between the factory reference and the old factory object is changed to go between the factory reference and the new factory object, hot-swapping those factory objects 318. Each old object instance of the old factory is then hot-swapped with its corresponding updated object instance 320 in the new factory. As each completes, the old object instance is deleted 322, with the proviso that where format of underlying data structures is not changed, the underlying data structures may be retained without copying and merely pointers to that structure are reset to run from the updated object instance rather than from the old object instance. Once all old object instances are deleted, the blocking can be released 324 and the old factory object may be deleted 326.
Any new object instances are merely added by establishing 328 a pointer from the new factory object to the new object instance; no blocking, safe point, or swapping need be done on these because there are no existing invocations of the new object instance that may precede its being made available through the new factory object, and no corresponding old objects with which to swap.
An exemplary embodiment in accordance with this invention is a method of dynamically updating an operating system. The method comprises: loading a new factory object having at least one of a new object instance and an updated object instance; determining that a version identifier of a corresponding old factory object is compatible with the new factory object; setting a pointer that goes between a factory reference and the old factory object to go between the factory reference and the new factory object. The method includes, for the case of each updated object instance, establishing a safe point for the old object instance that corresponds to the updated object instance: changing a factory reference pointer within the operating system from the old factory object to the new factory object; hot swapping the updated object instance for the old object instance; and deleting the old object instance. The method also includes, for the case of each new object instance, establishing a pointer from the new factory object to the new object instance; and deleting the old factory object. The method may also include updating a kernel of the operating system by relating indeterminate references to either or both of kernel symbols or library routines, the indeterminate references present in a kernel update module, to at least one object translation table without rebooting the operating system.
The above description is not seen to be exhaustive of all embodiments or variations of the present invention, many of which will be obvious to those skilled in the art and within the ensuing claims.
|Cited Patent
|Filing date
|Publication date
|Sep 29, 2003
|May 12, 2009
|International Business Machines Corporation
|Achieving autonomic behavior in an operating system via a hot-swapping mechanism
|Sep 29, 2003
|Mar 31, 2005
|International Business Machines Corporation
|Achieving autonomic behavior in an operating system via a hot-swapping mechanism
|Andrew Baumann , Gernot Heiser , Jonathan Appavoo , Dilma Da Silva , Orran Krieger , Robert W. Wisniewski , Jeremy Kerr, Providing dynamic update in an operating system, Proceedings of the annual conference on USINEX Annual Technical Conference, p. 32-32, Apr. 10-15, 2005, Anaheim, CA.
|Appavoo, J. et al., "Enabling autonomic behavior in systems software with hot swapping", IBM Systems Journal, vol. 42, No. 1, 2003, pp. 60-76.
|Baumann, Kerr, Appavoo, Da Silva, Krieger, Wisniewski, "Module Hot-Swapping for Dynamic Update and Reconfiguration in K42" Apr. 2005, Proceedings of Linux.conf.au, Canberra Australia.
|Craig A. N. Soules, Jonathan Appavoo, Kevin Hui, Robert W. Wisniewski, Dilma Da Silva, Gregory R. Ganger, Orran Krieger, Michael Stumm, Marc Auslander, Michal Ostrowski, Bryan Rosenburg, Jimi Xenidis, "System Support for Online Reconfiguration", Proceedings of Usenix 2003, pp. 141-154.
|Da Silva, D. M. et al., "KFS: Exploring Flexibility In File System Design", IBM TJ Watson Research Center, Aug. 2004, 9 pgs.
|Hjálmt˙sson, G. et al., "Dynamic C++ Classes A lightweight mechanism to update code in a running program", Jun. 1998, Proceedings of the USENIX Annual Technical Conference (NO98), New Orleans, Louisiana, 13 pgs.
|Malabarba et al., Runtime Supoprt for Type-Safe Dynamic Java Classes, Jan. 1, 2000, Springer Berlin / Heidelberg, Lecture Notes in Computer Science, vol. 1850/2000, ECOOP 2000-Object-Oriented Programming, pp. 337-361.
|Malabarba et al., Runtime Supoprt for Type-Safe Dynamic Java Classes, Jan. 1, 2000, Springer Berlin / Heidelberg, Lecture Notes in Computer Science, vol. 1850/2000, ECOOP 2000—Object-Oriented Programming, pp. 337-361.
|Pu, C. et al., "Optimistic Incremental Specialization: Streamlining a Commercial Operating System", 11 pgs.
|Shalloway and Trott, "Design Patterns Explained: A New Perspective on Object-Oriented Design, Second Edition" Oct. 12, 2004, Addison-Wesley Professional, Chapter 20.
|Solaris 9, Apr. 2004 Installation Guide, 4 pgs.
|Stoyle, G. et al., "Mutatis mutandis: Safe and Predictable Dynamic Software Updating", Jan. 12-14, 2005, POPL '05, Long Beach, California, 12 pgs.
|Citing Patent
|Filing date
|Publication date
|Jul 19, 2011
|Infineon Technologies Ag
|Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
|Aug 2, 2007
|Feb 21, 2012
|Accenture Global Services Limited
|Legacy application decommissioning framework
|Oct 9, 2008
|Aug 14, 2012
|Siemens Aktiengesellschaft
|Method for automatically modifying a program and automation system
|May 27, 2009
|Dec 18, 2012
|Microsoft Corporation
|Hierarchical view state storage
|Feb 18, 2008
|Sep 17, 2013
|International Business Machines Corporation
|System and methods for replacing software application classes using transparent object adapters
|Jan 25, 2013
|Sep 17, 2013
|Google Inc.
|Transactional environments for event and data binding handlers
|Apr 18, 2012
|Sep 24, 2013
|International Business Machines Corporation
|Method and system for checking the consistency of application JAR files
|Jul 12, 2010
|Mar 18, 2014
|International Business Machines Corporation
|Controlling kernel symbol visibility and accessibility across operating system linkage spaces
|Mar 5, 2009
|Apr 1, 2014
|International Business Machines Corporation
|Isolating operating system in-memory modules using error injection
|Feb 25, 2008
|Apr 29, 2014
|Sap Ag
|Virtual appliance update method
|Mar 22, 2013
|May 27, 2014
|Genetec Inc.
|Computer system using in-service software upgrade
|Dec 14, 2009
|Jun 17, 2014
|Microsoft Corporation
|Dynamic editors for functionally composed UI
|Jun 5, 2013
|Jun 17, 2014
|Splunk Inc.
|Map generator for representing interrelationships between app features forged by dynamic pointers
|Jun 29, 2011
|Aug 26, 2014
|Microsoft Corporation
|Virtual machine block substitution
|Jun 10, 2011
|Dec 16, 2014
|International Business Machines Corporation
|Method and system for checking the consistency of application jar files
|Aug 8, 2011
|Apr 7, 2015
|Ricoh Company, Ltd.
|Information processing apparatus and update process support system
|Apr 28, 2010
|Aug 18, 2015
|General Electric Company
|Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
|Dec 18, 2008
|Jan 5, 2016
|Sap Se
|Zero downtime mechanism for software upgrade of a distributed computer system
|May 1, 2014
|Jan 5, 2016
|Splunk Inc.
|Central registry for binding features using dynamic pointers
|May 30, 2006
|Dec 20, 2007
|Mattias Edlund
|Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
|Aug 2, 2007
|Feb 5, 2009
|Accenture Global Services Gmbh
|Legacy application decommissioning framework
|Oct 9, 2008
|Apr 16, 2009
|Siemens Aktiengesellschaft
|Method for automatically modifying a program and automation system
|Feb 18, 2008
|Aug 20, 2009
|International Business Machines Corporation
|System and methods for replacing software application classes using transparent object adapters
|Feb 25, 2008
|Aug 27, 2009
|Erol Bozak
|Virtual Appliance Update Method
|Nov 19, 2009
|One Microsoft Way
|Dynamic Declarative Application Description
|Dec 18, 2008
|Jun 24, 2010
|Lazar Borissov
|Zero downtime mechanism for software upgrade of a distributed computer system
|Sep 9, 2010
|International Business Machines Corporation
|Testing operating system isolation using error injection
|May 27, 2009
|Dec 2, 2010
|Microsoft Corporation
|Hierarchical view state storage
|May 19, 2011
|Microsoft Corporation
|Dynamic editors for functionally composed ui
|Nov 3, 2011
|General Electric Company
|Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
|Jan 3, 2013
|Microsoft Corporation
|Virtual machine block substitution
|Aug 8, 2011
|Jun 6, 2013
|Ricoh Company, Ltd.,
|Information processing apparatus and update process support system
|Jun 5, 2013
|Nov 28, 2013
|Splunk Inc.
|Map generator for representing interrelationships between app features forged by dynamic pointers
|Oct 11, 2012
|Apr 17, 2014
|Google Inc.
|Testing framework for applications
|U.S. Classification
|717/168, 719/332
|International Classification
|Cooperative Classification
|European Classification
|Oct 12, 2005
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:APPAVOO, JONATHAN;REEL/FRAME:016876/0635
Effective date: 20050912
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WISNIEWSKI, ROBERT WILLIAM;REEL/FRAME:016876/0749
Effective date: 20050901
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DA SILVA, DILMA MENEZES;REEL/FRAME:016876/0738
Effective date: 20050831
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BAUMANN, ANDREW ARNOTT;REEL/FRAME:016876/0647
Effective date: 20050901
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KRIEGER, ORRAN YAAKOV;REEL/FRAME:016876/0745
Effective date: 20050825
|May 30, 2014
|Maintenance fee reminder mailed
|Oct 19, 2014
|Lapse for failure to pay maintenance fees
|Dec 9, 2014
|Expired due to failure to pay maintenance fee
Effective date: 20141019


text:
24 Inch Outdoor Commercial Beverage Center with ADA Compliant Height, Adjustable Glass Shelves, Stainless Steel Construction, Door Lock, Automatic Defrost and Ground Fault Circuit Interrupter
Our Price
24 Inch Compact Beverage Center with Adjustable Glass Shelves, Door Lock, Digital Temperature Ideal For Red Wine/Ale and Commercially Approved: Stainless Cabinet with Pro Handle
24 Inch Undercounter Beverage Center with 2 Full-Extension Glass Shelves, Black Soft Coat Wire Wine Rack, Blue LED Showcase Lighting, Door Alert Features, Integrated IQ-Touch Temperature Controls and UV-Filtered Glass Door
After Savings
24 Inch Built-in Beverage Center with 2 Cantilevered Glass Shelves, Automatic Defrost, Dynamic Cooling Technology, Integrated Door Lock, Interior LED Lighting and ADA Compliant
5.2 cu. ft. Compact Refrigerator with 3 Removable Tempered Glass Shelves, 123 Bottle or 185 Can Capacity, Energy Star Qualified, Digital Touch Pad Control and Star K Certified: Stainless Steel
24 Inch Outdoor Beverage Center with 4 Adjustable Shelves, Heat-Resistant Glass Door, Door Lock, Interior Light, Dial Thermostat and Automatic Defrost
Undercounter Refrigerator with 5.3 cu. ft. Capacity, 4 Chrome Plated Wire Shelves, Convection Cooling System, Digital Touch Pad Control, Interior LED Lighting, Reversible Door Swing, Door Lock and ADA Compliant: Stainless Steel
24 Inch Triple Drawer Refrigerator with Fan Cooled Compressor, Adjustable Thermostat, All Stainless Steel Finish and Commercially Approved
3.6 cu. ft. Built-in Refrigerator with 4 Adjustable Glass Shelves, LED Lighting, Convection Cooling System, Clear Crisper Drawer and Star K Certified
24 Inch Built-in Beverage Center with 2 Cantilevered Glass Shelves, 1 MaxStore Crisper, Dual-Level White LED Lighting, Security Door Lock, Black Maple Shelf Fronts and ADA Compliant
24 Inch Built-in Refrigerator with 2 Cantilever Glass Shelves, 1 Clear Crisper Drawer, Door Storage, White LED Lighting and Automatic Defrost
5.2 cu. ft. Outdoor Refrigerator with 3 Removable Tempered Glass Shelves, Digital Touch Pad Control, Energy Star Qualified and Star K Certified
24 Inch Built-in Beverage Center with 5.4 cu. ft. Capacity, 85 12-oz. Bottle Capacity, 105 12-oz. Can Capacity, 16 Wine Bottle Capacity, LED Lighting and Star K Certified: Stainless Steel with Lock
24 Inch Outdoor Refrigerator Drawers with 3.4 cu. ft. Capacity, Automatic Defrost, Wire Storage Basket, 2 Adjustable Dividers, Digital Thermostat and LED Lighting
24 Inch Undercounter All-Refrigerator with 4.6 cu. ft. Capacity, Spill-Proof Glass Shelves, Bottle Slots, Door/Temperature Alarms, Temperature Memory Function and Commercially Approved
24 Inch Outdoor Undercounter Refrigerator with 4.6 cu. ft. Capacity, 3 Adjustable Glass Shelves, Internal Fan, LED Lighting, Digital Thermostat, Door Lock, Commercially Approved and Energy Star Rated
3.6 cu. ft. Built-in Refrigerator with 4 Adjustable Glass Shelves, Glass Door, LED Lighting, Convection Cooling System, Clear Crisper Drawer and Star K Certified: Stainless Steel
24 Inch Compact Refrigerator with Adjustable Glass Shelves, Manual Defrost Freezer, Door Storage, Fruit/Vegetable Crisper, Interior Light, Door Lock and ADA Compliant: Stainless Cabinet with Pro Handle
24 Inch Built-in Compact Refrigerator/Freezer with 2 Half-Width Cantilever Glass Shelves, MaxStore Crisper, White LED Lighting and Close Door Assist Hinge System
24 Inch Triple Drawer Refrigerator with Spring Assisted Roller Drawers, Automatic Defrost, Adjustable Thermostat, ADA Compliant and Commercially Approved
$1,500 - $1,999
Stainless Steel
cooking appliances
cooking ranges,
microwave ovens,
wall ovens,
range hoods,
coffee systems,
compact kitchens,
cooking product accessories
wine coolers,
beverage centers,
beer coolers & kegerators,
ice makers,
refrigeration accessories
dishwashers & disposal
built in dishwashers,
portable dishwashers,
dishwasher accessories,
trash compactors,
food disposal accessories
vacuum cleaner accessories
washer dryer combos,
laundry centers,
laundry accessories
air conditioners & air quality
room air conditioners,
mini split air conditioners,
portable air conditioners,
air quality
outdoor refrigerators & beverage coolers,
outdoor bars,
patio heaters
sinks & faucets
sink & faucet combinations,
vanities & mirrors,
sink & faucet accessories
Please enter a valid email address
Deals & Promotions
Rebate Center
Write a Review
Product Reviews
RSS Feed
You did not enter any text.
© 2016, AJ Madison Inc. or its affiliates


text:
The CFPB's payday loan regulations may leave those in need of short-term loans with few options.
Knowing the CFPB's language is key to keeping your credit union poised for growth and stability.
Debt collection, mortgages and credit reporting continue to dominate consumer complaint topics.
PHH Mortgage's case against the CFPB merits a close eye from credit unions.
The bureau reports banks, credit unions penalize borrowers when a payday lender's attempt to collect payment fails.
H.R. 1486 would place the CFPB's budget under Congress' appropriations process.
A lawyer for the bureau faces off with PHH Corp., which called the CFPB's authority into question.
Planning for enhanced scrutiny is key to meeting the expectations of the CFPB.
Readers weigh in on topics ranging from cybersecurity to millennial engagement.
Senators question the CFPB director about accountability, enforcement actions and more at a committee hearing.


text:
The oldest place in town. Why ? It's not the food, or the decor. It's a legend . It's the friendly people who eat here. They have breakfast "click s " and lunch clicks and whatever clicks. It's the place in town to be seen. All the movers and shakers are here. I bet more business deals are made here than in lawyer offices. My first time there many years ago, three people tried to sell me a car. Sure I eat the tough BBQ, I love it. I love the greasy breakfasts too. All the employees here are like family. I know them all by name. They have all been here for over 10 years each. Strangers are welcome, even Yankee's, just don't forget to say Howdy. ChefLars.
Atlanta Barbecue
1. Fox Bros Bar-B-QMenu
Great barbecue -- ribs, pork, and lots of appetizer choices. Has a cult following in Atlanta. Don't let the out of the way location and rundown ap…
2. Chops Lobster BarMenu
Chips is certainly a treat! I'm a huge fan of the lobster platter. All of the sides are delicious although you have to order them a la carte. Servic…
3. Dba BbqMenu
Excellent neighborhood bbq place. Really good menu and reasonably priced. Also a terrific place to catch a game. Good place for whole family.
4. Roasters RotisserieMenu
There's nothing fancy or overdone about Roasters - just great food in a friendly, laid-back atmosphere. We stop by here a few times a month. Love th…
5. Heirloom MarketMenu
It's really hard to park here at lunch. And looks like a place you would always drive by. (do the math...people know this is great BBQ)
6. Pit Boss BBQMenu
The meat was so tender it was falling off the bone. I had the Royal Flush Baked Potatoe as well stuffed the rim with butter, cheese, sour cream and…
7. The Greater Good Barbecue
4441 Roswell Rd NEAtlanta, GA 30342
8. Smoke RingMenu
Smoke Ring is great for bottomless mimosas during brunch and they are only $15! I also recommend the salmon benedict.
9. Daddy D'zMenu
if you want to eat cheap, stick w/ the pulled pork, ribs are pricey but very good... you want to get the hot sauce, and then add some texas pete…
10. Memphis BBQMenu
Visited this New Years Day with my family. We were visiting from New Orleans and had a party of 11 at our table. Our waitress was Sasha, and she w…
11. Lovies BBQMenu
Best BBQ in town!!! The sides are amazing...especially the brussel sprouts and homemade potato chips. My husband and I have tried everything on th…
12. Twin Smokers BBQMenu
300 Marietta Street NWAtlanta, GA 30313
From Business: It all started with a love for tried-and-true barbecue and a passion for regionally inspired meats. That in turn kick-started something special at Legacy Restaurant…
13. This Is It! BBQ & SeafoodMenu
3523 Camp Creek PkwyAtlanta, GA 30344
14. Smokebelly BBQMenu
This is one of the best places to get BBQ around the Midtown/Buckhead areas. The portions are HUGE, the food is excellent, and there's a ton of vari…
15. Old Brick Pit BarbequeMenu
Good little barbecue place. Great Brunswick stew.
16. Tony Morrow's BBQ
slow service. good atmosphere. friendly staff. food was late but recieved a nice discount. bb wings, ribs n bq beef was really good!! we will go bac…
17. Slope's BBQ Of Sandy SpringsMenu
I am a big fan, I eat there every week with fellow staffers and we look forward to Slopes Thursdays. One of the best reasons to go to work. Food is …
18. Terra Terroir Kitchen and Bar
3974 N Peachtree Rd Ste CAtlanta, GA 30341
19. Pig-N-Chik BBQMenu
Great BBQ, from pulled pork to beef brisket and chicken, with great smoked flavor. Friendly staff and fast service. During holidays, they will smo…
20. BBQ Corner 2Menu
I found out about this place by accident and boy was I glad that I finally found THE place to have REAL Chinese food. I'd ordered Beef Chow Fein (s…
21. Annas BBQ
We love Anna's for a school night dinner or stopping by on the way to the park for a picnic meal. The food is quality for great price and never does…
22. Moe's Original Bar B QueMenu
The BBQ is great & the sides rock my world. Their banana pudding is delicious & idk who makes the cornbread but they need to never leave!
23. Bone Lick BBQMenu
Bone lick BBQ is one of the best BBQ I've ever had. Went here with my boss one day and she absolutely loved it... Great atmosphere and great food!
24. Wing FactoryMenu
Excellent customer service & food is very tasty & fresh.
25. Grand Champion BBQMenu
99 Krog Street NE, Krog Street MarketAtlanta, GA 30307
26. Shane's Rib ShackMenu
1221 Caroline St NEAtlanta, GA 30307
I love Shane's the customer service is excellent and the food is very delicious. I go at least once a week.
27. This Is IT BBQ & Seafood
6045 Old National HwyAtlanta, GA 30349
28. Pig-N-ChikMenu
Good selection of vegetables along with adequate barbecue. Have used them for large take out orders.
29. Wings Express
Me and my husband went in one night and we're greeted by the owner. Who came around the counter to shake our hand and introduce himself. The food wa…
30. Tilted Kilt
I rarely feel like a creepster, but looking around me...dang, am I part of this crowd? Seems like the hot girl theme attracted a bunch of older dude…
First time visiting this place with family. Have a pulled pork sandwich with a side of macaroni and cheese. Food was delicious and service was wonderful. Priscilla did a good job of servicing our party We were fighting over the corn muffins and they were absolutely the best I've had. Would get 5 Stars but I thought it was a little pricey. Need a kids menu because at $8 for a sandwich and side is high for our 18 month-year-old grand-baby.
There are really no words to explain my whole experience at this restuarant. The servers were good, but they could learn a little from the servers at Bone's. This was the best food that I've ever had. The lobster that I had at Bone's was unbelievably good, but the filet mignon and fried lobster tail that I had at Chops made me speechless! When I want to splurge, this is where I will be going. Make sure your wallet is up to par!


text:
Inside The Crazy World Of Rihanna's Instagram Commenters
Rihanna's Instagram has already made headlines for its scandalous photos, but have you taken a look at the people who comment on them? They're a group of shameless, Emoji-loving groupies trying to take celebrity fandom to a new level.
Perhaps no celebrity's Instagram feed highlights the special nature of the medium's commenters quite like Rihanna's.
Commenting on Instagram is different from commenting on Twitter or Facebook. First, it's more difficult to track a single user's comments on Instagram than other social networks since they're not all centrally located on a profile page. Thus trolls who constantly reply to or harass a celebrity on Instagram are harder to suss out, which probably makes everyone comment more openly.
While web browser interfaces exist for Instagram, users typically comment via cell phones, which can type all-important Emoji icons. This allows them to get expressive in so many unique ways. Here's a closer look at the Instagram commenting phenomenon as viewed through badgalriri's feed.
2. Some ask Rihanna to marry them.
7. Others just want to hang out.
9. Many waste a lot of space with emoticons, perhaps in the hope of getting noticed by Rihanna. (Or maybe these people are just trolls.)
11. Some try to get her attention by doing this:
12. Others still are just confused.
14. Some people just want to light one up with RiRi.
22. There are a few realists in the bunch.
23. And attempts to spark thoughtful conversations that don't work.
Actually, it's called PARENT SUPERVISION.
25. Of course, tons of fans just want to tell Rihanna how much they love her.
27. Finally, some people just want to say Hi.
Check out more articles on BuzzFeed.com!
- It's Day 2 of the Democratic National Convention in Philadelphia. Here's what you need to know.
- Three Qaddafi henchmen who are wanted for embezzling millions from Libya have been found living comfortably in Britain.
- ISIS has claimed responsibility for a church attack that killed a priest in northern France on Tuesday.


text:
Now, when I first saw this story on the CBC, I was like, dude, this guy must be my brother from another mother. We even go to the same barber, although I've got the slightly better haircut. 194 more words
Tags » Turtle Soup
The Mock Dragon Turtle
I am prepping for my next campaign – Out of the Abyss – and the adventure path clearly has a touch of whimsy with more than a passing resemblance to Lewis Carroll's 1,452 more words
On snapping turtle stew
By Angela Perez
Just met someone who also hails from the primordial swamps of northeastern NC who also used to scour muddy canals and murky ditches and fetid ponds trying to catch snapping turtles. 90 more words
The Bachelor, Episode 9 recap
We're back in the Caribbean– the ONLY place suitable for basics to find love. "Jamaica just has a freedom to it" Ben declares, letting his feet breathe in flip-flops. 1,144 more words
Timeline of a Turtle Hunt
Reprinted from the Indianapolis Star, with the kind permission of author John Gutowski. The bold green print indicates events depicted in some form in… 825 more words
What Legends are Made Of
–Guest blog by playwright Michael Wilhelm
There once was a farmer who found a monster turtle in his lake. The story of Gale Harris and his encounter with the Beast of 'Busco is such a thing as fairy tales are made of, yet this is not a fable. 389 more words
Plan now to see TURTLE SOUP!
In 1949, Gale Harris and some of his friends claimed to have caught glimpses of an enormous turtle in Fulks Lake, a small body of water on Harris' farm. 142 more words


text:
Release History
|Other Ocean Interactive
|North America
|01st February 2015
|XBL Arcade
|Other Ocean Interactive
|01st February 2015
|XBL Arcade
Game Overview
#IDARB is a multiplayer 2D action-platform game developed by Other Ocean Interactive and released on Xbox One. The game is a chaotic 8-player eSport, jumping jetpack, future arena ball game inspired by Bomberman and Super Smash Bros., as well as by cans of soda, paint-by-number books, and driving five miles faster than the speed limit.
Creators started with a picture of red box. We asked Twitter what we should do with that red box. Twitter answered. We listened.
Similar Games
- Grand Theft Auto V (4.72m)
- Assassin's Creed: Unity (3.44m)
- Assassin's Creed IV: Black Flag (2.20m)
- Watch Dogs (1.54m)
- Dead Rising 3 (1.54m)
- Batman: Arkham Knight (1.42m)
- Ryse: Son of Rome (1.35m)
- Middle-Earth: Shadow of Mordor (1.31m)
- Assassin's Creed Syndicate (1.26m)
- LEGO Marvel Super Heroes (1.03m)
- Just Cause 3 (0.86m)
- Dying Light (0.79m)
- Far Cry: Primal (0.78m)
- Metal Gear Solid V: The Phantom Pain (0.68m)
- The Evil Within (0.65m)
- LEGO Jurassic World (0.62m)
- Tomb Raider (2013) (0.59m)
- The LEGO Movie Videogame (0.50m)
- Thief (2014) (0.45m)
- Mad Max (2015) (0.45m)


text:
Coming up in the next {{countdown}} {{countdownlbl}}
Coming up next:
Skip to this video now
Now Playing:
Play Video
This transcript has been automatically generated and may not be 100% accurate.
TV Reporter Falls Down on the Job
Ryan Leckey cleverly recovers after falling backward over a snow bank.
Oops! Prime Minister Falls Down
New Zealand's Helen Clark tumbles to the ground while campaigning. (No Audio)
Falling Hard ... to the Extreme
Skateboarder Danny Way falls twice, wins silver at X Games.
Now Playing: TV Reporter Falls Down on the Job
Now Playing: Oops! Prime Minister Falls Down
Now Playing: Falling Hard ... to the Extreme
Now Playing: Oops! Miss USA Does It Again
Now Playing: 'The Bachelorette' Recap: JoJo Picks Her Final Two
Now Playing: Michelle Obama Steals Show Day 1 of Democratic National Convention
Now Playing: Bernie Sanders Supporters Boo, Email Leak Fallout Continues at DNC
Now Playing: Sarah Silverman Addresses Bernie Sanders Supporters at DNC
Now Playing: Rob Kardashian Deletes All Photos of Blac Chyna on Instagram
Now Playing: Pokemon and Real Animals Live Together at the Naples Zoo
Now Playing: 'Star Trek Beyond' Lands in First Place at Weekend Box Office
Now Playing: 'The View' on the Email Leak, Debbie Wasserman Schultz and DNC
Now Playing: Are Russians Working With Donald Trump?
Now Playing: 'The View': Are Lower Taxes a Good Thing?
Now Playing: Mila Kunis Says She Wasn't Attracted to Ashton Kutcher at First
Now Playing: Keegan-Michael Key Sings Sam Cooke's 'You Send Me'
Now Playing: TI Talks New Baby, 7 Emmy Nominations for 'Roots'
Now Playing: Donald Trump Formally Accepts Nomination at RNC
Now Playing: 'The View' on Charles Kinsey Shooting, Texas Officer's Comment About Black People
Now Playing: Keegan-Michael Key Talks New Film, Hit Series and Next Project
Now Playing: {{itm.title}}


text:
Users Online Now:
Who's On?
Visitors Today:
Pageviews Today:
Threads Today:
Posts Today:
Join Our:
GLP Poker Rooms
Donate To GLP
Adv. Search
Back to Forum
Back to Thread
Message Subject
Must Watch Documentary: THE RING OF POWER (ALL IN ONE PART)
Poster Handle
Wassup, Cool Breeze?
Post Content
Who rules the World?
Is the story of Jesus really true? Is he really the son of Cleopatra and Julius Caesar?
Are the Royal Family direct descendants of Jesus?
Who is the Anti-Christ?
What is the NWO?
This documentary goes into all that and MUCH more...
The lady's name is Grace Powers. She has 2 other movies that I know of.
One called "Monkey Blood" where she says all greek mythological beings in fact truly existed & were aliens.
Another called "The Revolution Trap" where she says David dIcke is the only reliable revolutionary.
I saw it & while some things made a lot of sense, other things made me wonder where the hell she got it from. Any1 else seen the whole thing?
Please verify you're human:
Reason for reporting:
13 Important Elements To Look For In Every Staged Shooting Event
Gestapo In The USA: FCC Intimidates Press and Kills Free Speech at 5G Rollout
Democratic National Convention in Philly Is Not What We're Told About in the Media
Federal Judge Rules Hidden Microphones in Public Do Not Violate Constitution
Deutsche Bank's net income plummets
Sanders Supporters Walk Out Of Democratic Convention
Black Protesters at DNC SHOUTS: "Don't Vote For Hillary, She's Killing Black People"
Hillary Clinton will nominate justices to the Supreme Court who are prepared to overturn Citizens United."
Day After Clinton Cash Film's Go Worldwide, CEO Forced To Step Down
Ancient 'toilet paper' proves that Silk Road travelers spread parasites as they traveled
Sheriff David Clarke Says the DNC 'Seems to Be About Embracing Criminality'
Why News Junkies Are So Glum About Politics, Economics, and Everything Else
Here's What Happened When Democrats Recited 'The Pledge Of Allegiance' At The DNC
Superhuman Tech? Most Fear Worst..
Wikileaks Proves Primary Was Rigged: DNC Undermined Democracy
WIKILEAKS JULIAN ASSANGE Says He Has NEW Emails That Should Indict Hillary…And Why He's A Trump Fan
Undercover Video: Hillary Clinton Delegate Explains Her Deceptive Propaganda to Ban Guns
Is State Dept. Is Protecting Hillary Rotten Clinton's Presidential Bid?
Robots, drones fill police ranks
Companies around globe packing earth orbit with satellites to meet communications demands
Rise of black nationalist groups
Report: Mr. Robot's one-time only VR experience will return next week
'Kill More Cops' Graffiti Mural Appears on Freeway
DNC erects four-mile eight-foot tall fence around Philly convention site
Should the Postal Service Handle Your Loans as Well as Your Mail? Elizabeth Warren Thinks So.
Disclaimer / Copyright Info
Privacy Policy
Terms Of Use
with questions or comments about this site.
"Godlike Productions" & "GLP" are registered trademarks of Zero Point Ltd. Godlike™
Website Design Copyright © 1999 - 2015 Godlikeproductions.com
Page generated in 0.005s (3 queries)